From 207273236d78ca3fa623c7036f677d56e3fa3cf6 Mon Sep 17 00:00:00 2001 From: Imbis Date: Sun, 19 May 2024 20:39:55 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=EB=B3=B8=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Specification/이산화탄소센서.ppt | Bin 118272 -> 115200 bytes Project/.vscode/settings.json | 3 +- .../A31G12x_Co2_Sensor_Logger.uvguix.Imbis | 254 +- Project/A31G12x_Co2_Sensor_Logger.uvoptx | 88 +- Project/A31G12x_Co2_Sensor_Logger.uvprojx | 5 + Project/Application/action_process.c | 340 ++- Project/Application/action_process.h | 8 + Project/Application/define.h | 4 + Project/Application/eeprom.c | 4 +- Project/Application/kcd_hp100.c | 177 ++ Project/Application/kcd_hp100.h | 24 + Project/Application/main.c | 32 +- Project/Application/rtc_process.c | 3 +- Project/Application/save_file.c | 125 +- Project/Application/save_file.h | 2 +- Project/Application/segment.c | 598 +---- Project/Application/segment.h | 3 + Project/Application/uart1_rs485.c | 289 --- Project/Application/uart1_rs485.h | 14 - Project/Listings/S_DustSensorView.map | 2052 ++++++++++------- 20 files changed, 1958 insertions(+), 2067 deletions(-) create mode 100644 Project/Application/kcd_hp100.c create mode 100644 Project/Application/kcd_hp100.h delete mode 100644 Project/Application/uart1_rs485.c delete mode 100644 Project/Application/uart1_rs485.h diff --git a/Document/Specification/이산화탄소센서.ppt b/Document/Specification/이산화탄소센서.ppt index 734583f8c330453a0af186133fb7a61f05892dcb..3ce5c2fe9f006b3366bb5b0d074bc7c006594e2c 100644 GIT binary patch delta 125 zcmZpe!`{%sKEXhd0R{vZ814btj6nSF|Ns9WVGx^XW8iwmNh~>R3;u1Mv1sMyB9=Zz zQC6VDU!WooW&yHAf%xBMQKr|7i+Gq8aj-1g$H=sNpD-g+lfW_o#&z3HF|sgCXF0$q Lvt8i~;{!$j-3%u= delta 255 zcmZo@VQ-kjKEXio0Rt2WFfcp;G8uvR-~a#rL86a<_~FLD^^Br_fg<;yGAuw^6o~(B z7G-(OIEg8Tt>M5*lfRQU7cuoQF5Ab*w1|Uc5gXI?gsqG#87CHmHwi2gU|hF|hiTdY zMup8RA`ifNF3kLrV>Jz|XA+wX 346 Code Coverage - 1410 816 + 1410 820 204 Performance Analyzer - 1570 235 235 186 + 1660 235 235 100 @@ -101,17 +101,17 @@ -1 - 0 - 1625 - 2578 - 556 + 314 + 1314 + 2267 + 870 0 - 2215 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001300000012000000010000004D443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C616374696F6E5F70726F636573732E680000000010616374696F6E5F70726F636573732E6800000000C5D4F200FFFFFFFF4D443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C616374696F6E5F70726F636573732E630000000010616374696F6E5F70726F636573732E6300000000FFDC7800FFFFFFFF48443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C736176655F66696C652E63000000000B736176655F66696C652E6300000000BECEA100FFFFFFFF43443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6D61696E2E6300000000066D61696E2E6300000000F0A0A100FFFFFFFF4A443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6770696F5F7377697463682E63000000000D6770696F5F7377697463682E6300000000BCA8E100FFFFFFFF46443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C74696D657231322E63000000000974696D657231322E63000000009CC1B600FFFFFFFF5F443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6472697665725F6473333233315F696E746572666163655F74656D706C6174652E6300000000226472697665725F6473333233315F696E746572666163655F74656D706C6174652E6300000000F7B88600FFFFFFFF5C443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C53444B5F56325F355F305C4465766963655C537461727475705C737461727475705F413331473132782E730000000011737461727475705F413331473132782E7300000000D9ADC200FFFFFFFF47443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C73775F74696D65722E63000000000A73775F74696D65722E6300000000A5C2D700FFFFFFFF44443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C75617274312E63000000000775617274312E6300000000B3A6BE00FFFFFFFF4C443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C7379737469636B5F74696D65722E63000000000F7379737469636B5F74696D65722E6300000000EAD6A300FFFFFFFF47443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6770696F5F6932632E63000000000A6770696F5F6932632E6300000000F6FA7D00FFFFFFFF47443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6770696F5F6932632E68000000000A6770696F5F6932632E6800000000B5E99D00FFFFFFFF4F443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C7365676D656E745F37346863353935642E6300000000127365676D656E745F37346863353935642E63000000005FC3CF00FFFFFFFF46443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C7365676D656E742E6300000000097365676D656E742E6300000000C1838300FFFFFFFF4D443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6770696F5F73746174655F6C65642E6300000000106770696F5F73746174655F6C65642E6300000000CACAD500FFFFFFFF5C443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C53444B5F56325F355F305C447269766572735C536F757263655C413331473132785F68616C5F7063752E630000000011413331473132785F68616C5F7063752E6300000000C5D4F200FFFFFFFF45443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C646566696E652E680000000008646566696E652E6800000000FFDC7800FFFFFFFF4C443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C757361727431315F72733438352E63000000000F757361727431315F72733438352E6300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A000064020000 + 697 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000020000000100000043443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF5C443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C53444B5F56325F355F305C4465766963655C537461727475705C737461727475705F413331473132782E730000000011737461727475705F413331473132782E7300000000FFDC7800FFFFFFFF4D443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C616374696F6E5F70726F636573732E630000000010616374696F6E5F70726F636573732E6300000000BECEA100FFFFFFFF45443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C656570726F6D2E630000000008656570726F6D2E6300000000F0A0A100FFFFFFFF48443A5C576F726B696E675C4769745F436C6F6E655C535F436F325F53656E736F725F4C6F676765725C50726F6A6563745C4170706C69636174696F6E5C6B63645F68703130302E63000000000B6B63645F68703130302E6300000000BCA8E100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A000064020000 @@ -530,7 +530,7 @@ 0 16 - 0300000068020000FD0900000C040000 + 0300000068020000FD090000D7030000 16 @@ -1150,7 +1150,7 @@ 0 16 - 03000000660000003D010000FF010000 + 03000000660000003D01000034020000 16 @@ -1170,7 +1170,7 @@ 0 16 - 0300000068020000FD0900000C040000 + 0300000068020000FD090000D7030000 16 @@ -1190,7 +1190,7 @@ 0 16 - 0300000068020000FD0900000C040000 + 0300000068020000FD090000D7030000 16 @@ -1250,7 +1250,7 @@ 0 16 - 0300000068020000FD0900000C040000 + 0300000068020000FD090000D7030000 16 @@ -1270,7 +1270,7 @@ 0 16 - 0300000068020000FD0900000C040000 + 0300000068020000FD090000D7030000 16 @@ -1799,7 +1799,7 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000E000000070070000E4000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000440100006600000070070000F7000000440100004F00000070070000E00000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000030020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030060000660000007007000047020000300600004F000000700700003002000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100004D020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000400100002F020000000000004F000000400100004D0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001C020000700700002002000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003702000070070000DC020000000000002002000070070000C502000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB803000020020000BC030000C502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000004D020000000A00005102000001000000010000100400000001000000F9FCFFFF8F000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000000000000033020000000A0000070400000000000051020000000A0000F00300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000E000000070070000E4000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000440100006600000070070000F7000000440100004F00000070070000E00000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000030020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030060000660000007007000047020000300600004F000000700700003002000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100004D020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000004001000064020000000000004F000000400100004D0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001C020000700700002002000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003702000070070000DC020000000000002002000070070000C502000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB803000020020000BC030000C502000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000004D020000000A00005102000001000000010000100400000001000000F9FCFFFF8F000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000000000000068020000000A0000070400000000000051020000000A0000F00300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 @@ -1871,11 +1871,11 @@ 0 16 - 440100004F000000000A0000E0000000 + 440100004F000000000A000050000000 16 - 4401000066000000000A0000F7000000 + 4401000066000000000A000067000000 @@ -1891,7 +1891,7 @@ 0 16 - 03000000660000003D010000D6010000 + 03000000660000003D01000006030000 16 @@ -1911,7 +1911,7 @@ 0 16 - 03000000660000003D010000F4020000 + 03000000660000003D0100006F010000 16 @@ -1931,7 +1931,7 @@ 0 16 - 070500000A020000FD090000D7030000 + 060500003A030000FD090000D7030000 16 @@ -1951,7 +1951,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -1971,7 +1971,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -1991,7 +1991,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2031,7 +2031,7 @@ 0 16 - 4701000066000000FD090000C7000000 + 4701000066000000FD09000066000000 16 @@ -2051,7 +2051,7 @@ 0 16 - 070500000A020000FD090000D7030000 + 060500003A030000FD090000D7030000 16 @@ -2071,7 +2071,7 @@ 0 16 - 070500000A020000FD090000D7030000 + 060500003A030000FD090000D7030000 16 @@ -2091,7 +2091,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2111,7 +2111,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2131,7 +2131,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2151,7 +2151,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2171,7 +2171,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2191,7 +2191,7 @@ 0 16 - 03000000660000003D010000F4020000 + 03000000660000003D0100006F010000 16 @@ -2211,7 +2211,7 @@ 0 16 - 03000000660000003D010000F4020000 + 03000000660000003D0100006F010000 16 @@ -2251,7 +2251,7 @@ 0 16 - 00000000F301000000050000F0030000 + 0000000023030000FF040000F0030000 16 @@ -2291,7 +2291,7 @@ 0 16 - 4401000063000000000A0000E0000000 + 4401000063000000000A000063000000 16 @@ -2311,7 +2311,7 @@ 0 16 - 4701000066000000FD090000C7000000 + 4701000066000000FD09000066000000 16 @@ -2371,7 +2371,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2391,7 +2391,7 @@ 0 16 - 4701000066000000FD090000C7000000 + 4701000066000000FD09000066000000 16 @@ -2411,7 +2411,7 @@ 0 16 - 4701000066000000FD090000C7000000 + 4701000066000000FD09000066000000 16 @@ -2431,7 +2431,7 @@ 0 16 - 4701000066000000FD090000C7000000 + 4701000066000000FD09000066000000 16 @@ -2451,7 +2451,7 @@ 0 16 - 4701000066000000FD090000C7000000 + 4701000066000000FD09000066000000 16 @@ -2891,7 +2891,7 @@ 0 16 - 03000000660000003D010000D6010000 + 03000000660000003D01000006030000 16 @@ -2951,7 +2951,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -2971,7 +2971,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -3031,7 +3031,7 @@ 0 16 - 4701000066000000FD090000C7000000 + 4701000066000000FD09000066000000 16 @@ -3531,7 +3531,7 @@ 0 16 - 070500000A020000FD090000B9020000 + 060500003A030000FD0900006E050000 16 @@ -3540,14 +3540,14 @@ 3311 - 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF44010000E0000000000A0000E4000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000010000004401000066000000000A0000F7000000440100004F000000000A0000E00000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000030020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030060000660000007007000047020000300600004F000000700700003002000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F00000044010000EF010000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000004001000024030000000000004F00000040010000EF0100000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF00000000EF010000000A0000F301000001000000010000100400000001000000DCFDFFFF7A00000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000010000000405000028030000000A00000704000004050000F3010000000A0000F003000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFF00050000F301000004050000F003000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000300200007007000034020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000004B02000070070000DC020000000000003402000070070000C50200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000001000000FFFFFFFFFFFFFFFF4401000050000000000A000054000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000010000004401000066000000000A000067000000440100004F000000000A0000500000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000030020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030060000660000007007000047020000300600004F000000700700003002000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F000000440100001F030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000400100009F010000000000004F000000400100001F0300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF000000001F030000000A00002303000001000000010000100400000001000000D1FEFFFFFF01000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000100000003050000A3010000000A0000070400000305000023030000000A0000F003000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF050000000000000001000000000000000100000001000000FFFFFFFFFF0400002303000003050000F003000001000000020000100400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF00000000300200007007000034020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000000000004B02000070070000DC020000000000003402000070070000C50200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2978 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001973656E736972696F6E5F693263305F77726974655F64617461960000000000000014001973656E736972696F6E5F693263305F77726974655F646174611E436F6E74726F6C5F496E666F2E69734D6F6462757344617461577269746507636F6E74726F6C1A626F6F74556172745F496E746572727570745F48616E646C657204707573680E75735469636B436F756E7444697605766F696420046469736B09665F756E6D6F756E7407665F6D6F756E740B54696D655365745F4461790C73636434785F7365745F74652173636434785F693263325F726561645F6D6561737572656D656E745F7469636B730E73636434785F726561645F6D65610C73636434785F6765745F74650E696E7431365F742073636434785F07696E7431365F741373656E736972696F6E5F6932635F77726974651F73656E736972696F6E5F6932635F726561645F646174615F696E706C6163652073656E736972696F6E5F693263325F726561645F646174615F696E706C6163650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001973656E736972696F6E5F693263305F77726974655F64617461960000000000000014001973656E736972696F6E5F693263305F77726974655F646174611E436F6E74726F6C5F496E666F2E69734D6F6462757344617461577269746507636F6E74726F6C1A626F6F74556172745F496E746572727570745F48616E646C657204707573680E75735469636B436F756E7444697605766F696420046469736B09665F756E6D6F756E7407665F6D6F756E740B54696D655365745F4461790C73636434785F7365745F74652173636434785F693263325F726561645F6D6561737572656D656E745F7469636B730E73636434785F726561645F6D65610C73636434785F6765745F74650E696E7431365F742073636434785F07696E7431365F741373656E736972696F6E5F6932635F77726974651F73656E736972696F6E5F6932635F726561645F646174615F696E706C6163652073656E736972696F6E5F693263325F726561645F646174615F696E706C6163650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000400160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000004002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3603,66 +3603,12 @@ 0 100 - 18 - - Application\action_process.h - 0 - 1 - 15 - 1 - - 0 - - - .\Application\action_process.c - 17 - 146 - 160 - 1 - - 0 - - - .\Application\save_file.c - 0 - 21 - 36 - 1 - - 0 - + 2 .\Application\main.c 0 - 33 - 43 - 1 - - 0 - - - .\Application\gpio_switch.c - 135 - 27 - 44 - 1 - - 0 - - - .\Application\timer12.c - 0 - 1 - 2 - 1 - - 0 - - - .\Application\driver_ds3231_interface_template.c - 0 - 15 - 39 + 28 + 33 1 0 @@ -3670,107 +3616,35 @@ .\SDK_V2_5_0\Device\Startup\startup_A31G12x.s 0 - 118 + 124 128 1 0 - .\Application\sw_timer.c - 0 - 43 - 60 - 1 - - 0 - - - .\Application\uart1.c - 0 - 190 - 194 - 1 - - 0 - - - .\Application\systick_timer.c - 0 - 1 - 13 - 1 - - 0 - - - .\Application\gpio_i2c.c - 59 - 295 - 307 - 1 - - 0 - - - Application\gpio_i2c.h - 0 - 73 - 75 - 1 - - 0 - - - .\Application\segment_74hc595d.c - 60 - 57 - 78 - 1 - - 0 - - - .\Application\segment.c - 72 - 74 - 93 - 1 - - 0 - - - .\Application\gpio_state_led.c - 21 - 99 - 116 + .\Application\action_process.c + 28 + 16 + 32 1 0 - .\SDK_V2_5_0\Drivers\Source\A31G12x_hal_pcu.c - 1 - 306 - 311 + .\Application\eeprom.c + 47 + 108 + 132 1 0 - .\Application\define.h + .\Application\kcd_hp100.c 0 - 1 - 2 - 1 - - 0 - - - .\Application\usart11_rs485.c - 43 - 1 - 18 + 135 + 160 1 0 diff --git a/Project/A31G12x_Co2_Sensor_Logger.uvoptx b/Project/A31G12x_Co2_Sensor_Logger.uvoptx index 9c38a7c..1ddbd55 100644 --- a/Project/A31G12x_Co2_Sensor_Logger.uvoptx +++ b/Project/A31G12x_Co2_Sensor_Logger.uvoptx @@ -152,18 +152,18 @@ 0 0 - 132 + 403 1 -
3244
+
2750
0 0 0 0 0 1 - .\Application\gpio_switch.c + .\Application\action_process.c - \\S_DustSensorView\Application/gpio_switch.c\132 + \\S_DustSensorView\Application/action_process.c\403
@@ -177,6 +177,16 @@ 1 Gpio_Led_Ctrl_Info + + 2 + 1 + KCD_HP100_Result + + + 3 + 1 + eeprom_info,0x0A + 0 @@ -601,6 +611,18 @@ 0 0 + + 1 + 32 + 1 + 0 + 0 + 0 + .\Application\kcd_hp100.c + kcd_hp100.c + 0 + 0 + @@ -611,7 +633,7 @@ 0 2 - 32 + 33 1 0 0 @@ -623,7 +645,7 @@ 2 - 33 + 34 1 0 0 @@ -635,7 +657,7 @@ 2 - 34 + 35 1 0 0 @@ -647,7 +669,7 @@ 2 - 35 + 36 1 0 0 @@ -659,7 +681,7 @@ 2 - 36 + 37 1 0 0 @@ -671,7 +693,7 @@ 2 - 37 + 38 1 0 0 @@ -683,7 +705,7 @@ 2 - 38 + 39 1 0 0 @@ -695,7 +717,7 @@ 2 - 39 + 40 1 0 0 @@ -707,7 +729,7 @@ 2 - 40 + 41 1 0 0 @@ -719,7 +741,7 @@ 2 - 41 + 42 1 0 0 @@ -731,7 +753,7 @@ 2 - 42 + 43 1 0 0 @@ -743,7 +765,7 @@ 2 - 43 + 44 1 0 0 @@ -755,7 +777,7 @@ 2 - 44 + 45 1 0 0 @@ -767,7 +789,7 @@ 2 - 45 + 46 1 0 0 @@ -779,7 +801,7 @@ 2 - 46 + 47 1 0 0 @@ -791,7 +813,7 @@ 2 - 47 + 48 1 0 0 @@ -803,7 +825,7 @@ 2 - 48 + 49 1 0 0 @@ -815,7 +837,7 @@ 2 - 49 + 50 1 0 0 @@ -835,7 +857,7 @@ 0 3 - 50 + 51 2 0 0 @@ -855,7 +877,7 @@ 0 4 - 51 + 52 5 0 0 @@ -867,7 +889,7 @@ 4 - 52 + 53 1 0 0 @@ -879,7 +901,7 @@ 4 - 53 + 54 5 0 0 @@ -899,7 +921,7 @@ 0 5 - 54 + 55 2 0 0 @@ -919,7 +941,7 @@ 0 6 - 55 + 56 1 0 0 @@ -931,7 +953,7 @@ 6 - 56 + 57 1 0 0 @@ -943,7 +965,7 @@ 6 - 57 + 58 1 0 0 @@ -955,7 +977,7 @@ 6 - 58 + 59 1 0 0 @@ -967,7 +989,7 @@ 6 - 59 + 60 1 0 0 @@ -979,7 +1001,7 @@ 6 - 60 + 61 1 0 0 diff --git a/Project/A31G12x_Co2_Sensor_Logger.uvprojx b/Project/A31G12x_Co2_Sensor_Logger.uvprojx index 3fa3086..3973a9b 100644 --- a/Project/A31G12x_Co2_Sensor_Logger.uvprojx +++ b/Project/A31G12x_Co2_Sensor_Logger.uvprojx @@ -538,6 +538,11 @@ 1 .\Application\usart11_rs485.c + + kcd_hp100.c + 1 + .\Application\kcd_hp100.c + diff --git a/Project/Application/action_process.c b/Project/Application/action_process.c index 6cb1b29..a731411 100644 --- a/Project/Application/action_process.c +++ b/Project/Application/action_process.c @@ -6,13 +6,14 @@ #include "eeprom.h" #include "buzzer.h" #include "segment.h" +#include "save_file.h" +#include "kcd_hp100.h" #include "rtc_process.h" #include "save_file.h" - #define KEY_POWER KEY_PUSH_SW1 #define KEY_MODE_SET KEY_PUSH_SW2 #define KEY_UP KEY_PUSH_SW3 @@ -39,42 +40,54 @@ typedef enum _control_step CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA, CONTROL_STEP_ACTION_RUN_SET_MIN_SENSOR_DATA, - - - CONTROL_STEP_ACTION_RUN_COMPLETE, - - - - - }CONTROL_STEP; - typedef struct _control_info { bool isInitView; bool isActionRun; CONTROL_STEP Step; uint32_t StartTickCount; - uint32_t Co2_Now; - uint32_t Co2_MaxValue; - uint32_t Co2_MinValue; + uint32_t GetSensorDataTickCount; + uint32_t returnMainViewTickCount; + uint16_t Co2_Now; + uint16_t Co2_MaxValue; + uint16_t Co2_MinValue; + uint16_t Co2_TempValue; + SET_INDEX SetIndex; + + + + uint16_t Co2_TempMax; + uint16_t Co2_TempMin; }CONTROL_INFO; -static CONTROL_INFO Control_Info; +uint8_t SaveCheckSec = 0xFF; +uint16_t SaveSensorIndex; +uint16_t SaveSensorCo2[100]; + + + +static CONTROL_INFO Control_Info; + + static void Action_Process(void); static void Action_PowerOn_Init_Process(void); static void Action_PowerOn_Process(void); +static void Action_Get_SensorData(void); +static void Action_Get_SensorReadProcess(void); +static void Action_SaveSensorData(void); + static void Action_Power_On_Key_Set(void); static void Action_Power_On_Key_Push_Callback(void); static void Action_Power_Off_Key_Set(void); @@ -86,6 +99,8 @@ static void Action_Set_Key_Push(void); static void Action_Up_Key_Push(void); static void Action_Down_Key_Push(void); +static void Action_ReturnMainViewCheck(void); + #if 0 static void Action_PowerKey_Push(void); @@ -170,6 +185,7 @@ static void Action_PowerOn_Init_Process(void) break; case CONTROL_STEP_INIT_COMPLETE: Control_Info.isInitView = true; + Control_Info.Step = CONTROL_STEP_ACTION_IDLE; break; } } @@ -183,16 +199,23 @@ static void Action_PowerOn_Process(void) Gpio_Led_OutputSet(GPIO_LED_LE1, GPIO_LED_MODE_TOGGLE, ACTION_LE1_RUN_ON_TIME, ACTION_LE1_RUN_OFF_TIME); Gpio_Led_OutputSet(GPIO_LED_D1, GPIO_LED_MODE_OFF, 0, 0); Gpio_Led_OutputSet(GPIO_LED_D2, GPIO_LED_MODE_ON, 0, 0); - Gpio_Led_OutputSet(GPIO_LED_D3, GPIO_LED_MODE_OFF, 0, 0); + Gpio_Led_OutputSet(GPIO_LED_D3, GPIO_LED_MODE_OFF, 0, 0); + GPIO_SENSOR_PWR_ON; + SaveCheckSec = 0xFF; + Action_Get_SensorData(); if(EEPROM_Read_SettingValue(&Control_Info.Co2_MaxValue, &Control_Info.Co2_MinValue) == false) { Control_Info.Co2_MaxValue = DEFAULT_SENSOR_MAX_DATA; Control_Info.Co2_MinValue = DEFAULT_SENSOR_MIN_DATA; - } + } + + Control_Info.Co2_TempMax = 0; + Control_Info.Co2_TempMin = 0xFFFF; + printf("Data, Time, Average(Now)_Co2, Max_Co2, Min_Co2\r\n"); Control_Info.Step = CONTROL_STEP_ACTION_RUN_NOW_SENSOR_DATA; break; - case CONTROL_STEP_ACTION_RUN_NOW_SENSOR_DATA: + case CONTROL_STEP_ACTION_RUN_NOW_SENSOR_DATA: Segment_Show_Time(); Segment_Show_SensorData(Control_Info.Co2_Now); break; @@ -205,20 +228,31 @@ static void Action_PowerOn_Process(void) Segment_Show_SensorData(Control_Info.Co2_MinValue); break; - case CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA: - break; + case CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA: case CONTROL_STEP_ACTION_RUN_SET_MIN_SENSOR_DATA: + Segment_Show_Time(); + Segment_Show_SettingData(Control_Info.SetIndex, Control_Info.Co2_TempValue); break; case CONTROL_STEP_ACTION_RUN_COMPLETE: Gpio_Led_OutputSet(GPIO_LED_LE1, GPIO_LED_MODE_TOGGLE, ACTION_LE1_IDLE_ON_TIME, ACTION_LE1_IDLE_OFF_TIME); + Gpio_Led_OutputSet(GPIO_LED_D1, GPIO_LED_MODE_OFF, 0, 0); + Gpio_Led_OutputSet(GPIO_LED_D2, GPIO_LED_MODE_OFF, 0, 0); + Gpio_Led_OutputSet(GPIO_LED_D3, GPIO_LED_MODE_OFF, 0, 0); + GPIO_SENSOR_PWR_OFF; Action_Power_On_Key_Set(); Segment_All_Set_Data(0x00); EEPROM_Write_SettingValue(Control_Info.Co2_MaxValue, Control_Info.Co2_MinValue); - Control_Info.Step = CONTROL_STEP_INIT; + Control_Info.Step = CONTROL_STEP_ACTION_IDLE; Control_Info.isActionRun = false; + return; break; } + + + //////////////////////////////////////// + Action_Get_SensorReadProcess(); + Action_ReturnMainViewCheck(); } static void Action_Power_On_Key_Set(void) @@ -238,17 +272,134 @@ static void Action_Power_On_Key_Push_Callback(void) { Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); Control_Info.isActionRun = true; - Control_Info.Step = CONTROL_STEP_INIT; - dbg_printf("power on\r\n"); + Control_Info.Step = CONTROL_STEP_INIT; } static void Action_Power_Off_Key_Push_Callback(void) { Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); - Control_Info.Step = CONTROL_STEP_ACTION_RUN_COMPLETE; - dbg_printf("power off\r\n"); + Control_Info.Step = CONTROL_STEP_ACTION_RUN_COMPLETE; +} + +static void Action_Get_SensorData(void) +{ + Control_Info.GetSensorDataTickCount = millis(); + KCD_HP100_Tx_Get_MeasurmentData(); +} + +static void Action_Get_SensorReadProcess(void) +{ + KCD_HP100_STATE nowSensorState = KCD_HP100_GetState(); + + if(nowSensorState == KCD_HP100_SUCCESS) + { + KCD_HP100_Get_Co2((uint16_t *)&Control_Info.Co2_Now); + } + else if(nowSensorState == KCD_HP100_ERROR_TIMEOUT) + { + Control_Info.Co2_Now = 0xFFFF; + } + + if(millis() - Control_Info.GetSensorDataTickCount >= ACTION_SENSOR_READ_INTERVAL) + { + if(nowSensorState == KCD_HP100_SUCCESS) + { + RTC_TIME nowTime; + nowTime = RTC_Get_Time(); + + if(Control_Info.Co2_TempMax < Control_Info.Co2_Now) + Control_Info.Co2_TempMax = Control_Info.Co2_Now; + + if(Control_Info.Co2_TempMin > Control_Info.Co2_Now) + Control_Info.Co2_TempMin = Control_Info.Co2_Now; + + printf("Now, %04d-%02d-%02d %02d:%02d:%02d, %d, %d, %d\r\n", nowTime.rtc_Year, nowTime.rtc_Month, nowTime.rtc_Date, nowTime.rtc_Hour, nowTime.rtc_Min, nowTime.rtc_Sec, Control_Info.Co2_Now, Control_Info.Co2_TempMax, Control_Info.Co2_TempMin); + } + + Action_Get_SensorData(); + } + Action_SaveSensorData(); +} + +static void Action_SaveSensorData(void) +{ + RTC_TIME nowTime; + nowTime = RTC_Get_Time(); + + if(SaveCheckSec != nowTime.rtc_Sec) + { + SaveCheckSec = nowTime.rtc_Sec; + if(nowTime.rtc_Sec == 0) + { + if(Control_Info.Co2_Now != 0xFFFF){ + SaveSensorCo2[SaveSensorIndex++] = Control_Info.Co2_Now; + } + + + + if(nowTime.rtc_Min % 5 == 0) + { + if(SaveSensorIndex >= 5) + { + uint8_t i; + uint16_t Sum_Co2, Max_Co2, Min_Co2; + Max_Co2 = 0; + Min_Co2 = 0xFFFF; + Sum_Co2 = 0; + + for(i = 0 ; i < SaveSensorIndex ; i++) + { + Sum_Co2 += SaveSensorCo2[i]; + + if(SaveSensorCo2[i] >= Max_Co2) + { + Max_Co2 = SaveSensorCo2[i]; + } + + if(SaveSensorCo2[i] <= Min_Co2) + { + Min_Co2 = SaveSensorCo2[i]; + } + } + Sum_Co2 -= Max_Co2; + Sum_Co2 -= Min_Co2; + Sum_Co2 /= (SaveSensorIndex - 2); + printf("Save, %04d-%02d-%02d %02d:%02d:%02d, %d, %d, %d\r\n", nowTime.rtc_Year, nowTime.rtc_Month, nowTime.rtc_Date, nowTime.rtc_Hour, nowTime.rtc_Min, nowTime.rtc_Sec, Sum_Co2, Max_Co2, Min_Co2); + if(Save_SensorData_SDCard(Sum_Co2, Max_Co2, Min_Co2, 0xFF) == false) + { + + } + } + SaveSensorIndex = 0; + } + } + } +} + + + + +static void Action_ReturnMainViewCheck(void) +{ + if(Control_Info.Step != CONTROL_STEP_ACTION_RUN_NOW_SENSOR_DATA) + { + if(millis() - Control_Info.returnMainViewTickCount >= ACTION_RETURN_MAINVIEW_TIME) + { + Gpio_Led_OutputSet(GPIO_LED_D1, GPIO_LED_MODE_OFF, 0, 0); + Gpio_Led_OutputSet(GPIO_LED_D2, GPIO_LED_MODE_ON, 0, 0); + Gpio_Led_OutputSet(GPIO_LED_D3, GPIO_LED_MODE_OFF, 0, 0); + Control_Info.returnMainViewTickCount = millis(); + Control_Info.Step = CONTROL_STEP_ACTION_RUN_NOW_SENSOR_DATA; + } + } } + + + + + + static void Action_Mode_Key_Push(void) { switch(Control_Info.Step) @@ -258,6 +409,7 @@ static void Action_Mode_Key_Push(void) Gpio_Led_OutputSet(GPIO_LED_D1, GPIO_LED_MODE_ON, 0, 0); Gpio_Led_OutputSet(GPIO_LED_D2, GPIO_LED_MODE_OFF, 0, 0); Gpio_Led_OutputSet(GPIO_LED_D3, GPIO_LED_MODE_OFF, 0, 0); + Control_Info.returnMainViewTickCount = millis(); Control_Info.Step = CONTROL_STEP_ACTION_RUN_MAX_SENSOR_DATA; break; case CONTROL_STEP_ACTION_RUN_MAX_SENSOR_DATA: @@ -265,6 +417,7 @@ static void Action_Mode_Key_Push(void) Gpio_Led_OutputSet(GPIO_LED_D1, GPIO_LED_MODE_OFF, 0, 0); Gpio_Led_OutputSet(GPIO_LED_D2, GPIO_LED_MODE_OFF, 0, 0); Gpio_Led_OutputSet(GPIO_LED_D3, GPIO_LED_MODE_ON, 0, 0); + Control_Info.returnMainViewTickCount = millis(); Control_Info.Step = CONTROL_STEP_ACTION_RUN_MIN_SENSOR_DATA; break; case CONTROL_STEP_ACTION_RUN_MIN_SENSOR_DATA: @@ -272,24 +425,157 @@ static void Action_Mode_Key_Push(void) Gpio_Led_OutputSet(GPIO_LED_D1, GPIO_LED_MODE_OFF, 0, 0); Gpio_Led_OutputSet(GPIO_LED_D2, GPIO_LED_MODE_ON, 0, 0); Gpio_Led_OutputSet(GPIO_LED_D3, GPIO_LED_MODE_OFF, 0, 0); + Control_Info.returnMainViewTickCount = millis(); Control_Info.Step = CONTROL_STEP_ACTION_RUN_NOW_SENSOR_DATA; break; + case CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA: + case CONTROL_STEP_ACTION_RUN_SET_MIN_SENSOR_DATA: + Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); + switch(Control_Info.SetIndex) + { + case SET_1000: + case SET_100: + case SET_10: + Control_Info.SetIndex++; + break; + case SET_1: + Control_Info.SetIndex = SET_1000; + break; + } + break; } } static void Action_Set_Key_Push(void) { - + if(Control_Info.Step == CONTROL_STEP_ACTION_RUN_MAX_SENSOR_DATA){ + Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); + Control_Info.Co2_TempValue = Control_Info.Co2_MaxValue; + Control_Info.SetIndex = SET_1000; + Control_Info.returnMainViewTickCount = millis(); + Control_Info.Step = CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA; + } + else if(Control_Info.Step == CONTROL_STEP_ACTION_RUN_MIN_SENSOR_DATA){ + + Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); + Control_Info.Co2_TempValue = Control_Info.Co2_MinValue; + Control_Info.SetIndex = SET_1000; + Control_Info.returnMainViewTickCount = millis(); + Control_Info.Step = CONTROL_STEP_ACTION_RUN_SET_MIN_SENSOR_DATA; + } + else if(Control_Info.Step == CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA){ + Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); + Control_Info.Co2_MaxValue = Control_Info.Co2_TempValue; + Control_Info.returnMainViewTickCount = millis(); + Control_Info.Step = CONTROL_STEP_ACTION_RUN_MAX_SENSOR_DATA; + EEPROM_Write_SettingValue(Control_Info.Co2_MaxValue, Control_Info.Co2_MinValue); + } + else if(Control_Info.Step == CONTROL_STEP_ACTION_RUN_SET_MIN_SENSOR_DATA){ + Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); + Control_Info.Co2_MinValue = Control_Info.Co2_TempValue; + Control_Info.returnMainViewTickCount = millis(); + Control_Info.Step = CONTROL_STEP_ACTION_RUN_MIN_SENSOR_DATA; + EEPROM_Write_SettingValue(Control_Info.Co2_MaxValue, Control_Info.Co2_MinValue); + } } static void Action_Up_Key_Push(void) { - + if(Control_Info.Step == CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA || Control_Info.Step == CONTROL_STEP_ACTION_RUN_SET_MIN_SENSOR_DATA) + { + uint16_t temp; + Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); + Control_Info.returnMainViewTickCount = millis(); + switch(Control_Info.SetIndex) + { + case SET_1000: + Control_Info.Co2_TempValue += 1000; + if(Control_Info.Co2_TempValue >= 10000){ + Control_Info.Co2_TempValue -= 10000; + } + break; + case SET_100: + temp = Control_Info.Co2_TempValue / 100; + temp = temp % 10; + if(temp == 9){ + Control_Info.Co2_TempValue -= 900; + } + else{ + Control_Info.Co2_TempValue += 100; + } + break; + case SET_10: + temp = Control_Info.Co2_TempValue / 10; + temp = temp % 10; + if(temp == 9){ + Control_Info.Co2_TempValue -= 90; + } + else{ + Control_Info.Co2_TempValue += 10; + } + break; + case SET_1: + temp = Control_Info.Co2_TempValue % 10; + if(temp == 9){ + Control_Info.Co2_TempValue -= 9; + } + else{ + Control_Info.Co2_TempValue++; + } + break; + } + } } static void Action_Down_Key_Push(void) { - + if(Control_Info.Step == CONTROL_STEP_ACTION_RUN_SET_MAX_SENSOR_DATA || Control_Info.Step == CONTROL_STEP_ACTION_RUN_SET_MIN_SENSOR_DATA) + { + uint16_t temp; + Buzzer_On(DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT); + Control_Info.returnMainViewTickCount = millis(); + switch(Control_Info.SetIndex) + { + case SET_1000: + temp = Control_Info.Co2_TempValue / 1000; + if(temp == 0){ + Control_Info.Co2_TempValue += 9000; + } + else{ + Control_Info.Co2_TempValue -= 1000; + } + break; + case SET_100: + temp = Control_Info.Co2_TempValue / 100; + temp = temp % 10; + if(temp == 0){ + Control_Info.Co2_TempValue += 900; + } + else{ + Control_Info.Co2_TempValue -= 100; + } + break; + case SET_10: + temp = Control_Info.Co2_TempValue / 10; + temp = temp % 10; + if(temp == 0){ + Control_Info.Co2_TempValue += 90; + } + else{ + Control_Info.Co2_TempValue -= 10; + } + break; + case SET_1: + temp = Control_Info.Co2_TempValue % 10; + if(temp == 0){ + Control_Info.Co2_TempValue += 9; + } + else{ + Control_Info.Co2_TempValue--; + } + break; + } + } } diff --git a/Project/Application/action_process.h b/Project/Application/action_process.h index cbc9f38..34c81f8 100644 --- a/Project/Application/action_process.h +++ b/Project/Application/action_process.h @@ -5,6 +5,14 @@ #include "define.h" #include "board_config.h" +typedef enum +{ + SET_1000, + SET_100, + SET_10, + SET_1, +}SET_INDEX; + diff --git a/Project/Application/define.h b/Project/Application/define.h index fb834da..68cdb0b 100644 --- a/Project/Application/define.h +++ b/Project/Application/define.h @@ -70,7 +70,9 @@ #define ACTION_LE1_RUN_ON_TIME 500 #define ACTION_LE1_RUN_OFF_TIME 1500 +#define ACTION_SENSOR_READ_INTERVAL 5000 +#define ACTION_RETURN_MAINVIEW_TIME 10000 @@ -93,6 +95,8 @@ #define DEFAULT_KEY_PUSH_BUZZER_TIME_COUNT 80 +#define SEGMENT_TOGGLE_TIME 250 + #if 0 diff --git a/Project/Application/eeprom.c b/Project/Application/eeprom.c index 7e447d6..1f7f054 100644 --- a/Project/Application/eeprom.c +++ b/Project/Application/eeprom.c @@ -3,7 +3,7 @@ - +#pragma pack(push, 1) typedef union _eeprom_info { struct @@ -16,7 +16,7 @@ typedef union _eeprom_info }eeprom_data; uint8_t eeprom_buffer[SECTOR_SIZE_BYTE]; }EEPROM_INFO; - +#pragma pack(pop) static EEPROM_INFO eeprom_info; diff --git a/Project/Application/kcd_hp100.c b/Project/Application/kcd_hp100.c new file mode 100644 index 0000000..22727a2 --- /dev/null +++ b/Project/Application/kcd_hp100.c @@ -0,0 +1,177 @@ +#include "kcd_hp100.h" +#include "sw_timer.h" +#include "usart11_rs485.h" + + +#define STX 0x03 +#define ETX 0x04 +#define DEFAULT_DEVICE_ID 31 +#define MEASUREMENT_DATA_SIZE 26 +#define PACKET_RX_TIMEOUT 300 + +typedef enum +{ + PACK_INDEX_STX = 0, + PACK_INDEX_SLAVE_ID = 1, + PACK_INDEX_SIZE = 2, + PACK_INDEX_CHECKSUM = 24, + PACK_INDEX_ETX = 25, +}PACKET_INDEX; + +typedef enum +{ + CMD_GET_MEASUREMENT_RESULT = 0x0A, + CMD_SET_DEVICE_ID = 0x3A, + CMD_SET_OUTPUT = 0x3B, + CMD_SET_BAUDRATE = 0x3C, + +}KCD_HP100_CMD; + +#pragma pack(push, 1) +typedef union _kcd_hp100_rx_info +{ + struct + { + uint8_t Stx; + uint8_t Slave_ID; + uint8_t PacketSize; + uint8_t Command; + uint8_t System_Classification_Code; + uint8_t System_Name[10]; + uint16_t Co2; + uint16_t Temperature; + uint16_t Humidity; + uint16_t VOC; + uint8_t Firmware_Version; + uint8_t CheckSum; + uint8_t Etx; + }Measurement; + uint8_t Rxbuff[26]; +}KCD_HP100_RX_INFO; +#pragma pack(pop) + + +static uint8_t KCD_HP100_DeviceID; +static uint8_t KCD_HP100_TxCommand; +static uint8_t KCD_HP100_RxIndex; +static uint8_t KCD_HP100_CheckSum; +static uint32_t KCD_HP100_TimeoutCount; +static KCD_HP100_STATE KCD_HP100_State; +static KCD_HP100_RX_INFO KCD_HP100_Result; + + + + + +static uint8_t KCD_HP_Calc_Checksum(uint8_t* pChecksumData, uint8_t DataSize); +static void KCD_HP_Rx_PacketRecv_Process(void); + + + + + + +void KCD_HP100_Initialization(void) +{ + KCD_HP100_DeviceID = DEFAULT_DEVICE_ID; + KCD_HP100_State = KCD_HP100_IDLE; + SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 0, KCD_HP_Rx_PacketRecv_Process); +} + +void KCD_HP100_Tx_Get_MeasurmentData(void) +{ + uint8_t TxIndex = 0; + uint8_t TxBuff[10]; + uint8_t CheckSum; + + KCD_HP100_State = KCD_HP100_TRANSMIT; + KCD_HP100_TimeoutCount = millis(); + KCD_HP100_TxCommand = CMD_GET_MEASUREMENT_RESULT; + KCD_HP100_RxIndex = 0; + + + TxBuff[TxIndex++] = STX; + TxBuff[TxIndex++] = KCD_HP100_DeviceID; + TxBuff[TxIndex++] = 0x06; + + TxBuff[TxIndex++] = KCD_HP100_TxCommand; + CheckSum = KCD_HP_Calc_Checksum(TxBuff, TxIndex); + TxBuff[TxIndex++] = CheckSum; + TxBuff[TxIndex++] = ETX; + + Usart11_TransmitData(TxBuff, TxIndex); +} + + +KCD_HP100_STATE KCD_HP100_GetState(void) +{ + return KCD_HP100_State; +} + +bool KCD_HP100_Get_Co2(uint16_t* pGetCo2) +{ + if(KCD_HP100_State != KCD_HP100_SUCCESS) + return false; + *pGetCo2 = KCD_HP100_Result.Measurement.Co2; + return true; +} + + +static uint8_t KCD_HP_Calc_Checksum(uint8_t* pChecksumData, uint8_t DataSize) +{ + uint8_t i; + uint8_t checksum = 0; + + for(i = 0 ; i < DataSize ; i++) + { + checksum += pChecksumData[i]; + } + + return checksum; +} + +static void KCD_HP_Rx_PacketRecv_Process(void) +{ + if(Usart11_Get_RecvDataCount() != 0) + { + uint8_t rxData = Usart11_Get_RecvData(); + + if(KCD_HP100_RxIndex == PACK_INDEX_STX && rxData == STX){ + KCD_HP100_Result.Rxbuff[KCD_HP100_RxIndex++] = rxData; + KCD_HP100_CheckSum = rxData; + } + else if(KCD_HP100_RxIndex == PACK_INDEX_SLAVE_ID && rxData == KCD_HP100_DeviceID){ + KCD_HP100_Result.Rxbuff[KCD_HP100_RxIndex++] = rxData; + KCD_HP100_CheckSum += rxData; + } + else if(KCD_HP100_RxIndex == PACK_INDEX_SIZE && rxData == MEASUREMENT_DATA_SIZE){ + KCD_HP100_Result.Rxbuff[KCD_HP100_RxIndex++] = rxData; + KCD_HP100_CheckSum += rxData; + } + else if(KCD_HP100_RxIndex < PACK_INDEX_CHECKSUM){ + KCD_HP100_Result.Rxbuff[KCD_HP100_RxIndex++] = rxData; + KCD_HP100_CheckSum += rxData; + } + else if(KCD_HP100_RxIndex == PACK_INDEX_CHECKSUM && rxData == KCD_HP100_CheckSum){ + KCD_HP100_Result.Rxbuff[KCD_HP100_RxIndex++] = rxData; + } + else if(KCD_HP100_RxIndex == PACK_INDEX_ETX && rxData == ETX){ + KCD_HP100_Result.Rxbuff[KCD_HP100_RxIndex++] = rxData; + KCD_HP100_RxIndex = 0; + //dbg_printf("co2 = %d\r\n", KCD_HP100_Result.Measurement.Co2); + KCD_HP100_State = KCD_HP100_SUCCESS; + } + else + { + KCD_HP100_RxIndex = 0; + } + } + + if(KCD_HP100_State == KCD_HP100_TRANSMIT) + { + if((millis() - KCD_HP100_TimeoutCount) >= PACKET_RX_TIMEOUT) + { + KCD_HP100_State = KCD_HP100_ERROR_TIMEOUT; + } + } +} diff --git a/Project/Application/kcd_hp100.h b/Project/Application/kcd_hp100.h new file mode 100644 index 0000000..d0f115e --- /dev/null +++ b/Project/Application/kcd_hp100.h @@ -0,0 +1,24 @@ +/** \file kcd_hp100.h */ +#if !defined(KCD_HP100_H__623A6ED1_F4A3_4BF2_99DE_65E7E10882F3__INCLUDED_) +#define KCD_HP100_H__623A6ED1_F4A3_4BF2_99DE_65E7E10882F3__INCLUDED_ + +#include "define.h" +#include "board_config.h" + + +typedef enum +{ + + KCD_HP100_IDLE, + KCD_HP100_SUCCESS, + KCD_HP100_TRANSMIT, + KCD_HP100_ERROR_TIMEOUT, +}KCD_HP100_STATE; + +void KCD_HP100_Initialization(void); +void KCD_HP100_Tx_Get_MeasurmentData(void); + +KCD_HP100_STATE KCD_HP100_GetState(void); +bool KCD_HP100_Get_Co2(uint16_t* pGetCo2); + +#endif diff --git a/Project/Application/main.c b/Project/Application/main.c index 66afda1..083f754 100644 --- a/Project/Application/main.c +++ b/Project/Application/main.c @@ -2,6 +2,7 @@ #include "sw_timer.h" #include "gpio_state_led.h" #include "gpio_switch.h" +#include "gpio_sensor.h" #include "uart1.h" #include "usart11_rs485.h" #include "spi10.h" @@ -17,30 +18,11 @@ #include "eeprom.h" #include "buzzer.h" #include "uart_packet.h" +#include "kcd_hp100.h" void timer_test(void) { - static bool istoggle = true; - uint8_t i; - uint8_t TxBuff[10]; - for(i = 0 ; i < 10 ; i++) - TxBuff[i] = i; - - Usart11_TransmitData(TxBuff, 10); - -#if 0 - if(istoggle == true) - { - istoggle = false; - I2C2_SCL_HIGH; - } - else - { - istoggle = true; - I2C2_SCL_LOW; - } - #endif } @@ -62,7 +44,7 @@ int main(void) Buzzer_Initialization(); - + Gpio_Sensor_PWR_Initialization(); Gpio_Switch_Port_Initialization(); Gpio_StateLed_Initialization(); @@ -71,14 +53,16 @@ int main(void) SPI13_Initialization(1000000, SPI13_MODE0, false); Segment_Initialization(); + KCD_HP100_Initialization(); + Action_Initialization(); __enable_irq(); - SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 250, timer_test); - + //SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 1000, timer_test); + while(true) { @@ -96,7 +80,7 @@ int main(void) - Gpio_Sensor_PWR_Initialization(); + GPIO_I2C0_Initialization(); GPIO_I2C1_Initialization(); diff --git a/Project/Application/rtc_process.c b/Project/Application/rtc_process.c index ec3041a..3f2b3d3 100644 --- a/Project/Application/rtc_process.c +++ b/Project/Application/rtc_process.c @@ -13,6 +13,7 @@ void RTC_Process_Initialization(void) { ds3231_basic_init(); SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 1000, RTC_Get_IC_Time_Process); + RTC_Get_IC_Time_Process(); } @@ -31,7 +32,7 @@ static void RTC_Get_IC_Time_Process(void) rtc_Time.rtc_Min = t.minute; rtc_Time.rtc_Sec = t.second; - dbg_printf("Read RTC : %04d-%02d-%02d %02d:%02d:%02d\r\n", rtc_Time.rtc_Year, rtc_Time.rtc_Month, rtc_Time.rtc_Date, rtc_Time.rtc_Hour, rtc_Time.rtc_Min, rtc_Time.rtc_Sec); + //dbg_printf("Read RTC : %04d-%02d-%02d %02d:%02d:%02d\r\n", rtc_Time.rtc_Year, rtc_Time.rtc_Month, rtc_Time.rtc_Date, rtc_Time.rtc_Hour, rtc_Time.rtc_Min, rtc_Time.rtc_Sec); } diff --git a/Project/Application/save_file.c b/Project/Application/save_file.c index 3f0f6e1..19e7f74 100644 --- a/Project/Application/save_file.c +++ b/Project/Application/save_file.c @@ -27,6 +27,7 @@ static uint32_t SaveFileTickCount; static uint8_t SaveMin; static FATFS FatFs; //Fatfs handle static FIL fil; //File handle +static DIR dir; static FRESULT fres; //Result after operations uint8_t FileBuffer[512]; @@ -38,13 +39,10 @@ static bool isGuidePrint; static bool isPowerOn; -bool Save_SensorData_SDCard(void) +bool Save_SensorData_SDCard(uint16_t AverageCo2, uint16_t MaxCo2, uint16_t MinCo2, uint8_t State) { -#if 0 RTC_TIME rtc_time; - SENSOR_SAVE_DATA SaveSensorData; uint32_t writeByte; - rtc_time = RTC_Get_Time(); MX_FATFS_Init(); fres = f_mount(&FatFs, "", 1); //1=mount now @@ -56,16 +54,32 @@ bool Save_SensorData_SDCard(void) } if(fres != FR_OK) - { + { + //dbg_printf("sdcard mount errorr\r\n"); return false; } - + rtc_time = RTC_Get_Time(); + sprintf((char *)FileBuffer, "%04d%02d%02d", rtc_time.rtc_Year, rtc_time.rtc_Month, rtc_time.rtc_Date); + //dbg_printf("open dir = %s\r\n", FileBuffer); + fres = f_opendir(&dir, FileBuffer); + if(fres != FR_OK) + { + fres = f_mkdir(FileBuffer); + if(fres != FR_OK) + { + //dbg_printf("create directory error\r\n"); + return false; + } + } - sprintf((char *)FileBuffer, "%d_%d_%d.csv", rtc_time.rtc_Year, rtc_time.rtc_Month, rtc_time.rtc_Date); + sprintf((char *)FileBuffer, "/%04d%02d%02d/%02d.csv", rtc_time.rtc_Year, rtc_time.rtc_Month, rtc_time.rtc_Date, rtc_time.rtc_Hour); if(f_open(&fil, FileBuffer, FA_WRITE | FA_READ) != FR_OK) { + //dbg_printf("file open error, retry\r\n"); if (f_open(&fil, FileBuffer, FA_CREATE_ALWAYS | FA_WRITE) != FR_OK) { + //dbg_printf("file open error\r\n"); + f_closedir(&dir); return false; } else @@ -78,110 +92,39 @@ bool Save_SensorData_SDCard(void) isGuidePrint = false; } - - fres = f_lseek(&fil, f_size(&fil)); if(fres != FR_OK) { + f_closedir(&dir); f_close(&fil); return false; } + if(isGuidePrint == true) - { - sprintf((char *)FileBuffer, "Time,In_PM10.0,In_PM4.0,In_PM2.5,In_PM1.0,In_Humidity,In_Temp,In_Voc,Out_PM10.0,Out_PM4.0,Out_PM2.5,Out_PM1.0,Out_Humidity,Out_Temp,Out_Voc\r\n"); + { + sprintf((char *)FileBuffer, "Time,Average_Co2,Max_Co2,Min_Co2,State\r\n"); fres = f_write(&fil, FileBuffer, strlen(FileBuffer), &writeByte); if(fres != FR_OK) { + f_closedir(&dir); f_close(&fil); return false; } } - while(Sensor_RingBuffer_Get_DataSize(&Sensor_RingBuffer_Info) != 0) + sprintf((char *)FileBuffer, "%d:%d,%d,%d,%d,%d\r\n", rtc_time.rtc_Hour, rtc_time.rtc_Min, AverageCo2, MaxCo2, MinCo2, State); + fres = f_write(&fil, FileBuffer, strlen(FileBuffer), &writeByte); + if(fres != FR_OK) { - if(Sensor_RingBuffer_Dequeue(&Sensor_RingBuffer_Info, &SaveSensorData) == true) - { - sprintf((char *)FileBuffer, "%d:%d:%d,", SaveSensorData.rtc_time.rtc_Hour, SaveSensorData.rtc_time.rtc_Min, SaveSensorData.rtc_time.rtc_Sec); - fres = f_write(&fil, FileBuffer, strlen(FileBuffer), &writeByte); - if(fres != FR_OK) - { - f_close(&fil); - return false; - } - - if(SaveSensorData.dust_sensor_In_info.isSensorMount == true) - { - sprintf((char *)FileBuffer, "%d,%d,%d,%d,%d,%d,%d,", SaveSensorData.dust_sensor_In_info.Dust_PM10p0, - SaveSensorData.dust_sensor_In_info.Dust_PM4p0, - SaveSensorData.dust_sensor_In_info.Dust_PM2p5, - SaveSensorData.dust_sensor_In_info.Dust_PM1p0, - SaveSensorData.dust_sensor_In_info.Dust_Humidity, - SaveSensorData.dust_sensor_In_info.Dust_Temperature, - SaveSensorData.dust_sensor_In_info.Dust_VOC_Index); - fres = f_write(&fil, FileBuffer, strlen(FileBuffer), &writeByte); - if(fres != FR_OK) - { - f_close(&fil); - return false; - } - - #if 0 - printf("In, - #endif - } - else - { - sprintf((char *)FileBuffer, "-,-,-,-,-,-,-,"); - fres = f_write(&fil, FileBuffer, strlen(FileBuffer), &writeByte); - if(fres != FR_OK) - { - f_close(&fil); - return false; - } - } - - if(SaveSensorData.dust_sensor_Out_info.isSensorMount == true) - { - sprintf((char *)FileBuffer, "%d,%d,%d,%d,%d,%d,%d\r\n", SaveSensorData.dust_sensor_Out_info.Dust_PM10p0, - SaveSensorData.dust_sensor_Out_info.Dust_PM4p0, - SaveSensorData.dust_sensor_Out_info.Dust_PM2p5, - SaveSensorData.dust_sensor_Out_info.Dust_PM1p0, - SaveSensorData.dust_sensor_Out_info.Dust_Humidity, - SaveSensorData.dust_sensor_Out_info.Dust_Temperature, - SaveSensorData.dust_sensor_Out_info.Dust_VOC_Index); - fres = f_write(&fil, FileBuffer, strlen(FileBuffer), &writeByte); - if(fres != FR_OK) - { - f_close(&fil); - return false; - } - } - else - { - sprintf((char *)FileBuffer, "-,-,-,-,-,-,-\r\n"); - fres = f_write(&fil, FileBuffer, strlen(FileBuffer), &writeByte); - if(fres != FR_OK) - { - f_close(&fil); - return false; - } - } - - } + f_closedir(&dir); + f_close(&fil); + return false; } - - - - - - - - f_close(&fil); -#endif - return true; + f_closedir(&dir); + return true; } diff --git a/Project/Application/save_file.h b/Project/Application/save_file.h index bb67749..d8d221a 100644 --- a/Project/Application/save_file.h +++ b/Project/Application/save_file.h @@ -5,6 +5,6 @@ #include "define.h" #include "board_config.h" -bool Save_SensorData_SDCard(void); +bool Save_SensorData_SDCard(uint16_t AverageCo2, uint16_t MaxCo2, uint16_t MinCo2, uint8_t State); #endif diff --git a/Project/Application/segment.c b/Project/Application/segment.c index 011aeb2..c48b3f3 100644 --- a/Project/Application/segment.c +++ b/Project/Application/segment.c @@ -45,22 +45,8 @@ const uint8_t SegmentData[SEG_INDEX_MAX] = }; - - - uint8_t Segment_OutputBuff[SEGMENT_SELECT_MAX_INDEX][SEGMENT_MAX_DATA_INDEX]; - - - - - - - - - - - void Segment_Sensor_Error(void) { @@ -68,7 +54,6 @@ void Segment_Sensor_Error(void) Segment_OutputBuff[SEGMENT_100][SEGMENT_F2] = SegmentData[SEG_MINUS]; Segment_OutputBuff[SEGMENT_10][SEGMENT_F2] = SegmentData[SEG_MINUS]; Segment_OutputBuff[SEGMENT_1][SEGMENT_F2] = SegmentData[SEG_MINUS]; - } @@ -146,6 +131,15 @@ void Segment_Show_Time(void) void Segment_Show_SensorData(uint32_t SensorData) { + if(SensorData == 0xFFFF) + { + Segment_OutputBuff[SEGMENT_1000][SEGMENT_F2] = SegmentData[SEG_MINUS]; + Segment_OutputBuff[SEGMENT_100][SEGMENT_F2] = SegmentData[SEG_MINUS]; + Segment_OutputBuff[SEGMENT_10][SEGMENT_F2] = SegmentData[SEG_MINUS]; + Segment_OutputBuff[SEGMENT_1][SEGMENT_F2] = SegmentData[SEG_MINUS]; + return; + } + if(SensorData >= 9999) { Segment_OutputBuff[SEGMENT_1000][SEGMENT_F2] = SegmentData[SEG_9]; @@ -184,542 +178,52 @@ void Segment_Show_SensorData(uint32_t SensorData) } - - - - - -#if 0 - -void Segment_In_Set_PM_1p0(uint32_t OutputData) -{ - Segment_Toggle_In = false; - if(OutputData >= 9999) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_2] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_2] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_1] = SegmentData[OutputData/1000]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_2] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } -} - -void Segment_In_Set_PM_2p5(uint32_t OutputData) -{ - if(OutputData >= 9999) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_2] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_2] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_1] = SegmentData[OutputData/1000]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_2] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } -} - -void Segment_In_Set_PM_4p0(uint32_t OutputData) -{ - Segment_Toggle_In = true; - if(OutputData >= 9999) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_2] = SegmentData[SEG_9]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_2] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_1] = SegmentData[OutputData/1000]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_2] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } -} - -void Segment_In_Set_PM_10(uint32_t OutputData) -{ - - if(OutputData >= 9999) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[OutputData/1000]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[(OutputData%10)]; - } -} - -void Segment_In_Set_Humidity(uint32_t OutputData) -{ - if(OutputData >= 99) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_1] = SegmentData[SEG_9]; - } - else if(OutputData <= 9) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_1] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_1] = SegmentData[OutputData%10]; +void Segment_Show_SettingData(SET_INDEX index, uint16_t SensorSetData) +{ + uint32_t segment_toggle = millis() % (SEGMENT_TOGGLE_TIME *2);; + + uint8_t temp_1000 = SensorSetData / 1000; + uint8_t temp_100 = (SensorSetData / 100) % 10; + uint8_t temp_10 = (SensorSetData / 10) % 10; + uint8_t temp_1 = SensorSetData % 10; + + if(segment_toggle >= SEGMENT_TOGGLE_TIME) + { + switch (index) + { + case SET_1000: + Segment_OutputBuff[SEGMENT_1000][SEGMENT_F2] = SegmentData[SEG_CLEAR]; + Segment_OutputBuff[SEGMENT_100][SEGMENT_F2] = SegmentData[temp_100]; + Segment_OutputBuff[SEGMENT_10][SEGMENT_F2] = SegmentData[temp_10]; + Segment_OutputBuff[SEGMENT_1][SEGMENT_F2] = SegmentData[temp_1]; + break; + case SET_100: + Segment_OutputBuff[SEGMENT_1000][SEGMENT_F2] = SegmentData[temp_1000]; + Segment_OutputBuff[SEGMENT_100][SEGMENT_F2] = SegmentData[SEG_CLEAR]; + Segment_OutputBuff[SEGMENT_10][SEGMENT_F2] = SegmentData[temp_10]; + Segment_OutputBuff[SEGMENT_1][SEGMENT_F2] = SegmentData[temp_1]; + break; + case SET_10: + Segment_OutputBuff[SEGMENT_1000][SEGMENT_F2] = SegmentData[temp_1000]; + Segment_OutputBuff[SEGMENT_100][SEGMENT_F2] = SegmentData[temp_100]; + Segment_OutputBuff[SEGMENT_10][SEGMENT_F2] = SegmentData[SEG_CLEAR]; + Segment_OutputBuff[SEGMENT_1][SEGMENT_F2] = SegmentData[temp_1]; + break; + case SET_1: + Segment_OutputBuff[SEGMENT_1000][SEGMENT_F2] = SegmentData[temp_1000]; + Segment_OutputBuff[SEGMENT_100][SEGMENT_F2] = SegmentData[temp_100]; + Segment_OutputBuff[SEGMENT_10][SEGMENT_F2] = SegmentData[temp_10]; + Segment_OutputBuff[SEGMENT_1][SEGMENT_F2] = SegmentData[SEG_CLEAR]; + break; + } } else { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_1] = SegmentData[OutputData / 10]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_1] = SegmentData[OutputData % 10]; - } -} - -void Segment_In_Set_Temperature(int32_t OutputData) -{ - if(OutputData >= 99) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_2] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_2] = SegmentData[SEG_9]; - } - else if(OutputData <= -10) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_2] = SegmentData[SEG_9]; - } - else if(OutputData >= -9 && OutputData <= -1) - { - int32_t temp = OutputData * -1; - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_2] = SegmentData[temp%10]; + Segment_OutputBuff[SEGMENT_1000][SEGMENT_F2] = SegmentData[temp_1000]; + Segment_OutputBuff[SEGMENT_100][SEGMENT_F2] = SegmentData[temp_100]; + Segment_OutputBuff[SEGMENT_10][SEGMENT_F2] = SegmentData[temp_10]; + Segment_OutputBuff[SEGMENT_1][SEGMENT_F2] = SegmentData[temp_1]; } - else if(OutputData <= 9 && OutputData >= 0) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_2] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_2] = SegmentData[OutputData%10]; - } - else - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_2] = SegmentData[OutputData / 10]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_2] = SegmentData[OutputData % 10]; - } } -void Segment_Out_Set_PM_1p0(uint32_t OutputData) -{ - Segment_Toggle_Out = false; - if(OutputData >= 9999) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_4] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_4] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_3] = SegmentData[OutputData/1000]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_4] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } -} -void Segment_Out_Set_PM_2p5(uint32_t OutputData) -{ - if(OutputData >= 9999) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_4] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_4] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_3] = SegmentData[OutputData/1000]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_4] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } -} - -void Segment_Out_Set_PM_4p0(uint32_t OutputData) -{ - Segment_Toggle_Out = true; - if(OutputData >= 9999) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_4] = SegmentData[SEG_9]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_4] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_3] = SegmentData[OutputData/1000]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_1][SEGMENT_DATA_4] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[DUST_SENSOR_PM40_SELECT_2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } -} - -void Segment_Out_Set_PM_10(uint32_t OutputData) -{ - - if(OutputData >= 9999) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_4] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_4] = SegmentData[SEG_9]; - } - else if(OutputData >= 1000) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[OutputData/1000]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 100) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_3] = SegmentData[(OutputData%1000)/100]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else if(OutputData >= 10) - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_4] = SegmentData[(OutputData%100)/10]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } - else - { - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_4] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_4] = SegmentData[(OutputData%10)]; - } -} - -void Segment_Out_Set_Humidity(uint32_t OutputData) -{ - if(OutputData >= 99) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_3] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_3] = SegmentData[SEG_9]; - } - else if(OutputData <= 9) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_3] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_3] = SegmentData[OutputData%10]; - } - else - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_3] = SegmentData[OutputData / 10]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_3] = SegmentData[OutputData % 10]; - } -} - -void Segment_Out_Set_Temperature(int32_t OutputData) -{ - if(OutputData >= 99) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_4] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_4] = SegmentData[SEG_9]; - } - else if(OutputData <= -10) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_4] = SegmentData[SEG_9]; - } - else if(OutputData >= -9 && OutputData <= -1) - { - int32_t temp = OutputData * -1; - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_4] = SegmentData[temp%10]; - } - else if(OutputData <= 9 && OutputData >= 0) - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_4] = SegmentData[SEG_CLEAR]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_4] = SegmentData[OutputData%10]; - } - else - { - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_4] = SegmentData[OutputData / 10]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_4] = SegmentData[OutputData % 10]; - } -} - - -void Segment_All_Set_Data(uint8_t SegmentData) -{ - uint8_t i; - for(i = SEGMENT_F1C1 ; i < SEGMENT_SELECT_MAX_INDEX ; i++) - { - Segment_OutputBuff[i][SEGMENT_DATA_1] = SegmentData; - Segment_OutputBuff[i][SEGMENT_DATA_2] = SegmentData; - Segment_OutputBuff[i][SEGMENT_DATA_3] = SegmentData; - Segment_OutputBuff[i][SEGMENT_DATA_4] = SegmentData; - } - -} - - -void Segment_Show_Version(void) -{ - uint8_t i; - uint16_t temp; - for(i = SEGMENT_F1C1 ; i < SEGMENT_SELECT_MAX_INDEX ; i++) - { - Segment_OutputBuff[i][SEGMENT_DATA_1] = 0x00; - Segment_OutputBuff[i][SEGMENT_DATA_2] = 0x00; - Segment_OutputBuff[i][SEGMENT_DATA_3] = 0x00; - Segment_OutputBuff[i][SEGMENT_DATA_4] = 0x00; - } - - //Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[SEG_9]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[SEG_V]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[SEG_E]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[SEG_R]; - - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[VERSION_MAJOR] | 0x80; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_3] = SegmentData[VERSION_MINOR] | 0x80; - temp = VERSION_PATCH; - if(temp >= 99) - { - temp = 99; - } - - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_4] = SegmentData[temp/10]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_4] = SegmentData[temp%10]; -} - - - -void Segment_Show_Mode(uint8_t Mode) -{ - uint8_t i; - uint16_t temp; - for(i = SEGMENT_F1C1 ; i < SEGMENT_SELECT_MAX_INDEX ; i++) - { - Segment_OutputBuff[i][SEGMENT_DATA_1] = 0x00; - Segment_OutputBuff[i][SEGMENT_DATA_2] = 0x00; - Segment_OutputBuff[i][SEGMENT_DATA_3] = 0x00; - Segment_OutputBuff[i][SEGMENT_DATA_4] = 0x00; - } - - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[SEG_M]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[SEG_O]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[SEG_D]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[SEG_E]; - - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[Mode]; - -} - -void Segment_In_Sensor_Error(void) -{ - Segment_Toggle_In = false; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_1] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_2] = SegmentData[SEG_MINUS]; -} - - -void Segment_Out_Sensor_Error(void) -{ - Segment_Toggle_Out = false; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F1C1][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F1C2][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F2C1][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F2C2][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F3C1][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F3C2][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_3] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C1][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; - Segment_OutputBuff[SEGMENT_F4C2][SEGMENT_DATA_4] = SegmentData[SEG_MINUS]; -} -#endif diff --git a/Project/Application/segment.h b/Project/Application/segment.h index 36e10aa..a3cafaa 100644 --- a/Project/Application/segment.h +++ b/Project/Application/segment.h @@ -2,7 +2,9 @@ #if !defined(SEGMENT_H__CECA83FE_5707_4492_A247_CC6270C87910__INCLUDED_) #define SEGMENT_H__CECA83FE_5707_4492_A247_CC6270C87910__INCLUDED_ +#include "define.h" #include "board_config.h" +#include "action_process.h" typedef enum { @@ -83,5 +85,6 @@ void Segment_All_Set_Data(uint8_t SegmentData); void Segment_Show_Version(void); void Segment_Show_Time(void); void Segment_Show_SensorData(uint32_t SensorData); +void Segment_Show_SettingData(SET_INDEX index, uint16_t SensorSetData); #endif diff --git a/Project/Application/uart1_rs485.c b/Project/Application/uart1_rs485.c deleted file mode 100644 index 4c4859d..0000000 --- a/Project/Application/uart1_rs485.c +++ /dev/null @@ -1,289 +0,0 @@ -#include "uart1_rs485.h" -#include "sw_timer.h" -#include "ring_buffer.h" -#include "gpio_uart_led.h" - - -//#define UARTn_RS485_TX_INTERRUTP_ENABLE - - -#define UARTn_RS485_PERIPHERAL UART1 -#define UARTn_RS485_INTERRUPT_HANDLER UART1_IRQn -#define UARTn_RS485_INTERRUPT_MASK MSK_UART1 -#define UARTn_RS485_INTERRUPT_PRIORITY 3 -#define UARTn_RS485_TX_PORT PB -#define UARTn_RS485_TX_PIN_NUM 6 -#define UARTn_RS485_RX_PORT PB -#define UARTn_RS485_RX_PIN_NUM 7 - -#define UARTn_RS485_TX_BUFFER_SIZE 100 -#define UARTn_RS485_RX_BUFFER_SIZE 300 - - -#define UARTn_RS485_REDE_PORT (Pn_Type*)PC -#define UARTn_RS485_REDE_NUM 0 -#define UARTn_RS485_RECEIVE HAL_GPIO_ClearPin(UARTn_RS485_REDE_PORT, _BIT(UARTn_RS485_REDE_NUM)) -#define UARTn_RS485_TRANSMIT HAL_GPIO_SetPin(UARTn_RS485_REDE_PORT, _BIT(UARTn_RS485_REDE_NUM)) - - - -static uint8_t Tx_RS485_Buffer[UARTn_RS485_TX_BUFFER_SIZE]; -static uint8_t Rx_RS485_Buffer[UARTn_RS485_RX_BUFFER_SIZE]; -static RING_BUFFER RingBuffer_RS485_Tx; -static RING_BUFFER RingBuffer_RS485_Rx; - - -#if defined(UARTn_RS485_TX_INTERRUTP_ENABLE) - static volatile uint8_t Uartn_RS485_TxIntEnable = FALSE; - static void Uart1_RS485_Init_TransmitSet(void); -#else - static void Uart1_RS485_Transmit_Process(void); -#endif - - - -static void Uart1_RS485_Receive_Handler(void); - - -void Uart1_RS485_Initialization(uint32_t Baudrate, UARTn_DATA_BIT_Type Databit, UARTn_PARITY_BIT_Type Paritybit, UARTn_STOP_BIT_Type Stopbit) -{ - UARTn_CFG_Type UARTn_Config; - - /* - * Initialize UART0 pin connect - */ - HAL_GPIO_ConfigOutput((Pn_Type*)UARTn_RS485_RX_PORT, UARTn_RS485_RX_PIN_NUM, ALTERN_FUNC ); - HAL_GPIO_ConfigFunction((Pn_Type*)UARTn_RS485_RX_PORT, UARTn_RS485_RX_PIN_NUM, AFSRx_AF1 ); - HAL_GPIO_ConfigPullup((Pn_Type*)UARTn_RS485_RX_PORT, UARTn_RS485_RX_PIN_NUM, PUPDx_EnablePU ); - - HAL_GPIO_ConfigOutput((Pn_Type*)UARTn_RS485_TX_PORT, UARTn_RS485_TX_PIN_NUM, ALTERN_FUNC ); - HAL_GPIO_ConfigFunction((Pn_Type*)UARTn_RS485_TX_PORT, UARTn_RS485_TX_PIN_NUM, AFSRx_AF1 ); - - // default: 38400-8-N-1 - HAL_UART_ConfigStructInit(&UARTn_Config); - UARTn_Config.Baudrate = Baudrate; - UARTn_Config.Databits = Databit; - UARTn_Config.Parity = Paritybit; - UARTn_Config.Stopbits = Stopbit; - - HAL_UART_Init((UARTn_Type*)UARTn_RS485_PERIPHERAL, &UARTn_Config); - - - HAL_GPIO_ConfigOutput(UARTn_RS485_REDE_PORT, UARTn_RS485_REDE_NUM, PUSH_PULL_OUTPUT); - HAL_GPIO_ConfigPullup(UARTn_RS485_REDE_PORT, UARTn_RS485_REDE_NUM, PUPDx_EnablePU); - UARTn_RS485_RECEIVE; - - /* Enable UART Rx interrupt */ - HAL_UART_ConfigInterrupt((UARTn_Type*)UARTn_RS485_PERIPHERAL, UARTn_INTCFG_RBR, ENABLE ); - -#if defined(UARTn_RS485_TX_INTERRUTP_ENABLE) - // Reset Tx Interrupt state - Uartn_RS485_TxIntEnable = RESET; -#else - SW_Timer_Callback_Register(SW_TIMER_RUN_CONTINUE, 0, Uart1_RS485_Transmit_Process); -#endif - - RingBuffer_Initialization(&RingBuffer_RS485_Rx, false, UARTn_RS485_RX_BUFFER_SIZE, &Rx_RS485_Buffer[0]); - RingBuffer_Initialization(&RingBuffer_RS485_Tx, false, UARTn_RS485_TX_BUFFER_SIZE, &Tx_RS485_Buffer[0]); - - NVIC_SetPriority(UARTn_RS485_INTERRUPT_HANDLER, UARTn_RS485_INTERRUPT_PRIORITY); - NVIC_EnableIRQ(UARTn_RS485_INTERRUPT_HANDLER ); - HAL_INT_EInt_MaskDisable(UARTn_RS485_INTERRUPT_MASK); -} - - - -void Uart1_RS485_Transmit(uint8_t TxData) -{ -#if defined(UARTn_RS485_TX_INTERRUTP_ENABLE) - /* Temporarily lock out UART transmit interrupts during this read so the UART transmit interrupt won't cause problems with the index values */ - HAL_UART_ConfigInterrupt((UARTn_Type*)UARTn_PERIPHERAL, UARTn_INTCFG_THRE, DISABLE ); - - RingBuffer_Enqueue(&RingBuffer_Tx, TxData); - - /* - * Check if current Tx interrupt enable is reset, - * that means the Tx interrupt must be re-enabled - * due to call IntTransmit() function to trigger - * this interrupt type - */ - if(Uartn_RS485_TxIntEnable == RESET) - { - Uart1_RS485_Init_TransmitSet(); - } - /* - * Otherwise, re-enables Tx Interrupt - */ - else - { - HAL_UART_ConfigInterrupt((UARTn_Type*)UARTn_PERIPHERAL, UARTn_INTCFG_THRE, ENABLE ); - } -#else - RingBuffer_Enqueue(&RingBuffer_RS485_Tx, TxData); -#endif -} - - - -void Uart1_RS485_TransmitData(uint8_t* pTxData, uint32_t TxLen) -{ - uint32_t i; -#if defined(UARTn_RS485_TX_INTERRUTP_ENABLE) - HAL_UART_ConfigInterrupt( ( UARTn_Type* )UARTn_RS485_PERIPHERAL, UARTn_INTCFG_THRE, DISABLE ); - - for(i = 0 ; i < TxLen ; i++) - RingBuffer_Enqueue(&RingBuffer_Tx, pTxData[i]); - - if(Uartn_RS485_TxIntEnable == RESET) - { - Uart1_RS485_Init_TransmitSet(); - } - else - { - HAL_UART_ConfigInterrupt( ( UARTn_Type* )UARTn_PERIPHERAL, UARTn_INTCFG_THRE, ENABLE ); - } -#else - for(i = 0 ; i < TxLen ; i++) - RingBuffer_Enqueue(&RingBuffer_RS485_Tx, pTxData[i]); -#endif -} - - -#if defined(UARTn_RS485_TX_INTERRUTP_ENABLE) -static void Uart1_RS485_Init_TransmitSet(void) -{ - // Disable THRE interrupt - HAL_UART_ConfigInterrupt( ( UARTn_Type* )UARTn_RS485_PERIPHERAL, UARTn_INTCFG_THRE, DISABLE ); - - /* Wait until THR empty */ - while( HAL_UART_CheckBusy( ( UARTn_Type* )UARTn_RS485_PERIPHERAL ) == SET ); - - while(RingBuffer_Get_DataSize(&RingBuffer_Tx) != 0) - { - uint8_t TxData; - RingBuffer_GetData(&RingBuffer_RS485_Tx, &TxData); - - if(HAL_UART_Transmit( ( UARTn_Type* )UARTn_RS485_PERIPHERAL, &TxData, 1, NONE_BLOCKING ) ) - { - /* Update transmit ring FIFO tail pointer */ - RingBuffer_PopData(&RingBuffer_RS485_Tx); - break; - } - else - { - break; - } - } - - /* If there is no more data to send, disable the transmit interrupt - else enable it or keep it enabled */ - if(RingBuffer_Get_DataSize(&RingBuffer_RS485_Tx) == 0) - { - HAL_UART_ConfigInterrupt((RingBuffer_RS485_Tx*)UARTn_RS485_PERIPHERAL, UARTn_INTCFG_THRE, DISABLE ); - // Reset Tx Interrupt state - Uartn_TxIntEnable = RESET; - } - else - { - // Set Tx Interrupt state - Uartn_TxIntEnable = SET; - HAL_UART_ConfigInterrupt((UARTn_Type*)UARTn_RS485_PERIPHERAL, UARTn_INTCFG_THRE, ENABLE ); - } -} -#else -static void Uart1_RS485_Transmit_Process(void) -{ - if(RingBuffer_Get_DataSize(&RingBuffer_RS485_Tx) != 0) - { - uint8_t TxData; - UARTn_RS485_TRANSMIT; - GPIO_UART_RS485_TX_LED_ON; - - RingBuffer_GetData(&RingBuffer_RS485_Tx, &TxData); - - if(HAL_UART_Transmit((UARTn_Type*)UARTn_RS485_PERIPHERAL, &TxData, 1, NONE_BLOCKING)) - { - /* Update transmit ring FIFO tail pointer */ - RingBuffer_PopData(&RingBuffer_RS485_Tx); - } - } - else - { - if(HAL_UART_CheckBusy((UARTn_Type *)UARTn_RS485_PERIPHERAL) == RESET) - { - UARTn_RS485_RECEIVE; - GPIO_UART_RS485_TX_LED_OFF; - } - } -} -#endif - - -static void Uart1_RS485_Receive_Handler(void) -{ - uint8_t tmpc; - uint32_t rLen; - - while(1) - { - rLen = HAL_UART_Receive((UARTn_Type*)UARTn_RS485_PERIPHERAL, &tmpc, 1, NONE_BLOCKING ); - if (rLen) - { - RingBuffer_Enqueue(&RingBuffer_RS485_Rx, tmpc); - } - else - { - break; - } - } -} - -/*********************************************************************//** - * @brief UART1 interrupt handler sub-routine - * @param[in] None - * @return None - **********************************************************************/ -void UART1_Handler(void) -{ - uint32_t intsrc, tmp; - - /* Determine the interrupt source */ - intsrc = UARTn_RS485_PERIPHERAL->IIR; - tmp = intsrc & UARTn_IIR_INTID_MASK; - - - // Receiver Line Status - if(tmp == UARTn_IIR_INTID_RLS) // error(Overrun, Parity, Framing or Break Error) - { - } - else if(tmp == UARTn_IIR_INTID_RDA) // Receiver Data Available - { - Uart1_RS485_Receive_Handler(); - } - else if(tmp == UARTn_IIR_INTID_THRE) // Transmitter Holding Register Empty - { -#if defined(UARTn_RS485_TX_INTERRUTP_ENABLE) - Uart1_RS485_Init_TransmitSet(); -#endif - } - else if(tmp == UARTn_IIR_INTID_TXE) // Transmitter Register Empty - { - - } -} - -void Uart1_RS485_Push_Data(uint8_t RxData) -{ - RingBuffer_Enqueue(&RingBuffer_RS485_Rx, RxData); -} - -uint32_t Uart1_RS485_Get_RecvDataCount(void) -{ - return RingBuffer_Get_DataSize(&RingBuffer_RS485_Rx); -} - -uint8_t Uart1_RS485_Get_RecvData(void) -{ - uint8_t retData; - RingBuffer_Dequeue(&RingBuffer_RS485_Rx, &retData); - return retData; -} diff --git a/Project/Application/uart1_rs485.h b/Project/Application/uart1_rs485.h deleted file mode 100644 index 672ca7a..0000000 --- a/Project/Application/uart1_rs485.h +++ /dev/null @@ -1,14 +0,0 @@ -/** \file uart1_rs485.h */ -#if !defined(UART1_RS485_H__43E41896_F8DF_4ED4_B934_92ED846B67D5__INCLUDED_) -#define UART1_RS485_H__43E41896_F8DF_4ED4_B934_92ED846B67D5__INCLUDED_ - -#include "define.h" - -void Uart1_RS485_Initialization(uint32_t Baudrate, UARTn_DATA_BIT_Type Databit, UARTn_PARITY_BIT_Type Paritybit, UARTn_STOP_BIT_Type Stopbit); -void Uart1_RS485_Transmit(uint8_t TxData); -void Uart1_RS485_TransmitData(uint8_t* pTxData, uint32_t TxLen); -uint32_t Uart1_RS485_Get_RecvDataCount(void); -uint8_t Uart1_RS485_Get_RecvData(void); -void Uart1_RS485_Push_Data(uint8_t RxData); - -#endif diff --git a/Project/Listings/S_DustSensorView.map b/Project/Listings/S_DustSensorView.map index 513ba45..28e4652 100644 --- a/Project/Listings/S_DustSensorView.map +++ b/Project/Listings/S_DustSensorView.map @@ -22,17 +22,16 @@ Section Cross References main.o(i.main) refers to gpio_i2c.o(i.GPIO_I2C2_Initialization) for GPIO_I2C2_Initialization main.o(i.main) refers to rtc_process.o(i.RTC_Process_Initialization) for RTC_Process_Initialization main.o(i.main) refers to buzzer.o(i.Buzzer_Initialization) for Buzzer_Initialization + main.o(i.main) refers to gpio_sensor.o(i.Gpio_Sensor_PWR_Initialization) for Gpio_Sensor_PWR_Initialization main.o(i.main) refers to gpio_switch.o(i.Gpio_Switch_Port_Initialization) for Gpio_Switch_Port_Initialization main.o(i.main) refers to gpio_state_led.o(i.Gpio_StateLed_Initialization) for Gpio_StateLed_Initialization main.o(i.main) refers to timer12.o(i.Timer12_Initialization) for Timer12_Initialization main.o(i.main) refers to spi10.o(i.SPI10_Initialization) for SPI10_Initialization main.o(i.main) refers to spi13.o(i.SPI13_Initialization) for SPI13_Initialization main.o(i.main) refers to segment_74hc595d.o(i.Segment_Initialization) for Segment_Initialization + main.o(i.main) refers to kcd_hp100.o(i.KCD_HP100_Initialization) for KCD_HP100_Initialization main.o(i.main) refers to action_process.o(i.Action_Initialization) for Action_Initialization - main.o(i.main) refers to sw_timer.o(i.SW_Timer_Callback_Register) for SW_Timer_Callback_Register main.o(i.main) refers to sw_timer.o(i.SW_Timer_Callback_Process) for SW_Timer_Callback_Process - main.o(i.main) refers to main.o(i.timer_test) for timer_test - main.o(i.timer_test) refers to usart11_rs485.o(i.Usart11_TransmitData) for Usart11_TransmitData dbg_printf.o(i.fputc) refers to uart1.o(i.Uart1_Transmit) for Uart1_Transmit sw_timer.o(i.SW_Timer_Callback_Process) refers to systick_timer.o(i.millis) for millis sw_timer.o(i.SW_Timer_Callback_Process) refers to sw_timer.o(.bss) for SW_Timer_Info @@ -214,6 +213,21 @@ Section Cross References spi10.o(i.SPI10_Initialization) refers to a31g12x_hal_usart1n.o(i.HAL_USART_Init) for HAL_USART_Init spi10.o(i.SPI10_Initialization) refers to a31g12x_hal_usart1n.o(i.HAL_USART_DataControlConfig) for HAL_USART_DataControlConfig spi10.o(i.SPI10_Initialization) refers to a31g12x_hal_usart1n.o(i.HAL_USART_Enable) for HAL_USART_Enable + save_file.o(i.Save_SensorData_SDCard) refers to fatfs.o(i.MX_FATFS_Init) for MX_FATFS_Init + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_mount) for f_mount + save_file.o(i.Save_SensorData_SDCard) refers to ff_gen_drv.o(i.FATFS_UnLinkDriver) for FATFS_UnLinkDriver + save_file.o(i.Save_SensorData_SDCard) refers to rtc_process.o(i.RTC_Get_Time) for RTC_Get_Time + save_file.o(i.Save_SensorData_SDCard) refers to printfa.o(i.__0sprintf) for __2sprintf + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_opendir) for f_opendir + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_mkdir) for f_mkdir + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_open) for f_open + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_closedir) for f_closedir + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_lseek) for f_lseek + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_close) for f_close + save_file.o(i.Save_SensorData_SDCard) refers to strlen.o(.text) for strlen + save_file.o(i.Save_SensorData_SDCard) refers to ff.o(i.f_write) for f_write + save_file.o(i.Save_SensorData_SDCard) refers to save_file.o(.bss) for FatFs + save_file.o(i.Save_SensorData_SDCard) refers to save_file.o(.data) for fres driver_ds3231.o(i.a_ds3231_hex2bcd) refers to idiv.o(.text) for __aeabi_idivmod driver_ds3231.o(i.ds3231_aging_offset_convert_to_data) refers to fflti.o(.text) for __aeabi_i2f driver_ds3231.o(i.ds3231_aging_offset_convert_to_data) refers to fmul.o(.text) for __aeabi_fmul @@ -308,13 +322,27 @@ Section Cross References driver_ds3231_interface_template.o(i.ds3231_interface_receive_callback) refers to driver_ds3231_interface_template.o(i.ds3231_interface_debug_print) for ds3231_interface_debug_print rtc_process.o(i.RTC_Get_IC_Time_Process) refers to driver_ds3231_basic.o(i.ds3231_basic_get_time) for ds3231_basic_get_time rtc_process.o(i.RTC_Get_IC_Time_Process) refers to idiv.o(.text) for __aeabi_idivmod - rtc_process.o(i.RTC_Get_IC_Time_Process) refers to printfa.o(i.__0printf) for __2printf rtc_process.o(i.RTC_Get_IC_Time_Process) refers to rtc_process.o(.data) for rtc_Time rtc_process.o(i.RTC_Get_Time) refers to memcpya.o(.text) for __aeabi_memcpy rtc_process.o(i.RTC_Get_Time) refers to rtc_process.o(.data) for rtc_Time rtc_process.o(i.RTC_Process_Initialization) refers to driver_ds3231_basic.o(i.ds3231_basic_init) for ds3231_basic_init rtc_process.o(i.RTC_Process_Initialization) refers to sw_timer.o(i.SW_Timer_Callback_Register) for SW_Timer_Callback_Register rtc_process.o(i.RTC_Process_Initialization) refers to rtc_process.o(i.RTC_Get_IC_Time_Process) for RTC_Get_IC_Time_Process + action_process.o(i.Action_Down_Key_Push) refers to buzzer.o(i.Buzzer_On) for Buzzer_On + action_process.o(i.Action_Down_Key_Push) refers to systick_timer.o(i.millis) for millis + action_process.o(i.Action_Down_Key_Push) refers to idiv.o(.text) for __aeabi_idivmod + action_process.o(i.Action_Down_Key_Push) refers to action_process.o(.bss) for Control_Info + action_process.o(i.Action_Get_SensorData) refers to systick_timer.o(i.millis) for millis + action_process.o(i.Action_Get_SensorData) refers to kcd_hp100.o(i.KCD_HP100_Tx_Get_MeasurmentData) for KCD_HP100_Tx_Get_MeasurmentData + action_process.o(i.Action_Get_SensorData) refers to action_process.o(.bss) for Control_Info + action_process.o(i.Action_Get_SensorReadProcess) refers to kcd_hp100.o(i.KCD_HP100_GetState) for KCD_HP100_GetState + action_process.o(i.Action_Get_SensorReadProcess) refers to kcd_hp100.o(i.KCD_HP100_Get_Co2) for KCD_HP100_Get_Co2 + action_process.o(i.Action_Get_SensorReadProcess) refers to systick_timer.o(i.millis) for millis + action_process.o(i.Action_Get_SensorReadProcess) refers to rtc_process.o(i.RTC_Get_Time) for RTC_Get_Time + action_process.o(i.Action_Get_SensorReadProcess) refers to printfa.o(i.__0printf) for __2printf + action_process.o(i.Action_Get_SensorReadProcess) refers to action_process.o(i.Action_Get_SensorData) for Action_Get_SensorData + action_process.o(i.Action_Get_SensorReadProcess) refers to action_process.o(i.Action_SaveSensorData) for Action_SaveSensorData + action_process.o(i.Action_Get_SensorReadProcess) refers to action_process.o(.bss) for Control_Info action_process.o(i.Action_Initialization) refers to gpio_switch.o(i.Gpio_Swtich_Set_Callback) for Gpio_Swtich_Set_Callback action_process.o(i.Action_Initialization) refers to sw_timer.o(i.SW_Timer_Callback_Register) for SW_Timer_Callback_Register action_process.o(i.Action_Initialization) refers to action_process.o(.bss) for Control_Info @@ -323,8 +351,10 @@ Section Cross References action_process.o(i.Action_Initialization) refers to action_process.o(i.Action_Up_Key_Push) for Action_Up_Key_Push action_process.o(i.Action_Initialization) refers to action_process.o(i.Action_Down_Key_Push) for Action_Down_Key_Push action_process.o(i.Action_Initialization) refers to action_process.o(i.Action_Process) for Action_Process + action_process.o(i.Action_Mode_Key_Push) refers to segment_74hc595d.o(i.__ARM_common_switch8) for __ARM_common_switch8 action_process.o(i.Action_Mode_Key_Push) refers to buzzer.o(i.Buzzer_On) for Buzzer_On action_process.o(i.Action_Mode_Key_Push) refers to gpio_state_led.o(i.Gpio_Led_OutputSet) for Gpio_Led_OutputSet + action_process.o(i.Action_Mode_Key_Push) refers to systick_timer.o(i.millis) for millis action_process.o(i.Action_Mode_Key_Push) refers to action_process.o(.bss) for Control_Info action_process.o(i.Action_PowerOn_Init_Process) refers to segment_74hc595d.o(i.__ARM_common_switch8) for __ARM_common_switch8 action_process.o(i.Action_PowerOn_Init_Process) refers to buzzer.o(i.Buzzer_On) for Buzzer_On @@ -336,21 +366,27 @@ Section Cross References action_process.o(i.Action_PowerOn_Init_Process) refers to action_process.o(.bss) for Control_Info action_process.o(i.Action_PowerOn_Process) refers to action_process.o(i.Action_Power_Off_Key_Set) for Action_Power_Off_Key_Set action_process.o(i.Action_PowerOn_Process) refers to gpio_state_led.o(i.Gpio_Led_OutputSet) for Gpio_Led_OutputSet + action_process.o(i.Action_PowerOn_Process) refers to a31g12x_hal_pcu.o(i.HAL_GPIO_SetPin) for HAL_GPIO_SetPin + action_process.o(i.Action_PowerOn_Process) refers to action_process.o(i.Action_Get_SensorData) for Action_Get_SensorData action_process.o(i.Action_PowerOn_Process) refers to eeprom.o(i.EEPROM_Read_SettingValue) for EEPROM_Read_SettingValue + action_process.o(i.Action_PowerOn_Process) refers to printfa.o(i.__0printf) for __2printf action_process.o(i.Action_PowerOn_Process) refers to segment.o(i.Segment_Show_Time) for Segment_Show_Time action_process.o(i.Action_PowerOn_Process) refers to segment.o(i.Segment_Show_SensorData) for Segment_Show_SensorData + action_process.o(i.Action_PowerOn_Process) refers to segment.o(i.Segment_Show_SettingData) for Segment_Show_SettingData + action_process.o(i.Action_PowerOn_Process) refers to a31g12x_hal_pcu.o(i.HAL_GPIO_ClearPin) for HAL_GPIO_ClearPin action_process.o(i.Action_PowerOn_Process) refers to action_process.o(i.Action_Power_On_Key_Set) for Action_Power_On_Key_Set action_process.o(i.Action_PowerOn_Process) refers to segment.o(i.Segment_All_Set_Data) for Segment_All_Set_Data action_process.o(i.Action_PowerOn_Process) refers to eeprom.o(i.EEPROM_Write_SettingValue) for EEPROM_Write_SettingValue + action_process.o(i.Action_PowerOn_Process) refers to action_process.o(i.Action_Get_SensorReadProcess) for Action_Get_SensorReadProcess + action_process.o(i.Action_PowerOn_Process) refers to action_process.o(i.Action_ReturnMainViewCheck) for Action_ReturnMainViewCheck action_process.o(i.Action_PowerOn_Process) refers to action_process.o(.bss) for Control_Info + action_process.o(i.Action_PowerOn_Process) refers to action_process.o(.data) for SaveCheckSec action_process.o(i.Action_Power_Off_Key_Push_Callback) refers to buzzer.o(i.Buzzer_On) for Buzzer_On - action_process.o(i.Action_Power_Off_Key_Push_Callback) refers to printfa.o(i.__0printf) for __2printf action_process.o(i.Action_Power_Off_Key_Push_Callback) refers to action_process.o(.bss) for Control_Info action_process.o(i.Action_Power_Off_Key_Set) refers to gpio_switch.o(i.Gpio_Swtich_Set_PushCount) for Gpio_Swtich_Set_PushCount action_process.o(i.Action_Power_Off_Key_Set) refers to gpio_switch.o(i.Gpio_Swtich_Set_Callback) for Gpio_Swtich_Set_Callback action_process.o(i.Action_Power_Off_Key_Set) refers to action_process.o(i.Action_Power_Off_Key_Push_Callback) for Action_Power_Off_Key_Push_Callback action_process.o(i.Action_Power_On_Key_Push_Callback) refers to buzzer.o(i.Buzzer_On) for Buzzer_On - action_process.o(i.Action_Power_On_Key_Push_Callback) refers to printfa.o(i.__0printf) for __2printf action_process.o(i.Action_Power_On_Key_Push_Callback) refers to action_process.o(.bss) for Control_Info action_process.o(i.Action_Power_On_Key_Set) refers to gpio_switch.o(i.Gpio_Swtich_Set_PushCount) for Gpio_Swtich_Set_PushCount action_process.o(i.Action_Power_On_Key_Set) refers to gpio_switch.o(i.Gpio_Swtich_Set_Callback) for Gpio_Swtich_Set_Callback @@ -358,6 +394,23 @@ Section Cross References action_process.o(i.Action_Process) refers to action_process.o(i.Action_PowerOn_Init_Process) for Action_PowerOn_Init_Process action_process.o(i.Action_Process) refers to action_process.o(i.Action_PowerOn_Process) for Action_PowerOn_Process action_process.o(i.Action_Process) refers to action_process.o(.bss) for Control_Info + action_process.o(i.Action_ReturnMainViewCheck) refers to systick_timer.o(i.millis) for millis + action_process.o(i.Action_ReturnMainViewCheck) refers to gpio_state_led.o(i.Gpio_Led_OutputSet) for Gpio_Led_OutputSet + action_process.o(i.Action_ReturnMainViewCheck) refers to action_process.o(.bss) for Control_Info + action_process.o(i.Action_SaveSensorData) refers to rtc_process.o(i.RTC_Get_Time) for RTC_Get_Time + action_process.o(i.Action_SaveSensorData) refers to idiv.o(.text) for __aeabi_idivmod + action_process.o(i.Action_SaveSensorData) refers to printfa.o(i.__0printf) for __2printf + action_process.o(i.Action_SaveSensorData) refers to save_file.o(i.Save_SensorData_SDCard) for Save_SensorData_SDCard + action_process.o(i.Action_SaveSensorData) refers to action_process.o(.data) for SaveCheckSec + action_process.o(i.Action_SaveSensorData) refers to action_process.o(.bss) for Control_Info + action_process.o(i.Action_Set_Key_Push) refers to buzzer.o(i.Buzzer_On) for Buzzer_On + action_process.o(i.Action_Set_Key_Push) refers to systick_timer.o(i.millis) for millis + action_process.o(i.Action_Set_Key_Push) refers to eeprom.o(i.EEPROM_Write_SettingValue) for EEPROM_Write_SettingValue + action_process.o(i.Action_Set_Key_Push) refers to action_process.o(.bss) for Control_Info + action_process.o(i.Action_Up_Key_Push) refers to buzzer.o(i.Buzzer_On) for Buzzer_On + action_process.o(i.Action_Up_Key_Push) refers to systick_timer.o(i.millis) for millis + action_process.o(i.Action_Up_Key_Push) refers to idiv.o(.text) for __aeabi_idivmod + action_process.o(i.Action_Up_Key_Push) refers to action_process.o(.bss) for Control_Info eeprom.o(i.EEPROM_Read_SettingValue) refers to memcpya.o(.text) for __aeabi_memcpy eeprom.o(i.EEPROM_Read_SettingValue) refers to eeprom.o(.bss) for eeprom_info eeprom.o(i.EEPROM_Write_SettingValue) refers to memseta.o(.text) for __aeabi_memclr @@ -387,6 +440,11 @@ Section Cross References segment.o(i.Segment_Show_SensorData) refers to uidiv.o(.text) for __aeabi_uidivmod segment.o(i.Segment_Show_SensorData) refers to segment.o(.constdata) for SegmentData segment.o(i.Segment_Show_SensorData) refers to segment.o(.bss) for Segment_OutputBuff + segment.o(i.Segment_Show_SettingData) refers to systick_timer.o(i.millis) for millis + segment.o(i.Segment_Show_SettingData) refers to uidiv.o(.text) for __aeabi_uidivmod + segment.o(i.Segment_Show_SettingData) refers to idiv.o(.text) for __aeabi_idivmod + segment.o(i.Segment_Show_SettingData) refers to segment.o(.constdata) for SegmentData + segment.o(i.Segment_Show_SettingData) refers to segment.o(.bss) for Segment_OutputBuff segment.o(i.Segment_Show_Time) refers to systick_timer.o(i.millis) for millis segment.o(i.Segment_Show_Time) refers to uidiv.o(.text) for __aeabi_uidivmod segment.o(i.Segment_Show_Time) refers to rtc_process.o(i.RTC_Get_Time) for RTC_Get_Time @@ -449,6 +507,21 @@ Section Cross References usart11_rs485.o(i.Usart11_Transmit_Process) refers to ring_buffer.o(i.RingBuffer_PopData) for RingBuffer_PopData usart11_rs485.o(i.Usart11_Transmit_Process) refers to a31g12x_hal_pcu.o(i.HAL_GPIO_ClearPin) for HAL_GPIO_ClearPin usart11_rs485.o(i.Usart11_Transmit_Process) refers to usart11_rs485.o(.bss) for RingBuffer_Tx + kcd_hp100.o(i.KCD_HP100_GetState) refers to kcd_hp100.o(.data) for KCD_HP100_State + kcd_hp100.o(i.KCD_HP100_Get_Co2) refers to kcd_hp100.o(.data) for KCD_HP100_State + kcd_hp100.o(i.KCD_HP100_Get_Co2) refers to kcd_hp100.o(.bss) for KCD_HP100_Result + kcd_hp100.o(i.KCD_HP100_Initialization) refers to sw_timer.o(i.SW_Timer_Callback_Register) for SW_Timer_Callback_Register + kcd_hp100.o(i.KCD_HP100_Initialization) refers to kcd_hp100.o(.data) for KCD_HP100_DeviceID + kcd_hp100.o(i.KCD_HP100_Initialization) refers to kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) for KCD_HP_Rx_PacketRecv_Process + kcd_hp100.o(i.KCD_HP100_Tx_Get_MeasurmentData) refers to systick_timer.o(i.millis) for millis + kcd_hp100.o(i.KCD_HP100_Tx_Get_MeasurmentData) refers to kcd_hp100.o(i.KCD_HP_Calc_Checksum) for KCD_HP_Calc_Checksum + kcd_hp100.o(i.KCD_HP100_Tx_Get_MeasurmentData) refers to usart11_rs485.o(i.Usart11_TransmitData) for Usart11_TransmitData + kcd_hp100.o(i.KCD_HP100_Tx_Get_MeasurmentData) refers to kcd_hp100.o(.data) for KCD_HP100_State + kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) refers to usart11_rs485.o(i.Usart11_Get_RecvDataCount) for Usart11_Get_RecvDataCount + kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) refers to usart11_rs485.o(i.Usart11_Get_RecvData) for Usart11_Get_RecvData + kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) refers to systick_timer.o(i.millis) for millis + kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) refers to kcd_hp100.o(.data) for KCD_HP100_RxIndex + kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) refers to kcd_hp100.o(.bss) for KCD_HP100_Result a31g12x_hal_adc.o(i.HAL_ADC_DeInit) refers to a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock2) for HAL_SCU_Peripheral_EnableClock2 a31g12x_hal_adc.o(i.HAL_ADC_Init) refers to a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock2) for HAL_SCU_Peripheral_EnableClock2 a31g12x_hal_crc.o(i.HAL_CRC_ConfigAutoMode) refers to system_a31g12x.o(.data) for SystemCoreClock @@ -1133,7 +1206,7 @@ Removing Unused input sections from the image. Removing a31g12x_systemclock.o(.revsh_text), (4 bytes). Removing main.o(.rev16_text), (4 bytes). Removing main.o(.revsh_text), (4 bytes). - Removing main.o(.data), (1 bytes). + Removing main.o(i.timer_test), (2 bytes). Removing dbg_printf.o(.rev16_text), (4 bytes). Removing dbg_printf.o(.revsh_text), (4 bytes). Removing sw_timer.o(.rev16_text), (4 bytes). @@ -1174,14 +1247,9 @@ Removing Unused input sections from the image. Removing gpio_i2c.o(i.I2C1_Write), (46 bytes). Removing spi10.o(.rev16_text), (4 bytes). Removing spi10.o(.revsh_text), (4 bytes). - Removing spi10.o(i.SPI10_SendReceiveByte), (48 bytes). Removing spi10.o(i.SPI10_SendRecv), (60 bytes). - Removing spi10.o(i.SPI10_Transmit), (60 bytes). Removing save_file.o(.rev16_text), (4 bytes). Removing save_file.o(.revsh_text), (4 bytes). - Removing save_file.o(i.Save_SensorData_SDCard), (4 bytes). - Removing save_file.o(.bss), (1628 bytes). - Removing save_file.o(.data), (18 bytes). Removing driver_ds3231.o(i.ds3231_aging_offset_convert_to_data), (52 bytes). Removing driver_ds3231.o(i.ds3231_alarm_clear), (160 bytes). Removing driver_ds3231.o(i.ds3231_get_32khz_output), (100 bytes). @@ -1220,7 +1288,6 @@ Removing Unused input sections from the image. Removing buzzer.o(.revsh_text), (4 bytes). Removing gpio_sensor.o(.rev16_text), (4 bytes). Removing gpio_sensor.o(.revsh_text), (4 bytes). - Removing gpio_sensor.o(i.Gpio_Sensor_PWR_Initialization), (36 bytes). Removing segment.o(.rev16_text), (4 bytes). Removing segment.o(.revsh_text), (4 bytes). Removing segment.o(i.Segment_Sensor_Error), (44 bytes). @@ -1232,9 +1299,9 @@ Removing Unused input sections from the image. Removing spi13.o(i.SPI13_SendRecv), (60 bytes). Removing usart11_rs485.o(.rev16_text), (4 bytes). Removing usart11_rs485.o(.revsh_text), (4 bytes). - Removing usart11_rs485.o(i.Usart11_Get_RecvData), (20 bytes). - Removing usart11_rs485.o(i.Usart11_Get_RecvDataCount), (16 bytes). Removing usart11_rs485.o(i.Usart11_Transmit), (20 bytes). + Removing kcd_hp100.o(.rev16_text), (4 bytes). + Removing kcd_hp100.o(.revsh_text), (4 bytes). Removing a31g12x_hal_adc.o(.rev16_text), (4 bytes). Removing a31g12x_hal_adc.o(.revsh_text), (4 bytes). Removing a31g12x_hal_adc.o(i.HAL_ADC_ChannelSel), (28 bytes). @@ -1417,70 +1484,22 @@ Removing Unused input sections from the image. Removing system_a31g12x.o(i.SystemCoreClockUpdate), (136 bytes). Removing fatfs.o(.rev16_text), (4 bytes). Removing fatfs.o(.revsh_text), (4 bytes). - Removing fatfs.o(i.MX_FATFS_Init), (28 bytes). - Removing fatfs.o(i.get_fattime), (4 bytes). Removing fatfs.o(.bss), (1116 bytes). - Removing fatfs.o(.data), (5 bytes). Removing user_diskio.o(.rev16_text), (4 bytes). Removing user_diskio.o(.revsh_text), (4 bytes). - Removing user_diskio.o(i.USER_initialize), (12 bytes). - Removing user_diskio.o(i.USER_ioctl), (20 bytes). - Removing user_diskio.o(i.USER_read), (24 bytes). - Removing user_diskio.o(i.USER_status), (12 bytes). - Removing user_diskio.o(i.USER_write), (24 bytes). - Removing user_diskio.o(.data), (24 bytes). Removing user_diskio_spi.o(.rev16_text), (4 bytes). Removing user_diskio_spi.o(.revsh_text), (4 bytes). - Removing user_diskio_spi.o(i.SPI_Timer_On), (28 bytes). - Removing user_diskio_spi.o(i.SPI_Timer_Status), (36 bytes). - Removing user_diskio_spi.o(i.despiselect), (20 bytes). - Removing user_diskio_spi.o(i.rcvr_datablock), (66 bytes). - Removing user_diskio_spi.o(i.rcvr_spi_multi), (26 bytes). - Removing user_diskio_spi.o(i.send_cmd), (156 bytes). - Removing user_diskio_spi.o(i.spiselect), (42 bytes). - Removing user_diskio_spi.o(i.wait_ready), (48 bytes). - Removing user_diskio_spi.o(i.xchg_spi), (16 bytes). - Removing user_diskio_spi.o(i.xmit_datablock), (76 bytes). - Removing user_diskio_spi.o(i.xmit_spi_multi), (16 bytes). - Removing user_diskio_spi.o(.data), (12 bytes). Removing diskio.o(.rev16_text), (4 bytes). Removing diskio.o(.revsh_text), (4 bytes). - Removing diskio.o(i.disk_initialize), (48 bytes). - Removing diskio.o(i.disk_ioctl), (36 bytes). - Removing diskio.o(i.disk_read), (44 bytes). - Removing diskio.o(i.disk_status), (28 bytes). - Removing diskio.o(i.disk_write), (44 bytes). Removing diskio.o(i.get_fattime), (4 bytes). Removing ff.o(.rev16_text), (4 bytes). Removing ff.o(.revsh_text), (4 bytes). - Removing ff.o(i.check_fs), (164 bytes). - Removing ff.o(i.chk_chr), (22 bytes). - Removing ff.o(i.chk_lock), (152 bytes). - Removing ff.o(i.clear_lock), (44 bytes). - Removing ff.o(i.clmt_clust), (70 bytes). - Removing ff.o(i.clust2sect), (40 bytes). - Removing ff.o(i.create_chain), (260 bytes). - Removing ff.o(i.create_name), (296 bytes). - Removing ff.o(i.dec_lock), (76 bytes). - Removing ff.o(i.dir_alloc), (110 bytes). - Removing ff.o(i.dir_find), (114 bytes). - Removing ff.o(i.dir_next), (444 bytes). Removing ff.o(i.dir_read), (142 bytes). - Removing ff.o(i.dir_register), (88 bytes). Removing ff.o(i.dir_remove), (88 bytes). - Removing ff.o(i.dir_sdi), (264 bytes). - Removing ff.o(i.enq_lock), (40 bytes). Removing ff.o(i.f_chmod), (100 bytes). - Removing ff.o(i.f_close), (56 bytes). - Removing ff.o(i.f_closedir), (54 bytes). Removing ff.o(i.f_getfree), (304 bytes). Removing ff.o(i.f_gets), (84 bytes). - Removing ff.o(i.f_lseek), (1104 bytes). - Removing ff.o(i.f_mkdir), (410 bytes). Removing ff.o(i.f_mkfs), (1728 bytes). - Removing ff.o(i.f_mount), (112 bytes). - Removing ff.o(i.f_open), (540 bytes). - Removing ff.o(i.f_opendir), (210 bytes). Removing ff.o(i.f_printf), (672 bytes). Removing ff.o(i.f_putc), (66 bytes). Removing ff.o(i.f_puts), (76 bytes). @@ -1488,49 +1507,18 @@ Removing Unused input sections from the image. Removing ff.o(i.f_readdir), (106 bytes). Removing ff.o(i.f_rename), (338 bytes). Removing ff.o(i.f_stat), (72 bytes). - Removing ff.o(i.f_sync), (256 bytes). Removing ff.o(i.f_truncate), (308 bytes). Removing ff.o(i.f_unlink), (226 bytes). Removing ff.o(i.f_utime), (102 bytes). - Removing ff.o(i.f_write), (776 bytes). - Removing ff.o(i.find_volume), (1144 bytes). - Removing ff.o(i.follow_path), (174 bytes). - Removing ff.o(i.get_fat), (260 bytes). Removing ff.o(i.get_fileinfo), (118 bytes). - Removing ff.o(i.get_ldnumber), (76 bytes). - Removing ff.o(i.inc_lock), (228 bytes). - Removing ff.o(i.ld_clust), (38 bytes). - Removing ff.o(i.mem_cmp), (42 bytes). - Removing ff.o(i.mem_cpy), (26 bytes). - Removing ff.o(i.mem_set), (20 bytes). - Removing ff.o(i.move_window), (68 bytes). - Removing ff.o(i.put_fat), (354 bytes). Removing ff.o(i.putc_bfd), (78 bytes). - Removing ff.o(i.remove_chain), (140 bytes). - Removing ff.o(i.st_clust), (20 bytes). - Removing ff.o(i.sync_fs), (280 bytes). - Removing ff.o(i.sync_window), (116 bytes). - Removing ff.o(i.validate), (96 bytes). - Removing ff.o(.bss), (24 bytes). - Removing ff.o(.constdata), (172 bytes). - Removing ff.o(.data), (6 bytes). Removing ff_gen_drv.o(.rev16_text), (4 bytes). Removing ff_gen_drv.o(.revsh_text), (4 bytes). Removing ff_gen_drv.o(i.FATFS_GetAttachedDriversNbr), (12 bytes). - Removing ff_gen_drv.o(i.FATFS_LinkDriver), (18 bytes). - Removing ff_gen_drv.o(i.FATFS_LinkDriverEx), (84 bytes). - Removing ff_gen_drv.o(i.FATFS_UnLinkDriver), (14 bytes). - Removing ff_gen_drv.o(i.FATFS_UnLinkDriverEx), (68 bytes). - Removing ff_gen_drv.o(.bss), (12 bytes). Removing fmul.o(.text), (122 bytes). Removing fflti.o(.text), (22 bytes). - Removing user_diskio_spi.o(i.USER_SPI_initialize), (352 bytes). - Removing user_diskio_spi.o(i.USER_SPI_status), (20 bytes). - Removing user_diskio_spi.o(i.USER_SPI_read), (160 bytes). - Removing user_diskio_spi.o(i.USER_SPI_write), (200 bytes). - Removing user_diskio_spi.o(i.USER_SPI_ioctl), (576 bytes). -400 unused section(s) (total 34809 bytes) removed from the image. +315 unused section(s) (total 21603 bytes) removed from the image. ============================================================================== @@ -1542,43 +1530,44 @@ Image Symbol Table RESET 0x00000000 Section 176 startup_a31g12x.o(RESET) ../clib/../cmprslib/zerorunl2.c 0x00000000 Number 0 __dczerorl2.o ABSOLUTE - ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE - ../clib/microlib/division.c 0x00000000 Number 0 idiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 idiv.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE - ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE - ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE + ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE + ../clib/microlib/string/strlen.c 0x00000000 Number 0 strlen.o ABSOLUTE ../clib/microlib/string/strncpy.c 0x00000000 Number 0 strncpy.o ABSOLUTE ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE ../clib/microlib/time/localtime.c 0x00000000 Number 0 localtime.o ABSOLUTE @@ -1590,11 +1579,11 @@ Image Symbol Table ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE - ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixi.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 fflti.o ABSOLUTE - ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE ../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE Application\A31G12x_Interrupt.c 0x00000000 Number 0 a31g12x_interrupt.o ABSOLUTE Application\A31G12x_SystemClock.c 0x00000000 Number 0 a31g12x_systemclock.o ABSOLUTE Application\FATFS\App\fatfs.c 0x00000000 Number 0 fatfs.o ABSOLUTE @@ -1619,6 +1608,7 @@ Image Symbol Table Application\\gpio_sensor.c 0x00000000 Number 0 gpio_sensor.o ABSOLUTE Application\\gpio_state_led.c 0x00000000 Number 0 gpio_state_led.o ABSOLUTE Application\\gpio_switch.c 0x00000000 Number 0 gpio_switch.o ABSOLUTE + Application\\kcd_hp100.c 0x00000000 Number 0 kcd_hp100.o ABSOLUTE Application\\main.c 0x00000000 Number 0 main.o ABSOLUTE Application\\ring_buffer.c 0x00000000 Number 0 ring_buffer.o ABSOLUTE Application\\rtc_process.c 0x00000000 Number 0 rtc_process.o ABSOLUTE @@ -1644,6 +1634,7 @@ Image Symbol Table Application\gpio_sensor.c 0x00000000 Number 0 gpio_sensor.o ABSOLUTE Application\gpio_state_led.c 0x00000000 Number 0 gpio_state_led.o ABSOLUTE Application\gpio_switch.c 0x00000000 Number 0 gpio_switch.o ABSOLUTE + Application\kcd_hp100.c 0x00000000 Number 0 kcd_hp100.o ABSOLUTE Application\main.c 0x00000000 Number 0 main.o ABSOLUTE Application\ring_buffer.c 0x00000000 Number 0 ring_buffer.o ABSOLUTE Application\rtc_process.c 0x00000000 Number 0 rtc_process.o ABSOLUTE @@ -1718,241 +1709,380 @@ Image Symbol Table .text 0x00000110 Section 0 idiv.o(.text) .text 0x00000138 Section 0 memcpya.o(.text) .text 0x0000015c Section 0 memseta.o(.text) - .text 0x00000180 Section 0 fdiv.o(.text) - .text 0x000001fc Section 0 ffixi.o(.text) - .text 0x0000022e Section 0 uldiv.o(.text) - .text 0x0000028e Section 0 iusefp.o(.text) - .text 0x0000028e Section 0 fepilogue.o(.text) - .text 0x00000310 Section 0 dadd.o(.text) - .text 0x00000478 Section 0 dmul.o(.text) - .text 0x00000548 Section 0 ddiv.o(.text) - .text 0x00000638 Section 0 dfixul.o(.text) - .text 0x00000678 Section 40 cdrcmple.o(.text) - .text 0x000006a0 Section 36 init.o(.text) - .text 0x000006c4 Section 0 llshl.o(.text) - .text 0x000006e4 Section 0 llushr.o(.text) - .text 0x00000706 Section 0 llsshr.o(.text) - .text 0x0000072c Section 0 depilogue.o(.text) - .text 0x000007ea Section 0 __dczerorl2.o(.text) - i.Action_Down_Key_Push 0x00000840 Section 0 action_process.o(i.Action_Down_Key_Push) - Action_Down_Key_Push 0x00000841 Thumb Code 2 action_process.o(i.Action_Down_Key_Push) - i.Action_Initialization 0x00000844 Section 0 action_process.o(i.Action_Initialization) - i.Action_Mode_Key_Push 0x00000898 Section 0 action_process.o(i.Action_Mode_Key_Push) - Action_Mode_Key_Push 0x00000899 Thumb Code 174 action_process.o(i.Action_Mode_Key_Push) - i.Action_PowerOn_Init_Process 0x0000094c Section 0 action_process.o(i.Action_PowerOn_Init_Process) - Action_PowerOn_Init_Process 0x0000094d Thumb Code 226 action_process.o(i.Action_PowerOn_Init_Process) - i.Action_PowerOn_Process 0x00000a38 Section 0 action_process.o(i.Action_PowerOn_Process) - Action_PowerOn_Process 0x00000a39 Thumb Code 224 action_process.o(i.Action_PowerOn_Process) - i.Action_Power_Off_Key_Push_Callback 0x00000b28 Section 0 action_process.o(i.Action_Power_Off_Key_Push_Callback) - Action_Power_Off_Key_Push_Callback 0x00000b29 Thumb Code 22 action_process.o(i.Action_Power_Off_Key_Push_Callback) - i.Action_Power_Off_Key_Set 0x00000b50 Section 0 action_process.o(i.Action_Power_Off_Key_Set) - Action_Power_Off_Key_Set 0x00000b51 Thumb Code 28 action_process.o(i.Action_Power_Off_Key_Set) - i.Action_Power_On_Key_Push_Callback 0x00000b70 Section 0 action_process.o(i.Action_Power_On_Key_Push_Callback) - Action_Power_On_Key_Push_Callback 0x00000b71 Thumb Code 26 action_process.o(i.Action_Power_On_Key_Push_Callback) - i.Action_Power_On_Key_Set 0x00000b9c Section 0 action_process.o(i.Action_Power_On_Key_Set) - Action_Power_On_Key_Set 0x00000b9d Thumb Code 28 action_process.o(i.Action_Power_On_Key_Set) - i.Action_Process 0x00000bbc Section 0 action_process.o(i.Action_Process) - Action_Process 0x00000bbd Thumb Code 30 action_process.o(i.Action_Process) - i.Action_Set_Key_Push 0x00000be0 Section 0 action_process.o(i.Action_Set_Key_Push) - Action_Set_Key_Push 0x00000be1 Thumb Code 2 action_process.o(i.Action_Set_Key_Push) - i.Action_Up_Key_Push 0x00000be2 Section 0 action_process.o(i.Action_Up_Key_Push) - Action_Up_Key_Push 0x00000be3 Thumb Code 2 action_process.o(i.Action_Up_Key_Push) - i.Buzzer_Initialization 0x00000be4 Section 0 buzzer.o(i.Buzzer_Initialization) - i.Buzzer_On 0x00000c10 Section 0 buzzer.o(i.Buzzer_On) - i.Buzzer_Output_Process 0x00000c34 Section 0 buzzer.o(i.Buzzer_Output_Process) - Buzzer_Output_Process 0x00000c35 Thumb Code 64 buzzer.o(i.Buzzer_Output_Process) - i.Delay_I2C_Delay 0x00000c84 Section 0 gpio_i2c.o(i.Delay_I2C_Delay) - i.Delay_ms 0x00000c94 Section 0 systick_timer.o(i.Delay_ms) - i.EEPROM_Read_SettingValue 0x00000ca8 Section 0 eeprom.o(i.EEPROM_Read_SettingValue) - i.EEPROM_Write_SettingValue 0x00000d40 Section 0 eeprom.o(i.EEPROM_Write_SettingValue) - i.FlashMEM_Clock_Initialization 0x00000dec Section 0 eeprom.o(i.FlashMEM_Clock_Initialization) - i.FlashMem_Do_PageEr 0x00000dfc Section 0 eeprom.o(i.FlashMem_Do_PageEr) - i.FlashMem_Do_PageWt 0x00000e10 Section 0 eeprom.o(i.FlashMem_Do_PageWt) - i.GPIO_I2C2_Initialization 0x00000e28 Section 0 gpio_i2c.o(i.GPIO_I2C2_Initialization) - i.GPIO_I2C2_Read 0x00000e68 Section 0 gpio_i2c.o(i.GPIO_I2C2_Read) - i.GPIO_I2C2_Start 0x00000efc Section 0 gpio_i2c.o(i.GPIO_I2C2_Start) - i.GPIO_I2C2_Stop 0x00000f48 Section 0 gpio_i2c.o(i.GPIO_I2C2_Stop) - i.GPIO_I2C2_Write 0x00000f88 Section 0 gpio_i2c.o(i.GPIO_I2C2_Write) - i.Gpio_Led_OutputSet 0x0000101c Section 0 gpio_state_led.o(i.Gpio_Led_OutputSet) - i.Gpio_StateLed_Initialization 0x00001064 Section 0 gpio_state_led.o(i.Gpio_StateLed_Initialization) - i.Gpio_Switch_Check_Process 0x000010d0 Section 0 gpio_switch.o(i.Gpio_Switch_Check_Process) - Gpio_Switch_Check_Process 0x000010d1 Thumb Code 320 gpio_switch.o(i.Gpio_Switch_Check_Process) - i.Gpio_Switch_Port_Initialization 0x00001214 Section 0 gpio_switch.o(i.Gpio_Switch_Port_Initialization) - i.Gpio_Switch_TestCallback 0x0000128c Section 0 gpio_switch.o(i.Gpio_Switch_TestCallback) - Gpio_Switch_TestCallback 0x0000128d Thumb Code 14 gpio_switch.o(i.Gpio_Switch_TestCallback) - i.Gpio_Swtich_Set_Callback 0x000012ac Section 0 gpio_switch.o(i.Gpio_Swtich_Set_Callback) - i.Gpio_Swtich_Set_PushCount 0x000012d4 Section 0 gpio_switch.o(i.Gpio_Swtich_Set_PushCount) - i.HAL_CRC_Init 0x000012f4 Section 0 a31g12x_hal_crc.o(i.HAL_CRC_Init) - i.HAL_FMC_FlashEntry 0x00001304 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_FlashEntry) - i.HAL_FMC_FlashExit 0x00001364 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_FlashExit) - i.HAL_FMC_FlashFunction 0x0000139c Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_FlashFunction) - i.HAL_FMC_PageErase 0x00001544 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_PageErase) - i.HAL_FMC_PageWrite 0x00001584 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_PageWrite) - i.HAL_GPIO_ClearPin 0x000015c4 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ClearPin) - i.HAL_GPIO_ConfigFunction 0x000015c8 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigFunction) - i.HAL_GPIO_ConfigOutput 0x0000160c Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigOutput) - i.HAL_GPIO_ConfigPullup 0x00001652 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigPullup) - i.HAL_GPIO_ReadPin 0x00001670 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ReadPin) - i.HAL_GPIO_SetDebouncePin 0x00001678 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_SetDebouncePin) - i.HAL_GPIO_SetPin 0x0000168e Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_SetPin) - i.HAL_INT_EInt_MaskDisable 0x00001694 Section 0 a31g12x_hal_intc.o(i.HAL_INT_EInt_MaskDisable) - i.HAL_SCU_ClockMonitoring 0x000016a4 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_ClockMonitoring) - i.HAL_SCU_ClockSource_Enable 0x000016e0 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_ClockSource_Enable) - i.HAL_SCU_Peripheral_ClockConfig 0x00001704 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_ClockConfig) - i.HAL_SCU_Peripheral_EnableClock1 0x00001710 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock1) - i.HAL_SCU_Peripheral_EnableClock2 0x00001730 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock2) - i.HAL_SCU_Peripheral_SetReset2 0x00001750 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_SetReset2) - i.HAL_SCU_SystemClockChange 0x0000176c Section 0 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockChange) - i.HAL_SCU_SystemClockDivider 0x00001780 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockDivider) - i.HAL_TIMER1n_Cmd 0x0000178c Section 0 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Cmd) - i.HAL_TIMER1n_ConfigInterrupt 0x000017b2 Section 0 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_ConfigInterrupt) - i.HAL_TIMER1n_Init 0x000017ec Section 0 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Init) - i.HAL_UART_ConfigInterrupt 0x00001954 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_ConfigInterrupt) - i.HAL_UART_ConfigStructInit 0x000019a0 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_ConfigStructInit) - i.HAL_UART_Init 0x000019c0 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_Init) - i.HAL_UART_Receive 0x00001ac4 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_Receive) - i.HAL_UART_ReceiveByte 0x00001b38 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_ReceiveByte) - i.HAL_UART_Transmit 0x00001b40 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_Transmit) - i.HAL_UART_TransmitByte 0x00001bc0 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_TransmitByte) - i.HAL_USART_CheckBusy 0x00001bd0 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_CheckBusy) - i.HAL_USART_ClearStatus 0x00001be4 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_ClearStatus) - i.HAL_USART_ConfigInterrupt 0x00001c1e Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_ConfigInterrupt) - i.HAL_USART_DataControlConfig 0x00001c6a Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_DataControlConfig) - i.HAL_USART_Enable 0x00001cd4 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Enable) - i.HAL_USART_GetStatus 0x00001cfa Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_GetStatus) - i.HAL_USART_Init 0x00001d04 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Init) - i.HAL_USART_Receive 0x00001df8 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Receive) - i.HAL_USART_ReceiveByte 0x00001e6a Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_ReceiveByte) - i.HAL_USART_SPI_Mode_Config 0x00001e72 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_SPI_Mode_Config) - i.HAL_USART_Transmit 0x00001e9a Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Transmit) - i.HAL_USART_TransmitByte 0x00001f1e Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_TransmitByte) - i.HAL_USART_UART_Mode_Config 0x00001f2e Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_UART_Mode_Config) - i.HardFault_Handler 0x00001f50 Section 0 a31g12x_interrupt.o(i.HardFault_Handler) - i.I2C2_Read 0x00001f54 Section 0 gpio_i2c.o(i.I2C2_Read) - i.I2C2_Write 0x00001f90 Section 0 gpio_i2c.o(i.I2C2_Write) - i.NMI_Handler 0x00001fbe Section 0 a31g12x_interrupt.o(i.NMI_Handler) - i.NVIC_SetPriority 0x00001fc0 Section 0 a31g12x_systemclock.o(i.NVIC_SetPriority) - NVIC_SetPriority 0x00001fc1 Thumb Code 110 a31g12x_systemclock.o(i.NVIC_SetPriority) - i.NVIC_SetPriority 0x00002038 Section 0 uart1.o(i.NVIC_SetPriority) - NVIC_SetPriority 0x00002039 Thumb Code 110 uart1.o(i.NVIC_SetPriority) - i.NVIC_SetPriority 0x000020b0 Section 0 timer12.o(i.NVIC_SetPriority) - NVIC_SetPriority 0x000020b1 Thumb Code 110 timer12.o(i.NVIC_SetPriority) - i.NVIC_SetPriority 0x00002128 Section 0 usart11_rs485.o(i.NVIC_SetPriority) - NVIC_SetPriority 0x00002129 Thumb Code 110 usart11_rs485.o(i.NVIC_SetPriority) - i.PendSV_Handler 0x000021a0 Section 0 a31g12x_interrupt.o(i.PendSV_Handler) - i.RTC_Get_IC_Time_Process 0x000021a4 Section 0 rtc_process.o(i.RTC_Get_IC_Time_Process) - RTC_Get_IC_Time_Process 0x000021a5 Thumb Code 118 rtc_process.o(i.RTC_Get_IC_Time_Process) - i.RTC_Get_Time 0x0000224c Section 0 rtc_process.o(i.RTC_Get_Time) - i.RTC_Process_Initialization 0x00002260 Section 0 rtc_process.o(i.RTC_Process_Initialization) - i.RingBuffer_Dequeue 0x00002278 Section 0 ring_buffer.o(i.RingBuffer_Dequeue) - i.RingBuffer_Enqueue 0x000022b6 Section 0 ring_buffer.o(i.RingBuffer_Enqueue) - i.RingBuffer_GetData 0x000022f6 Section 0 ring_buffer.o(i.RingBuffer_GetData) - i.RingBuffer_Get_DataSize 0x00002304 Section 0 ring_buffer.o(i.RingBuffer_Get_DataSize) - i.RingBuffer_Initialization 0x00002336 Section 0 ring_buffer.o(i.RingBuffer_Initialization) - i.RingBuffer_PopData 0x0000235c Section 0 ring_buffer.o(i.RingBuffer_PopData) - i.RingBuffer_isEmpty 0x00002382 Section 0 ring_buffer.o(i.RingBuffer_isEmpty) - i.RingBuffer_isFull 0x00002394 Section 0 ring_buffer.o(i.RingBuffer_isFull) - i.SPI10_Initialization 0x000023b8 Section 0 spi10.o(i.SPI10_Initialization) - i.SPI13_Initialization 0x000024ac Section 0 spi13.o(i.SPI13_Initialization) - i.SPI13_Transmit 0x00002568 Section 0 spi13.o(i.SPI13_Transmit) - i.SVC_Handler 0x000025a4 Section 0 a31g12x_interrupt.o(i.SVC_Handler) - i.SW_Timer_Callback_Process 0x000025a8 Section 0 sw_timer.o(i.SW_Timer_Callback_Process) - i.SW_Timer_Callback_Register 0x00002628 Section 0 sw_timer.o(i.SW_Timer_Callback_Register) - i.Segemet_Output_Process 0x0000267c Section 0 segment_74hc595d.o(i.Segemet_Output_Process) - Segemet_Output_Process 0x0000267d Thumb Code 192 segment_74hc595d.o(i.Segemet_Output_Process) - i.Segment_All_Set_Data 0x0000274c Section 0 segment.o(i.Segment_All_Set_Data) - i.Segment_Initialization 0x0000276c Section 0 segment_74hc595d.o(i.Segment_Initialization) - i.Segment_Output_Data 0x000027b4 Section 0 segment_74hc595d.o(i.Segment_Output_Data) - Segment_Output_Data 0x000027b5 Thumb Code 16 segment_74hc595d.o(i.Segment_Output_Data) - i.Segment_Show_SensorData 0x000027c4 Section 0 segment.o(i.Segment_Show_SensorData) - i.Segment_Show_Time 0x0000291c Section 0 segment.o(i.Segment_Show_Time) - i.Segment_Show_Version 0x0000299c Section 0 segment.o(i.Segment_Show_Version) - i.State_Led_Off 0x00002a1c Section 0 gpio_state_led.o(i.State_Led_Off) - State_Led_Off 0x00002a1d Thumb Code 34 gpio_state_led.o(i.State_Led_Off) - i.State_Led_On 0x00002a44 Section 0 gpio_state_led.o(i.State_Led_On) - State_Led_On 0x00002a45 Thumb Code 34 gpio_state_led.o(i.State_Led_On) - i.State_Led_Output_Process 0x00002a6c Section 0 gpio_state_led.o(i.State_Led_Output_Process) - State_Led_Output_Process 0x00002a6d Thumb Code 128 gpio_state_led.o(i.State_Led_Output_Process) - i.SysTick_Handler 0x00002af0 Section 0 systick_timer.o(i.SysTick_Handler) - i.SystemInit 0x00002b18 Section 0 system_a31g12x.o(i.SystemInit) - i.System_Clock_Initialization 0x00002b3c Section 0 a31g12x_systemclock.o(i.System_Clock_Initialization) - i.Systick_Initialization 0x00002b8c Section 0 a31g12x_systemclock.o(i.Systick_Initialization) - i.TIMER12_Handler 0x00002be4 Section 0 timer12.o(i.TIMER12_Handler) - i.Timer12_Initialization 0x00002c18 Section 0 timer12.o(i.Timer12_Initialization) - i.Timer12_Set_Match_Interrupt_Callback 0x00002c74 Section 0 timer12.o(i.Timer12_Set_Match_Interrupt_Callback) - i.UART1_Handler 0x00002c80 Section 0 uart1.o(i.UART1_Handler) - i.USART11_Handler 0x00002ca8 Section 0 usart11_rs485.o(i.USART11_Handler) - i.Uart1_Get_RecvData 0x00002cc8 Section 0 uart1.o(i.Uart1_Get_RecvData) - i.Uart1_Get_RecvDataCount 0x00002cdc Section 0 uart1.o(i.Uart1_Get_RecvDataCount) - i.Uart1_Initialization 0x00002cec Section 0 uart1.o(i.Uart1_Initialization) - i.Uart1_Receive_Handler 0x00002dac Section 0 uart1.o(i.Uart1_Receive_Handler) - Uart1_Receive_Handler 0x00002dad Thumb Code 42 uart1.o(i.Uart1_Receive_Handler) - i.Uart1_Transmit 0x00002de0 Section 0 uart1.o(i.Uart1_Transmit) - i.Uart1_Transmit_Process 0x00002df4 Section 0 uart1.o(i.Uart1_Transmit_Process) - Uart1_Transmit_Process 0x00002df5 Thumb Code 46 uart1.o(i.Uart1_Transmit_Process) - i.Uart_Packet_Initialization 0x00002e2c Section 0 uart_packet.o(i.Uart_Packet_Initialization) - i.Uart_Packet_Make_Process 0x00002e48 Section 0 uart_packet.o(i.Uart_Packet_Make_Process) - Uart_Packet_Make_Process 0x00002e49 Thumb Code 308 uart_packet.o(i.Uart_Packet_Make_Process) - i.Uart_Packet_Process 0x00002f8c Section 0 uart_packet.o(i.Uart_Packet_Process) - Uart_Packet_Process 0x00002f8d Thumb Code 150 uart_packet.o(i.Uart_Packet_Process) - i.Usart11_Initialization 0x00003024 Section 0 usart11_rs485.o(i.Usart11_Initialization) - i.Usart11_Receive_Handler 0x00003108 Section 0 usart11_rs485.o(i.Usart11_Receive_Handler) - Usart11_Receive_Handler 0x00003109 Thumb Code 42 usart11_rs485.o(i.Usart11_Receive_Handler) - i.Usart11_TransmitData 0x0000313c Section 0 usart11_rs485.o(i.Usart11_TransmitData) - i.Usart11_Transmit_Process 0x0000315c Section 0 usart11_rs485.o(i.Usart11_Transmit_Process) - Usart11_Transmit_Process 0x0000315d Thumb Code 112 usart11_rs485.o(i.Usart11_Transmit_Process) - i.__0printf 0x000031d8 Section 0 printfa.o(i.__0printf) - i.__ARM_clz 0x000031f8 Section 0 depilogue.o(i.__ARM_clz) - i.__ARM_common_switch8 0x00003226 Section 0 segment_74hc595d.o(i.__ARM_common_switch8) - i.__scatterload_copy 0x00003242 Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x00003250 Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x00003252 Section 14 handlers.o(i.__scatterload_zeroinit) - i._fp_digits 0x00003260 Section 0 printfa.o(i._fp_digits) - _fp_digits 0x00003261 Thumb Code 344 printfa.o(i._fp_digits) - i._printf_core 0x000033d4 Section 0 printfa.o(i._printf_core) - _printf_core 0x000033d5 Thumb Code 1760 printfa.o(i._printf_core) - i._printf_post_padding 0x00003ac4 Section 0 printfa.o(i._printf_post_padding) - _printf_post_padding 0x00003ac5 Thumb Code 32 printfa.o(i._printf_post_padding) - i._printf_pre_padding 0x00003ae4 Section 0 printfa.o(i._printf_pre_padding) - _printf_pre_padding 0x00003ae5 Thumb Code 44 printfa.o(i._printf_pre_padding) - i.a_ds3231_bcd2hex 0x00003b10 Section 0 driver_ds3231.o(i.a_ds3231_bcd2hex) - a_ds3231_bcd2hex 0x00003b11 Thumb Code 20 driver_ds3231.o(i.a_ds3231_bcd2hex) - i.a_ds3231_hex2bcd 0x00003b24 Section 0 driver_ds3231.o(i.a_ds3231_hex2bcd) - a_ds3231_hex2bcd 0x00003b25 Thumb Code 34 driver_ds3231.o(i.a_ds3231_hex2bcd) - i.a_ds3231_iic_multiple_read 0x00003b46 Section 0 driver_ds3231.o(i.a_ds3231_iic_multiple_read) - a_ds3231_iic_multiple_read 0x00003b47 Thumb Code 36 driver_ds3231.o(i.a_ds3231_iic_multiple_read) - i.a_ds3231_iic_write 0x00003b6a Section 0 driver_ds3231.o(i.a_ds3231_iic_write) - a_ds3231_iic_write 0x00003b6b Thumb Code 30 driver_ds3231.o(i.a_ds3231_iic_write) - i.ds3231_aging_offset_convert_to_register 0x00003b88 Section 0 driver_ds3231.o(i.ds3231_aging_offset_convert_to_register) - i.ds3231_basic_get_time 0x00003bbc Section 0 driver_ds3231_basic.o(i.ds3231_basic_get_time) - i.ds3231_basic_init 0x00003bd8 Section 0 driver_ds3231_basic.o(i.ds3231_basic_init) - i.ds3231_basic_set_time 0x00003e6c Section 0 driver_ds3231_basic.o(i.ds3231_basic_set_time) - i.ds3231_deinit 0x00003e88 Section 0 driver_ds3231.o(i.ds3231_deinit) - i.ds3231_get_time 0x00003ed4 Section 0 driver_ds3231.o(i.ds3231_get_time) - i.ds3231_init 0x00003fe0 Section 0 driver_ds3231.o(i.ds3231_init) - i.ds3231_interface_debug_print 0x000041cc Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_debug_print) - i.ds3231_interface_delay_ms 0x000041ce Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_delay_ms) - i.ds3231_interface_iic_deinit 0x000041da Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_deinit) - i.ds3231_interface_iic_init 0x000041de Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_init) - i.ds3231_interface_iic_read 0x000041e2 Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_read) - i.ds3231_interface_iic_write 0x00004204 Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_write) - i.ds3231_interface_receive_callback 0x00004234 Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_receive_callback) - i.ds3231_set_32khz_output 0x00004288 Section 0 driver_ds3231.o(i.ds3231_set_32khz_output) - i.ds3231_set_aging_offset 0x00004334 Section 0 driver_ds3231.o(i.ds3231_set_aging_offset) - i.ds3231_set_alarm_interrupt 0x0000438c Section 0 driver_ds3231.o(i.ds3231_set_alarm_interrupt) - i.ds3231_set_oscillator 0x0000443c Section 0 driver_ds3231.o(i.ds3231_set_oscillator) - i.ds3231_set_pin 0x000044f0 Section 0 driver_ds3231.o(i.ds3231_set_pin) - i.ds3231_set_square_wave 0x0000459c Section 0 driver_ds3231.o(i.ds3231_set_square_wave) - i.ds3231_set_time 0x00004648 Section 0 driver_ds3231.o(i.ds3231_set_time) - i.fputc 0x00004b5c Section 0 dbg_printf.o(i.fputc) - i.main 0x00004b6c Section 0 main.o(i.main) - i.millis 0x00004bec Section 0 systick_timer.o(i.millis) - i.timer_test 0x00004bf8 Section 0 main.o(i.timer_test) - i.uart_set_divisors 0x00004c14 Section 0 a31g12x_hal_uartn.o(i.uart_set_divisors) - uart_set_divisors 0x00004c15 Thumb Code 56 a31g12x_hal_uartn.o(i.uart_set_divisors) - i.usart_set_divisors 0x00004c50 Section 0 a31g12x_hal_usart1n.o(i.usart_set_divisors) - usart_set_divisors 0x00004c51 Thumb Code 58 a31g12x_hal_usart1n.o(i.usart_set_divisors) - .constdata 0x00004c90 Section 38 segment.o(.constdata) + .text 0x00000180 Section 0 strlen.o(.text) + .text 0x0000018e Section 0 fdiv.o(.text) + .text 0x0000020a Section 0 ffixi.o(.text) + .text 0x0000023c Section 0 uldiv.o(.text) + .text 0x0000029c Section 0 iusefp.o(.text) + .text 0x0000029c Section 0 fepilogue.o(.text) + .text 0x00000320 Section 0 dadd.o(.text) + .text 0x00000488 Section 0 dmul.o(.text) + .text 0x00000558 Section 0 ddiv.o(.text) + .text 0x00000648 Section 0 dfixul.o(.text) + .text 0x00000688 Section 40 cdrcmple.o(.text) + .text 0x000006b0 Section 36 init.o(.text) + .text 0x000006d4 Section 0 llshl.o(.text) + .text 0x000006f4 Section 0 llushr.o(.text) + .text 0x00000716 Section 0 llsshr.o(.text) + .text 0x0000073c Section 0 depilogue.o(.text) + .text 0x000007fa Section 0 __dczerorl2.o(.text) + i.Action_Down_Key_Push 0x00000850 Section 0 action_process.o(i.Action_Down_Key_Push) + Action_Down_Key_Push 0x00000851 Thumb Code 252 action_process.o(i.Action_Down_Key_Push) + i.Action_Get_SensorData 0x00000954 Section 0 action_process.o(i.Action_Get_SensorData) + Action_Get_SensorData 0x00000955 Thumb Code 16 action_process.o(i.Action_Get_SensorData) + i.Action_Get_SensorReadProcess 0x00000968 Section 0 action_process.o(i.Action_Get_SensorReadProcess) + Action_Get_SensorReadProcess 0x00000969 Thumb Code 194 action_process.o(i.Action_Get_SensorReadProcess) + i.Action_Initialization 0x00000a68 Section 0 action_process.o(i.Action_Initialization) + i.Action_Mode_Key_Push 0x00000abc Section 0 action_process.o(i.Action_Mode_Key_Push) + Action_Mode_Key_Push 0x00000abd Thumb Code 252 action_process.o(i.Action_Mode_Key_Push) + i.Action_PowerOn_Init_Process 0x00000bbc Section 0 action_process.o(i.Action_PowerOn_Init_Process) + Action_PowerOn_Init_Process 0x00000bbd Thumb Code 230 action_process.o(i.Action_PowerOn_Init_Process) + i.Action_PowerOn_Process 0x00000cac Section 0 action_process.o(i.Action_PowerOn_Process) + Action_PowerOn_Process 0x00000cad Thumb Code 322 action_process.o(i.Action_PowerOn_Process) + i.Action_Power_Off_Key_Push_Callback 0x00000e3c Section 0 action_process.o(i.Action_Power_Off_Key_Push_Callback) + Action_Power_Off_Key_Push_Callback 0x00000e3d Thumb Code 16 action_process.o(i.Action_Power_Off_Key_Push_Callback) + i.Action_Power_Off_Key_Set 0x00000e50 Section 0 action_process.o(i.Action_Power_Off_Key_Set) + Action_Power_Off_Key_Set 0x00000e51 Thumb Code 28 action_process.o(i.Action_Power_Off_Key_Set) + i.Action_Power_On_Key_Push_Callback 0x00000e70 Section 0 action_process.o(i.Action_Power_On_Key_Push_Callback) + Action_Power_On_Key_Push_Callback 0x00000e71 Thumb Code 20 action_process.o(i.Action_Power_On_Key_Push_Callback) + i.Action_Power_On_Key_Set 0x00000e88 Section 0 action_process.o(i.Action_Power_On_Key_Set) + Action_Power_On_Key_Set 0x00000e89 Thumb Code 28 action_process.o(i.Action_Power_On_Key_Set) + i.Action_Process 0x00000ea8 Section 0 action_process.o(i.Action_Process) + Action_Process 0x00000ea9 Thumb Code 30 action_process.o(i.Action_Process) + i.Action_ReturnMainViewCheck 0x00000ecc Section 0 action_process.o(i.Action_ReturnMainViewCheck) + Action_ReturnMainViewCheck 0x00000ecd Thumb Code 76 action_process.o(i.Action_ReturnMainViewCheck) + i.Action_SaveSensorData 0x00000f20 Section 0 action_process.o(i.Action_SaveSensorData) + Action_SaveSensorData 0x00000f21 Thumb Code 236 action_process.o(i.Action_SaveSensorData) + i.Action_Set_Key_Push 0x00001054 Section 0 action_process.o(i.Action_Set_Key_Push) + Action_Set_Key_Push 0x00001055 Thumb Code 174 action_process.o(i.Action_Set_Key_Push) + i.Action_Up_Key_Push 0x00001108 Section 0 action_process.o(i.Action_Up_Key_Push) + Action_Up_Key_Push 0x00001109 Thumb Code 240 action_process.o(i.Action_Up_Key_Push) + i.Buzzer_Initialization 0x00001200 Section 0 buzzer.o(i.Buzzer_Initialization) + i.Buzzer_On 0x0000122c Section 0 buzzer.o(i.Buzzer_On) + i.Buzzer_Output_Process 0x00001250 Section 0 buzzer.o(i.Buzzer_Output_Process) + Buzzer_Output_Process 0x00001251 Thumb Code 64 buzzer.o(i.Buzzer_Output_Process) + i.Delay_I2C_Delay 0x000012a0 Section 0 gpio_i2c.o(i.Delay_I2C_Delay) + i.Delay_ms 0x000012b0 Section 0 systick_timer.o(i.Delay_ms) + i.EEPROM_Read_SettingValue 0x000012c4 Section 0 eeprom.o(i.EEPROM_Read_SettingValue) + i.EEPROM_Write_SettingValue 0x00001368 Section 0 eeprom.o(i.EEPROM_Write_SettingValue) + i.FATFS_LinkDriver 0x00001428 Section 0 ff_gen_drv.o(i.FATFS_LinkDriver) + i.FATFS_LinkDriverEx 0x0000143c Section 0 ff_gen_drv.o(i.FATFS_LinkDriverEx) + i.FATFS_UnLinkDriver 0x00001490 Section 0 ff_gen_drv.o(i.FATFS_UnLinkDriver) + i.FATFS_UnLinkDriverEx 0x000014a0 Section 0 ff_gen_drv.o(i.FATFS_UnLinkDriverEx) + i.FlashMEM_Clock_Initialization 0x000014e4 Section 0 eeprom.o(i.FlashMEM_Clock_Initialization) + i.FlashMem_Do_PageEr 0x000014f4 Section 0 eeprom.o(i.FlashMem_Do_PageEr) + i.FlashMem_Do_PageWt 0x00001508 Section 0 eeprom.o(i.FlashMem_Do_PageWt) + i.GPIO_I2C2_Initialization 0x00001520 Section 0 gpio_i2c.o(i.GPIO_I2C2_Initialization) + i.GPIO_I2C2_Read 0x00001560 Section 0 gpio_i2c.o(i.GPIO_I2C2_Read) + i.GPIO_I2C2_Start 0x000015f4 Section 0 gpio_i2c.o(i.GPIO_I2C2_Start) + i.GPIO_I2C2_Stop 0x00001640 Section 0 gpio_i2c.o(i.GPIO_I2C2_Stop) + i.GPIO_I2C2_Write 0x00001680 Section 0 gpio_i2c.o(i.GPIO_I2C2_Write) + i.Gpio_Led_OutputSet 0x00001714 Section 0 gpio_state_led.o(i.Gpio_Led_OutputSet) + i.Gpio_Sensor_PWR_Initialization 0x0000175c Section 0 gpio_sensor.o(i.Gpio_Sensor_PWR_Initialization) + i.Gpio_StateLed_Initialization 0x00001780 Section 0 gpio_state_led.o(i.Gpio_StateLed_Initialization) + i.Gpio_Switch_Check_Process 0x000017ec Section 0 gpio_switch.o(i.Gpio_Switch_Check_Process) + Gpio_Switch_Check_Process 0x000017ed Thumb Code 320 gpio_switch.o(i.Gpio_Switch_Check_Process) + i.Gpio_Switch_Port_Initialization 0x00001930 Section 0 gpio_switch.o(i.Gpio_Switch_Port_Initialization) + i.Gpio_Switch_TestCallback 0x000019a8 Section 0 gpio_switch.o(i.Gpio_Switch_TestCallback) + Gpio_Switch_TestCallback 0x000019a9 Thumb Code 14 gpio_switch.o(i.Gpio_Switch_TestCallback) + i.Gpio_Swtich_Set_Callback 0x000019c8 Section 0 gpio_switch.o(i.Gpio_Swtich_Set_Callback) + i.Gpio_Swtich_Set_PushCount 0x000019f0 Section 0 gpio_switch.o(i.Gpio_Swtich_Set_PushCount) + i.HAL_CRC_Init 0x00001a10 Section 0 a31g12x_hal_crc.o(i.HAL_CRC_Init) + i.HAL_FMC_FlashEntry 0x00001a20 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_FlashEntry) + i.HAL_FMC_FlashExit 0x00001a80 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_FlashExit) + i.HAL_FMC_FlashFunction 0x00001ab8 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_FlashFunction) + i.HAL_FMC_PageErase 0x00001c60 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_PageErase) + i.HAL_FMC_PageWrite 0x00001ca0 Section 0 a31g12x_hal_fmc.o(i.HAL_FMC_PageWrite) + i.HAL_GPIO_ClearPin 0x00001ce0 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ClearPin) + i.HAL_GPIO_ConfigFunction 0x00001ce4 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigFunction) + i.HAL_GPIO_ConfigOutput 0x00001d28 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigOutput) + i.HAL_GPIO_ConfigPullup 0x00001d6e Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigPullup) + i.HAL_GPIO_ReadPin 0x00001d8c Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_ReadPin) + i.HAL_GPIO_SetDebouncePin 0x00001d94 Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_SetDebouncePin) + i.HAL_GPIO_SetPin 0x00001daa Section 0 a31g12x_hal_pcu.o(i.HAL_GPIO_SetPin) + i.HAL_INT_EInt_MaskDisable 0x00001db0 Section 0 a31g12x_hal_intc.o(i.HAL_INT_EInt_MaskDisable) + i.HAL_SCU_ClockMonitoring 0x00001dc0 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_ClockMonitoring) + i.HAL_SCU_ClockSource_Enable 0x00001dfc Section 0 a31g12x_hal_scu.o(i.HAL_SCU_ClockSource_Enable) + i.HAL_SCU_Peripheral_ClockConfig 0x00001e20 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_ClockConfig) + i.HAL_SCU_Peripheral_EnableClock1 0x00001e2c Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock1) + i.HAL_SCU_Peripheral_EnableClock2 0x00001e4c Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock2) + i.HAL_SCU_Peripheral_SetReset2 0x00001e6c Section 0 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_SetReset2) + i.HAL_SCU_SystemClockChange 0x00001e88 Section 0 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockChange) + i.HAL_SCU_SystemClockDivider 0x00001e9c Section 0 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockDivider) + i.HAL_TIMER1n_Cmd 0x00001ea8 Section 0 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Cmd) + i.HAL_TIMER1n_ConfigInterrupt 0x00001ece Section 0 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_ConfigInterrupt) + i.HAL_TIMER1n_Init 0x00001f08 Section 0 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Init) + i.HAL_UART_ConfigInterrupt 0x00002070 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_ConfigInterrupt) + i.HAL_UART_ConfigStructInit 0x000020bc Section 0 a31g12x_hal_uartn.o(i.HAL_UART_ConfigStructInit) + i.HAL_UART_Init 0x000020dc Section 0 a31g12x_hal_uartn.o(i.HAL_UART_Init) + i.HAL_UART_Receive 0x000021e0 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_Receive) + i.HAL_UART_ReceiveByte 0x00002254 Section 0 a31g12x_hal_uartn.o(i.HAL_UART_ReceiveByte) + i.HAL_UART_Transmit 0x0000225c Section 0 a31g12x_hal_uartn.o(i.HAL_UART_Transmit) + i.HAL_UART_TransmitByte 0x000022dc Section 0 a31g12x_hal_uartn.o(i.HAL_UART_TransmitByte) + i.HAL_USART_CheckBusy 0x000022ec Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_CheckBusy) + i.HAL_USART_ClearStatus 0x00002300 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_ClearStatus) + i.HAL_USART_ConfigInterrupt 0x0000233a Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_ConfigInterrupt) + i.HAL_USART_DataControlConfig 0x00002386 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_DataControlConfig) + i.HAL_USART_Enable 0x000023f0 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Enable) + i.HAL_USART_GetStatus 0x00002416 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_GetStatus) + i.HAL_USART_Init 0x00002420 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Init) + i.HAL_USART_Receive 0x00002514 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Receive) + i.HAL_USART_ReceiveByte 0x00002586 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_ReceiveByte) + i.HAL_USART_SPI_Mode_Config 0x0000258e Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_SPI_Mode_Config) + i.HAL_USART_Transmit 0x000025b6 Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_Transmit) + i.HAL_USART_TransmitByte 0x0000263a Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_TransmitByte) + i.HAL_USART_UART_Mode_Config 0x0000264a Section 0 a31g12x_hal_usart1n.o(i.HAL_USART_UART_Mode_Config) + i.HardFault_Handler 0x0000266c Section 0 a31g12x_interrupt.o(i.HardFault_Handler) + i.I2C2_Read 0x00002670 Section 0 gpio_i2c.o(i.I2C2_Read) + i.I2C2_Write 0x000026ac Section 0 gpio_i2c.o(i.I2C2_Write) + i.KCD_HP100_GetState 0x000026dc Section 0 kcd_hp100.o(i.KCD_HP100_GetState) + i.KCD_HP100_Get_Co2 0x000026e8 Section 0 kcd_hp100.o(i.KCD_HP100_Get_Co2) + i.KCD_HP100_Initialization 0x00002710 Section 0 kcd_hp100.o(i.KCD_HP100_Initialization) + i.KCD_HP100_Tx_Get_MeasurmentData 0x00002738 Section 0 kcd_hp100.o(i.KCD_HP100_Tx_Get_MeasurmentData) + i.KCD_HP_Calc_Checksum 0x000027b4 Section 0 kcd_hp100.o(i.KCD_HP_Calc_Checksum) + KCD_HP_Calc_Checksum 0x000027b5 Thumb Code 28 kcd_hp100.o(i.KCD_HP_Calc_Checksum) + i.KCD_HP_Rx_PacketRecv_Process 0x000027d0 Section 0 kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) + KCD_HP_Rx_PacketRecv_Process 0x000027d1 Thumb Code 290 kcd_hp100.o(i.KCD_HP_Rx_PacketRecv_Process) + i.MX_FATFS_Init 0x0000290c Section 0 fatfs.o(i.MX_FATFS_Init) + i.NMI_Handler 0x00002928 Section 0 a31g12x_interrupt.o(i.NMI_Handler) + i.NVIC_SetPriority 0x0000292c Section 0 a31g12x_systemclock.o(i.NVIC_SetPriority) + NVIC_SetPriority 0x0000292d Thumb Code 110 a31g12x_systemclock.o(i.NVIC_SetPriority) + i.NVIC_SetPriority 0x000029a4 Section 0 uart1.o(i.NVIC_SetPriority) + NVIC_SetPriority 0x000029a5 Thumb Code 110 uart1.o(i.NVIC_SetPriority) + i.NVIC_SetPriority 0x00002a1c Section 0 timer12.o(i.NVIC_SetPriority) + NVIC_SetPriority 0x00002a1d Thumb Code 110 timer12.o(i.NVIC_SetPriority) + i.NVIC_SetPriority 0x00002a94 Section 0 usart11_rs485.o(i.NVIC_SetPriority) + NVIC_SetPriority 0x00002a95 Thumb Code 110 usart11_rs485.o(i.NVIC_SetPriority) + i.PendSV_Handler 0x00002b0c Section 0 a31g12x_interrupt.o(i.PendSV_Handler) + i.RTC_Get_IC_Time_Process 0x00002b10 Section 0 rtc_process.o(i.RTC_Get_IC_Time_Process) + RTC_Get_IC_Time_Process 0x00002b11 Thumb Code 84 rtc_process.o(i.RTC_Get_IC_Time_Process) + i.RTC_Get_Time 0x00002b68 Section 0 rtc_process.o(i.RTC_Get_Time) + i.RTC_Process_Initialization 0x00002b7c Section 0 rtc_process.o(i.RTC_Process_Initialization) + i.RingBuffer_Dequeue 0x00002b98 Section 0 ring_buffer.o(i.RingBuffer_Dequeue) + i.RingBuffer_Enqueue 0x00002bd6 Section 0 ring_buffer.o(i.RingBuffer_Enqueue) + i.RingBuffer_GetData 0x00002c16 Section 0 ring_buffer.o(i.RingBuffer_GetData) + i.RingBuffer_Get_DataSize 0x00002c24 Section 0 ring_buffer.o(i.RingBuffer_Get_DataSize) + i.RingBuffer_Initialization 0x00002c56 Section 0 ring_buffer.o(i.RingBuffer_Initialization) + i.RingBuffer_PopData 0x00002c7c Section 0 ring_buffer.o(i.RingBuffer_PopData) + i.RingBuffer_isEmpty 0x00002ca2 Section 0 ring_buffer.o(i.RingBuffer_isEmpty) + i.RingBuffer_isFull 0x00002cb4 Section 0 ring_buffer.o(i.RingBuffer_isFull) + i.SPI10_Initialization 0x00002cd8 Section 0 spi10.o(i.SPI10_Initialization) + i.SPI10_SendReceiveByte 0x00002dcc Section 0 spi10.o(i.SPI10_SendReceiveByte) + i.SPI10_Transmit 0x00002dfc Section 0 spi10.o(i.SPI10_Transmit) + i.SPI13_Initialization 0x00002e38 Section 0 spi13.o(i.SPI13_Initialization) + i.SPI13_Transmit 0x00002ef4 Section 0 spi13.o(i.SPI13_Transmit) + i.SPI_Timer_On 0x00002f30 Section 0 user_diskio_spi.o(i.SPI_Timer_On) + i.SPI_Timer_Status 0x00002f4c Section 0 user_diskio_spi.o(i.SPI_Timer_Status) + i.SVC_Handler 0x00002f70 Section 0 a31g12x_interrupt.o(i.SVC_Handler) + i.SW_Timer_Callback_Process 0x00002f74 Section 0 sw_timer.o(i.SW_Timer_Callback_Process) + i.SW_Timer_Callback_Register 0x00002ff4 Section 0 sw_timer.o(i.SW_Timer_Callback_Register) + i.Save_SensorData_SDCard 0x00003048 Section 0 save_file.o(i.Save_SensorData_SDCard) + i.Segemet_Output_Process 0x00003270 Section 0 segment_74hc595d.o(i.Segemet_Output_Process) + Segemet_Output_Process 0x00003271 Thumb Code 192 segment_74hc595d.o(i.Segemet_Output_Process) + i.Segment_All_Set_Data 0x00003340 Section 0 segment.o(i.Segment_All_Set_Data) + i.Segment_Initialization 0x00003360 Section 0 segment_74hc595d.o(i.Segment_Initialization) + i.Segment_Output_Data 0x000033a8 Section 0 segment_74hc595d.o(i.Segment_Output_Data) + Segment_Output_Data 0x000033a9 Thumb Code 16 segment_74hc595d.o(i.Segment_Output_Data) + i.Segment_Show_SensorData 0x000033b8 Section 0 segment.o(i.Segment_Show_SensorData) + i.Segment_Show_SettingData 0x00003564 Section 0 segment.o(i.Segment_Show_SettingData) + i.Segment_Show_Time 0x00003684 Section 0 segment.o(i.Segment_Show_Time) + i.Segment_Show_Version 0x00003704 Section 0 segment.o(i.Segment_Show_Version) + i.State_Led_Off 0x00003784 Section 0 gpio_state_led.o(i.State_Led_Off) + State_Led_Off 0x00003785 Thumb Code 34 gpio_state_led.o(i.State_Led_Off) + i.State_Led_On 0x000037ac Section 0 gpio_state_led.o(i.State_Led_On) + State_Led_On 0x000037ad Thumb Code 34 gpio_state_led.o(i.State_Led_On) + i.State_Led_Output_Process 0x000037d4 Section 0 gpio_state_led.o(i.State_Led_Output_Process) + State_Led_Output_Process 0x000037d5 Thumb Code 128 gpio_state_led.o(i.State_Led_Output_Process) + i.SysTick_Handler 0x00003858 Section 0 systick_timer.o(i.SysTick_Handler) + i.SystemInit 0x00003880 Section 0 system_a31g12x.o(i.SystemInit) + i.System_Clock_Initialization 0x000038a4 Section 0 a31g12x_systemclock.o(i.System_Clock_Initialization) + i.Systick_Initialization 0x000038f4 Section 0 a31g12x_systemclock.o(i.Systick_Initialization) + i.TIMER12_Handler 0x0000394c Section 0 timer12.o(i.TIMER12_Handler) + i.Timer12_Initialization 0x00003980 Section 0 timer12.o(i.Timer12_Initialization) + i.Timer12_Set_Match_Interrupt_Callback 0x000039dc Section 0 timer12.o(i.Timer12_Set_Match_Interrupt_Callback) + i.UART1_Handler 0x000039e8 Section 0 uart1.o(i.UART1_Handler) + i.USART11_Handler 0x00003a10 Section 0 usart11_rs485.o(i.USART11_Handler) + i.USER_SPI_initialize 0x00003a30 Section 0 user_diskio_spi.o(i.USER_SPI_initialize) + i.USER_SPI_ioctl 0x00003b90 Section 0 user_diskio_spi.o(i.USER_SPI_ioctl) + i.USER_SPI_read 0x00003dd0 Section 0 user_diskio_spi.o(i.USER_SPI_read) + i.USER_SPI_status 0x00003e70 Section 0 user_diskio_spi.o(i.USER_SPI_status) + i.USER_SPI_write 0x00003e84 Section 0 user_diskio_spi.o(i.USER_SPI_write) + i.USER_initialize 0x00003f4c Section 0 user_diskio.o(i.USER_initialize) + i.USER_ioctl 0x00003f58 Section 0 user_diskio.o(i.USER_ioctl) + i.USER_read 0x00003f6c Section 0 user_diskio.o(i.USER_read) + i.USER_status 0x00003f84 Section 0 user_diskio.o(i.USER_status) + i.USER_write 0x00003f90 Section 0 user_diskio.o(i.USER_write) + i.Uart1_Get_RecvData 0x00003fa8 Section 0 uart1.o(i.Uart1_Get_RecvData) + i.Uart1_Get_RecvDataCount 0x00003fbc Section 0 uart1.o(i.Uart1_Get_RecvDataCount) + i.Uart1_Initialization 0x00003fcc Section 0 uart1.o(i.Uart1_Initialization) + i.Uart1_Receive_Handler 0x0000408c Section 0 uart1.o(i.Uart1_Receive_Handler) + Uart1_Receive_Handler 0x0000408d Thumb Code 42 uart1.o(i.Uart1_Receive_Handler) + i.Uart1_Transmit 0x000040c0 Section 0 uart1.o(i.Uart1_Transmit) + i.Uart1_Transmit_Process 0x000040d4 Section 0 uart1.o(i.Uart1_Transmit_Process) + Uart1_Transmit_Process 0x000040d5 Thumb Code 46 uart1.o(i.Uart1_Transmit_Process) + i.Uart_Packet_Initialization 0x0000410c Section 0 uart_packet.o(i.Uart_Packet_Initialization) + i.Uart_Packet_Make_Process 0x00004128 Section 0 uart_packet.o(i.Uart_Packet_Make_Process) + Uart_Packet_Make_Process 0x00004129 Thumb Code 308 uart_packet.o(i.Uart_Packet_Make_Process) + i.Uart_Packet_Process 0x0000426c Section 0 uart_packet.o(i.Uart_Packet_Process) + Uart_Packet_Process 0x0000426d Thumb Code 150 uart_packet.o(i.Uart_Packet_Process) + i.Usart11_Get_RecvData 0x00004304 Section 0 usart11_rs485.o(i.Usart11_Get_RecvData) + i.Usart11_Get_RecvDataCount 0x00004318 Section 0 usart11_rs485.o(i.Usart11_Get_RecvDataCount) + i.Usart11_Initialization 0x00004328 Section 0 usart11_rs485.o(i.Usart11_Initialization) + i.Usart11_Receive_Handler 0x0000440c Section 0 usart11_rs485.o(i.Usart11_Receive_Handler) + Usart11_Receive_Handler 0x0000440d Thumb Code 42 usart11_rs485.o(i.Usart11_Receive_Handler) + i.Usart11_TransmitData 0x00004440 Section 0 usart11_rs485.o(i.Usart11_TransmitData) + i.Usart11_Transmit_Process 0x00004460 Section 0 usart11_rs485.o(i.Usart11_Transmit_Process) + Usart11_Transmit_Process 0x00004461 Thumb Code 112 usart11_rs485.o(i.Usart11_Transmit_Process) + i.__0printf 0x000044dc Section 0 printfa.o(i.__0printf) + i.__0sprintf 0x000044fc Section 0 printfa.o(i.__0sprintf) + i.__ARM_clz 0x00004524 Section 0 depilogue.o(i.__ARM_clz) + i.__ARM_common_switch8 0x00004552 Section 0 segment_74hc595d.o(i.__ARM_common_switch8) + i.__scatterload_copy 0x0000456e Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x0000457c Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x0000457e Section 14 handlers.o(i.__scatterload_zeroinit) + i._fp_digits 0x0000458c Section 0 printfa.o(i._fp_digits) + _fp_digits 0x0000458d Thumb Code 344 printfa.o(i._fp_digits) + i._printf_core 0x00004700 Section 0 printfa.o(i._printf_core) + _printf_core 0x00004701 Thumb Code 1760 printfa.o(i._printf_core) + i._printf_post_padding 0x00004df0 Section 0 printfa.o(i._printf_post_padding) + _printf_post_padding 0x00004df1 Thumb Code 32 printfa.o(i._printf_post_padding) + i._printf_pre_padding 0x00004e10 Section 0 printfa.o(i._printf_pre_padding) + _printf_pre_padding 0x00004e11 Thumb Code 44 printfa.o(i._printf_pre_padding) + i._sputc 0x00004e3c Section 0 printfa.o(i._sputc) + _sputc 0x00004e3d Thumb Code 10 printfa.o(i._sputc) + i.a_ds3231_bcd2hex 0x00004e46 Section 0 driver_ds3231.o(i.a_ds3231_bcd2hex) + a_ds3231_bcd2hex 0x00004e47 Thumb Code 20 driver_ds3231.o(i.a_ds3231_bcd2hex) + i.a_ds3231_hex2bcd 0x00004e5a Section 0 driver_ds3231.o(i.a_ds3231_hex2bcd) + a_ds3231_hex2bcd 0x00004e5b Thumb Code 34 driver_ds3231.o(i.a_ds3231_hex2bcd) + i.a_ds3231_iic_multiple_read 0x00004e7c Section 0 driver_ds3231.o(i.a_ds3231_iic_multiple_read) + a_ds3231_iic_multiple_read 0x00004e7d Thumb Code 36 driver_ds3231.o(i.a_ds3231_iic_multiple_read) + i.a_ds3231_iic_write 0x00004ea0 Section 0 driver_ds3231.o(i.a_ds3231_iic_write) + a_ds3231_iic_write 0x00004ea1 Thumb Code 30 driver_ds3231.o(i.a_ds3231_iic_write) + i.check_fs 0x00004ec0 Section 0 ff.o(i.check_fs) + check_fs 0x00004ec1 Thumb Code 150 ff.o(i.check_fs) + i.chk_chr 0x00004f64 Section 0 ff.o(i.chk_chr) + chk_chr 0x00004f65 Thumb Code 22 ff.o(i.chk_chr) + i.chk_lock 0x00004f7c Section 0 ff.o(i.chk_lock) + chk_lock 0x00004f7d Thumb Code 142 ff.o(i.chk_lock) + i.clear_lock 0x00005014 Section 0 ff.o(i.clear_lock) + clear_lock 0x00005015 Thumb Code 38 ff.o(i.clear_lock) + i.clmt_clust 0x00005040 Section 0 ff.o(i.clmt_clust) + clmt_clust 0x00005041 Thumb Code 70 ff.o(i.clmt_clust) + i.clust2sect 0x00005088 Section 0 ff.o(i.clust2sect) + i.create_chain 0x000050b0 Section 0 ff.o(i.create_chain) + create_chain 0x000050b1 Thumb Code 250 ff.o(i.create_chain) + i.create_name 0x000051b4 Section 0 ff.o(i.create_name) + create_name 0x000051b5 Thumb Code 276 ff.o(i.create_name) + i.dec_lock 0x000052dc Section 0 ff.o(i.dec_lock) + dec_lock 0x000052dd Thumb Code 72 ff.o(i.dec_lock) + i.despiselect 0x00005328 Section 0 user_diskio_spi.o(i.despiselect) + despiselect 0x00005329 Thumb Code 20 user_diskio_spi.o(i.despiselect) + i.dir_alloc 0x0000533c Section 0 ff.o(i.dir_alloc) + dir_alloc 0x0000533d Thumb Code 110 ff.o(i.dir_alloc) + i.dir_find 0x000053aa Section 0 ff.o(i.dir_find) + dir_find 0x000053ab Thumb Code 114 ff.o(i.dir_find) + i.dir_next 0x0000541c Section 0 ff.o(i.dir_next) + dir_next 0x0000541d Thumb Code 438 ff.o(i.dir_next) + i.dir_register 0x000055d8 Section 0 ff.o(i.dir_register) + dir_register 0x000055d9 Thumb Code 88 ff.o(i.dir_register) + i.dir_sdi 0x00005630 Section 0 ff.o(i.dir_sdi) + dir_sdi 0x00005631 Thumb Code 258 ff.o(i.dir_sdi) + i.disk_initialize 0x00005738 Section 0 diskio.o(i.disk_initialize) + i.disk_ioctl 0x00005768 Section 0 diskio.o(i.disk_ioctl) + i.disk_read 0x0000578c Section 0 diskio.o(i.disk_read) + i.disk_status 0x000057b8 Section 0 diskio.o(i.disk_status) + i.disk_write 0x000057d4 Section 0 diskio.o(i.disk_write) + i.ds3231_aging_offset_convert_to_register 0x00005800 Section 0 driver_ds3231.o(i.ds3231_aging_offset_convert_to_register) + i.ds3231_basic_get_time 0x00005834 Section 0 driver_ds3231_basic.o(i.ds3231_basic_get_time) + i.ds3231_basic_init 0x00005850 Section 0 driver_ds3231_basic.o(i.ds3231_basic_init) + i.ds3231_basic_set_time 0x00005ae4 Section 0 driver_ds3231_basic.o(i.ds3231_basic_set_time) + i.ds3231_deinit 0x00005b00 Section 0 driver_ds3231.o(i.ds3231_deinit) + i.ds3231_get_time 0x00005b4c Section 0 driver_ds3231.o(i.ds3231_get_time) + i.ds3231_init 0x00005c58 Section 0 driver_ds3231.o(i.ds3231_init) + i.ds3231_interface_debug_print 0x00005e44 Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_debug_print) + i.ds3231_interface_delay_ms 0x00005e46 Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_delay_ms) + i.ds3231_interface_iic_deinit 0x00005e52 Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_deinit) + i.ds3231_interface_iic_init 0x00005e56 Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_init) + i.ds3231_interface_iic_read 0x00005e5a Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_read) + i.ds3231_interface_iic_write 0x00005e7c Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_iic_write) + i.ds3231_interface_receive_callback 0x00005eac Section 0 driver_ds3231_interface_template.o(i.ds3231_interface_receive_callback) + i.ds3231_set_32khz_output 0x00005f00 Section 0 driver_ds3231.o(i.ds3231_set_32khz_output) + i.ds3231_set_aging_offset 0x00005fac Section 0 driver_ds3231.o(i.ds3231_set_aging_offset) + i.ds3231_set_alarm_interrupt 0x00006004 Section 0 driver_ds3231.o(i.ds3231_set_alarm_interrupt) + i.ds3231_set_oscillator 0x000060b4 Section 0 driver_ds3231.o(i.ds3231_set_oscillator) + i.ds3231_set_pin 0x00006168 Section 0 driver_ds3231.o(i.ds3231_set_pin) + i.ds3231_set_square_wave 0x00006214 Section 0 driver_ds3231.o(i.ds3231_set_square_wave) + i.ds3231_set_time 0x000062c0 Section 0 driver_ds3231.o(i.ds3231_set_time) + i.enq_lock 0x000067d4 Section 0 ff.o(i.enq_lock) + enq_lock 0x000067d5 Thumb Code 34 ff.o(i.enq_lock) + i.f_close 0x000067fc Section 0 ff.o(i.f_close) + i.f_closedir 0x00006834 Section 0 ff.o(i.f_closedir) + i.f_lseek 0x0000686c Section 0 ff.o(i.f_lseek) + i.f_mkdir 0x00006cbc Section 0 ff.o(i.f_mkdir) + i.f_mount 0x00006e58 Section 0 ff.o(i.f_mount) + i.f_open 0x00006ec8 Section 0 ff.o(i.f_open) + i.f_opendir 0x000070e4 Section 0 ff.o(i.f_opendir) + i.f_sync 0x000071b8 Section 0 ff.o(i.f_sync) + i.f_write 0x000072b8 Section 0 ff.o(i.f_write) + i.find_volume 0x000075c0 Section 0 ff.o(i.find_volume) + find_volume 0x000075c1 Thumb Code 1134 ff.o(i.find_volume) + i.follow_path 0x00007a38 Section 0 ff.o(i.follow_path) + follow_path 0x00007a39 Thumb Code 174 ff.o(i.follow_path) + i.fputc 0x00007ae6 Section 0 dbg_printf.o(i.fputc) + i.get_fat 0x00007af6 Section 0 ff.o(i.get_fat) + i.get_fattime 0x00007bfa Section 0 fatfs.o(i.get_fattime) + i.get_ldnumber 0x00007bfe Section 0 ff.o(i.get_ldnumber) + get_ldnumber 0x00007bff Thumb Code 76 ff.o(i.get_ldnumber) + i.inc_lock 0x00007c4c Section 0 ff.o(i.inc_lock) + inc_lock 0x00007c4d Thumb Code 220 ff.o(i.inc_lock) + i.ld_clust 0x00007d30 Section 0 ff.o(i.ld_clust) + ld_clust 0x00007d31 Thumb Code 38 ff.o(i.ld_clust) + i.main 0x00007d58 Section 0 main.o(i.main) + i.mem_cmp 0x00007dd0 Section 0 ff.o(i.mem_cmp) + mem_cmp 0x00007dd1 Thumb Code 42 ff.o(i.mem_cmp) + i.mem_cpy 0x00007dfa Section 0 ff.o(i.mem_cpy) + mem_cpy 0x00007dfb Thumb Code 26 ff.o(i.mem_cpy) + i.mem_set 0x00007e14 Section 0 ff.o(i.mem_set) + mem_set 0x00007e15 Thumb Code 20 ff.o(i.mem_set) + i.millis 0x00007e28 Section 0 systick_timer.o(i.millis) + i.move_window 0x00007e34 Section 0 ff.o(i.move_window) + move_window 0x00007e35 Thumb Code 62 ff.o(i.move_window) + i.put_fat 0x00007e78 Section 0 ff.o(i.put_fat) + i.rcvr_datablock 0x00007fda Section 0 user_diskio_spi.o(i.rcvr_datablock) + rcvr_datablock 0x00007fdb Thumb Code 66 user_diskio_spi.o(i.rcvr_datablock) + i.rcvr_spi_multi 0x0000801c Section 0 user_diskio_spi.o(i.rcvr_spi_multi) + rcvr_spi_multi 0x0000801d Thumb Code 26 user_diskio_spi.o(i.rcvr_spi_multi) + i.remove_chain 0x00008038 Section 0 ff.o(i.remove_chain) + remove_chain 0x00008039 Thumb Code 136 ff.o(i.remove_chain) + i.send_cmd 0x000080c4 Section 0 user_diskio_spi.o(i.send_cmd) + send_cmd 0x000080c5 Thumb Code 156 user_diskio_spi.o(i.send_cmd) + i.spiselect 0x00008160 Section 0 user_diskio_spi.o(i.spiselect) + spiselect 0x00008161 Thumb Code 42 user_diskio_spi.o(i.spiselect) + i.st_clust 0x0000818a Section 0 ff.o(i.st_clust) + st_clust 0x0000818b Thumb Code 20 ff.o(i.st_clust) + i.sync_fs 0x000081a0 Section 0 ff.o(i.sync_fs) + sync_fs 0x000081a1 Thumb Code 276 ff.o(i.sync_fs) + i.sync_window 0x000082b8 Section 0 ff.o(i.sync_window) + sync_window 0x000082b9 Thumb Code 110 ff.o(i.sync_window) + i.uart_set_divisors 0x0000832c Section 0 a31g12x_hal_uartn.o(i.uart_set_divisors) + uart_set_divisors 0x0000832d Thumb Code 56 a31g12x_hal_uartn.o(i.uart_set_divisors) + i.usart_set_divisors 0x00008368 Section 0 a31g12x_hal_usart1n.o(i.usart_set_divisors) + usart_set_divisors 0x00008369 Thumb Code 58 a31g12x_hal_usart1n.o(i.usart_set_divisors) + i.validate 0x000083a8 Section 0 ff.o(i.validate) + validate 0x000083a9 Thumb Code 96 ff.o(i.validate) + i.wait_ready 0x00008408 Section 0 user_diskio_spi.o(i.wait_ready) + wait_ready 0x00008409 Thumb Code 48 user_diskio_spi.o(i.wait_ready) + i.xchg_spi 0x00008438 Section 0 user_diskio_spi.o(i.xchg_spi) + xchg_spi 0x00008439 Thumb Code 16 user_diskio_spi.o(i.xchg_spi) + i.xmit_datablock 0x00008448 Section 0 user_diskio_spi.o(i.xmit_datablock) + xmit_datablock 0x00008449 Thumb Code 76 user_diskio_spi.o(i.xmit_datablock) + i.xmit_spi_multi 0x00008494 Section 0 user_diskio_spi.o(i.xmit_spi_multi) + xmit_spi_multi 0x00008495 Thumb Code 16 user_diskio_spi.o(i.xmit_spi_multi) + .constdata 0x000084a4 Section 38 segment.o(.constdata) + .constdata 0x000084ca Section 172 ff.o(.constdata) + ExCvt 0x000084ca Data 128 ff.o(.constdata) + vst 0x0000854a Data 22 ff.o(.constdata) + cst 0x00008560 Data 22 ff.o(.constdata) .ARM.__AT_0x1FFFF200 0x1ffff200 Section 68 option_a31g12x.o(.ARM.__AT_0x1FFFF200) .ARM.__AT_0x1FFFF400 0x1ffff400 Section 128 option_a31g12x.o(.ARM.__AT_0x1FFFF400) .ARM.__AT_0x1FFFF600 0x1ffff600 Section 128 option_a31g12x.o(.ARM.__AT_0x1FFFF600) @@ -1971,44 +2101,77 @@ Image Symbol Table temp 0x20000133 Data 1 segment_74hc595d.o(.data) .data 0x20000134 Section 4 timer12.o(.data) Timer12_Match_Callback 0x20000134 Data 4 timer12.o(.data) - .data 0x20000138 Section 8 rtc_process.o(.data) - rtc_Time 0x20000138 Data 8 rtc_process.o(.data) - .data 0x20000140 Section 12 buzzer.o(.data) - isBuzzerOn 0x20000140 Data 1 buzzer.o(.data) - BuzzerStartTick 0x20000144 Data 4 buzzer.o(.data) - BuzzerOnTimeCount 0x20000148 Data 4 buzzer.o(.data) - .data 0x2000014c Section 3 uart_packet.o(.data) - Pack_Index 0x2000014c Data 1 uart_packet.o(.data) - Pack_CheckSum 0x2000014d Data 1 uart_packet.o(.data) - Pack_DataLen 0x2000014e Data 1 uart_packet.o(.data) - .data 0x20000150 Section 16 a31g12x_hal_fmc.o(.data) - .data 0x20000160 Section 12 a31g12x_hal_uartn.o(.data) - UARTn_BaseClock 0x20000160 Data 4 a31g12x_hal_uartn.o(.data) - .data 0x2000016c Section 4 a31g12x_hal_usart1n.o(.data) - .data 0x20000170 Section 28 system_a31g12x.o(.data) - .data 0x2000018c Section 4 stdout.o(.data) - .bss 0x20000190 Section 160 sw_timer.o(.bss) - SW_Timer_Info 0x20000190 Data 160 sw_timer.o(.bss) - .bss 0x20000230 Section 340 uart1.o(.bss) - Tx_Buffer 0x20000230 Data 200 uart1.o(.bss) - Rx_Buffer 0x200002f8 Data 100 uart1.o(.bss) - RingBuffer_Tx 0x2000035c Data 20 uart1.o(.bss) - RingBuffer_Rx 0x20000370 Data 20 uart1.o(.bss) - .bss 0x20000384 Section 32 driver_ds3231_basic.o(.bss) - gs_handle 0x20000384 Data 32 driver_ds3231_basic.o(.bss) - .bss 0x200003a4 Section 20 action_process.o(.bss) - Control_Info 0x200003a4 Data 20 action_process.o(.bss) - .bss 0x200003b8 Section 130 eeprom.o(.bss) - eeprom_info 0x200003b8 Data 130 eeprom.o(.bss) - .bss 0x2000043a Section 10 segment.o(.bss) - .bss 0x20000444 Section 100 uart_packet.o(.bss) - Pack_Buff 0x20000444 Data 100 uart_packet.o(.bss) - .bss 0x200004a8 Section 240 usart11_rs485.o(.bss) - Tx_Buffer 0x200004a8 Data 100 usart11_rs485.o(.bss) - Rx_Buffer 0x2000050c Data 100 usart11_rs485.o(.bss) - RingBuffer_Tx 0x20000570 Data 20 usart11_rs485.o(.bss) - RingBuffer_Rx 0x20000584 Data 20 usart11_rs485.o(.bss) - STACK 0x20000598 Section 1280 startup_a31g12x.o(STACK) + .data 0x20000138 Section 18 save_file.o(.data) + SaveStep 0x20000138 Data 1 save_file.o(.data) + SaveFileTickCount 0x2000013c Data 4 save_file.o(.data) + SaveMin 0x20000140 Data 1 save_file.o(.data) + fres 0x20000141 Data 1 save_file.o(.data) + isGuidePrint 0x20000148 Data 1 save_file.o(.data) + isPowerOn 0x20000149 Data 1 save_file.o(.data) + .data 0x2000014a Section 8 rtc_process.o(.data) + rtc_Time 0x2000014a Data 8 rtc_process.o(.data) + .data 0x20000152 Section 4 action_process.o(.data) + .data 0x20000158 Section 12 buzzer.o(.data) + isBuzzerOn 0x20000158 Data 1 buzzer.o(.data) + BuzzerStartTick 0x2000015c Data 4 buzzer.o(.data) + BuzzerOnTimeCount 0x20000160 Data 4 buzzer.o(.data) + .data 0x20000164 Section 3 uart_packet.o(.data) + Pack_Index 0x20000164 Data 1 uart_packet.o(.data) + Pack_CheckSum 0x20000165 Data 1 uart_packet.o(.data) + Pack_DataLen 0x20000166 Data 1 uart_packet.o(.data) + .data 0x20000168 Section 9 kcd_hp100.o(.data) + KCD_HP100_DeviceID 0x20000168 Data 1 kcd_hp100.o(.data) + KCD_HP100_TxCommand 0x20000169 Data 1 kcd_hp100.o(.data) + KCD_HP100_RxIndex 0x2000016a Data 1 kcd_hp100.o(.data) + KCD_HP100_CheckSum 0x2000016b Data 1 kcd_hp100.o(.data) + KCD_HP100_TimeoutCount 0x2000016c Data 4 kcd_hp100.o(.data) + KCD_HP100_State 0x20000170 Data 1 kcd_hp100.o(.data) + .data 0x20000174 Section 16 a31g12x_hal_fmc.o(.data) + .data 0x20000184 Section 12 a31g12x_hal_uartn.o(.data) + UARTn_BaseClock 0x20000184 Data 4 a31g12x_hal_uartn.o(.data) + .data 0x20000190 Section 4 a31g12x_hal_usart1n.o(.data) + .data 0x20000194 Section 28 system_a31g12x.o(.data) + .data 0x200001b0 Section 5 fatfs.o(.data) + .data 0x200001b8 Section 24 user_diskio.o(.data) + Stat 0x200001b8 Data 1 user_diskio.o(.data) + .data 0x200001d0 Section 12 user_diskio_spi.o(.data) + Stat 0x200001d0 Data 1 user_diskio_spi.o(.data) + CardType 0x200001d1 Data 1 user_diskio_spi.o(.data) + .data 0x200001dc Section 6 ff.o(.data) + FatFs 0x200001dc Data 4 ff.o(.data) + Fsid 0x200001e0 Data 2 ff.o(.data) + .data 0x200001e4 Section 4 stdout.o(.data) + .bss 0x200001e8 Section 160 sw_timer.o(.bss) + SW_Timer_Info 0x200001e8 Data 160 sw_timer.o(.bss) + .bss 0x20000288 Section 340 uart1.o(.bss) + Tx_Buffer 0x20000288 Data 200 uart1.o(.bss) + Rx_Buffer 0x20000350 Data 100 uart1.o(.bss) + RingBuffer_Tx 0x200003b4 Data 20 uart1.o(.bss) + RingBuffer_Rx 0x200003c8 Data 20 uart1.o(.bss) + .bss 0x200003dc Section 2172 save_file.o(.bss) + FatFs 0x200003dc Data 560 save_file.o(.bss) + fil 0x2000060c Data 556 save_file.o(.bss) + dir 0x20000838 Data 544 save_file.o(.bss) + .bss 0x20000c58 Section 32 driver_ds3231_basic.o(.bss) + gs_handle 0x20000c58 Data 32 driver_ds3231_basic.o(.bss) + .bss 0x20000c78 Section 232 action_process.o(.bss) + Control_Info 0x20000d40 Data 32 action_process.o(.bss) + .bss 0x20000d60 Section 128 eeprom.o(.bss) + eeprom_info 0x20000d60 Data 128 eeprom.o(.bss) + .bss 0x20000de0 Section 10 segment.o(.bss) + .bss 0x20000dea Section 100 uart_packet.o(.bss) + Pack_Buff 0x20000dea Data 100 uart_packet.o(.bss) + .bss 0x20000e50 Section 240 usart11_rs485.o(.bss) + Tx_Buffer 0x20000e50 Data 100 usart11_rs485.o(.bss) + Rx_Buffer 0x20000eb4 Data 100 usart11_rs485.o(.bss) + RingBuffer_Tx 0x20000f18 Data 20 usart11_rs485.o(.bss) + RingBuffer_Rx 0x20000f2c Data 20 usart11_rs485.o(.bss) + .bss 0x20000f40 Section 26 kcd_hp100.o(.bss) + KCD_HP100_Result 0x20000f40 Data 26 kcd_hp100.o(.bss) + .bss 0x20000f5c Section 24 ff.o(.bss) + Files 0x20000f5c Data 24 ff.o(.bss) + .bss 0x20000f74 Section 12 ff_gen_drv.o(.bss) + STACK 0x20000f80 Section 1280 startup_a31g12x.o(STACK) Global Symbols @@ -2115,193 +2278,255 @@ Image Symbol Table __aeabi_memclr4 0x0000016b Thumb Code 0 memseta.o(.text) __aeabi_memclr8 0x0000016b Thumb Code 0 memseta.o(.text) _memset$wrapper 0x0000016f Thumb Code 18 memseta.o(.text) - __aeabi_fdiv 0x00000181 Thumb Code 124 fdiv.o(.text) - __aeabi_f2iz 0x000001fd Thumb Code 50 ffixi.o(.text) - __aeabi_uldivmod 0x0000022f Thumb Code 96 uldiv.o(.text) - __I$use$fp 0x0000028f Thumb Code 0 iusefp.o(.text) - _float_round 0x0000028f Thumb Code 16 fepilogue.o(.text) - _float_epilogue 0x0000029f Thumb Code 114 fepilogue.o(.text) - __aeabi_dadd 0x00000311 Thumb Code 330 dadd.o(.text) - __aeabi_dsub 0x0000045b Thumb Code 12 dadd.o(.text) - __aeabi_drsub 0x00000467 Thumb Code 12 dadd.o(.text) - __aeabi_dmul 0x00000479 Thumb Code 202 dmul.o(.text) - __aeabi_ddiv 0x00000549 Thumb Code 234 ddiv.o(.text) - __aeabi_d2ulz 0x00000639 Thumb Code 54 dfixul.o(.text) - __aeabi_cdrcmple 0x00000679 Thumb Code 38 cdrcmple.o(.text) - __scatterload 0x000006a1 Thumb Code 28 init.o(.text) - __scatterload_rt2 0x000006a1 Thumb Code 0 init.o(.text) - __aeabi_llsl 0x000006c5 Thumb Code 32 llshl.o(.text) - _ll_shift_l 0x000006c5 Thumb Code 0 llshl.o(.text) - __aeabi_llsr 0x000006e5 Thumb Code 34 llushr.o(.text) - _ll_ushift_r 0x000006e5 Thumb Code 0 llushr.o(.text) - __aeabi_lasr 0x00000707 Thumb Code 38 llsshr.o(.text) - _ll_sshift_r 0x00000707 Thumb Code 0 llsshr.o(.text) - _double_round 0x0000072d Thumb Code 26 depilogue.o(.text) - _double_epilogue 0x00000747 Thumb Code 164 depilogue.o(.text) - __decompress 0x000007eb Thumb Code 0 __dczerorl2.o(.text) - __decompress1 0x000007eb Thumb Code 86 __dczerorl2.o(.text) - Action_Initialization 0x00000845 Thumb Code 58 action_process.o(i.Action_Initialization) - Buzzer_Initialization 0x00000be5 Thumb Code 34 buzzer.o(i.Buzzer_Initialization) - Buzzer_On 0x00000c11 Thumb Code 24 buzzer.o(i.Buzzer_On) - Delay_I2C_Delay 0x00000c85 Thumb Code 14 gpio_i2c.o(i.Delay_I2C_Delay) - Delay_ms 0x00000c95 Thumb Code 16 systick_timer.o(i.Delay_ms) - EEPROM_Read_SettingValue 0x00000ca9 Thumb Code 136 eeprom.o(i.EEPROM_Read_SettingValue) - EEPROM_Write_SettingValue 0x00000d41 Thumb Code 154 eeprom.o(i.EEPROM_Write_SettingValue) - FlashMEM_Clock_Initialization 0x00000ded Thumb Code 16 eeprom.o(i.FlashMEM_Clock_Initialization) - FlashMem_Do_PageEr 0x00000dfd Thumb Code 16 eeprom.o(i.FlashMem_Do_PageEr) - FlashMem_Do_PageWt 0x00000e11 Thumb Code 20 eeprom.o(i.FlashMem_Do_PageWt) - GPIO_I2C2_Initialization 0x00000e29 Thumb Code 60 gpio_i2c.o(i.GPIO_I2C2_Initialization) - GPIO_I2C2_Read 0x00000e69 Thumb Code 142 gpio_i2c.o(i.GPIO_I2C2_Read) - GPIO_I2C2_Start 0x00000efd Thumb Code 70 gpio_i2c.o(i.GPIO_I2C2_Start) - GPIO_I2C2_Stop 0x00000f49 Thumb Code 58 gpio_i2c.o(i.GPIO_I2C2_Stop) - GPIO_I2C2_Write 0x00000f89 Thumb Code 142 gpio_i2c.o(i.GPIO_I2C2_Write) - Gpio_Led_OutputSet 0x0000101d Thumb Code 66 gpio_state_led.o(i.Gpio_Led_OutputSet) - Gpio_StateLed_Initialization 0x00001065 Thumb Code 92 gpio_state_led.o(i.Gpio_StateLed_Initialization) - Gpio_Switch_Port_Initialization 0x00001215 Thumb Code 106 gpio_switch.o(i.Gpio_Switch_Port_Initialization) - Gpio_Swtich_Set_Callback 0x000012ad Thumb Code 34 gpio_switch.o(i.Gpio_Swtich_Set_Callback) - Gpio_Swtich_Set_PushCount 0x000012d5 Thumb Code 26 gpio_switch.o(i.Gpio_Swtich_Set_PushCount) - HAL_CRC_Init 0x000012f5 Thumb Code 14 a31g12x_hal_crc.o(i.HAL_CRC_Init) - HAL_FMC_FlashEntry 0x00001305 Thumb Code 62 a31g12x_hal_fmc.o(i.HAL_FMC_FlashEntry) - HAL_FMC_FlashExit 0x00001365 Thumb Code 36 a31g12x_hal_fmc.o(i.HAL_FMC_FlashExit) - HAL_FMC_FlashFunction 0x0000139d Thumb Code 338 a31g12x_hal_fmc.o(i.HAL_FMC_FlashFunction) - HAL_FMC_PageErase 0x00001545 Thumb Code 50 a31g12x_hal_fmc.o(i.HAL_FMC_PageErase) - HAL_FMC_PageWrite 0x00001585 Thumb Code 52 a31g12x_hal_fmc.o(i.HAL_FMC_PageWrite) - HAL_GPIO_ClearPin 0x000015c5 Thumb Code 4 a31g12x_hal_pcu.o(i.HAL_GPIO_ClearPin) - HAL_GPIO_ConfigFunction 0x000015c9 Thumb Code 68 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigFunction) - HAL_GPIO_ConfigOutput 0x0000160d Thumb Code 70 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigOutput) - HAL_GPIO_ConfigPullup 0x00001653 Thumb Code 30 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigPullup) - HAL_GPIO_ReadPin 0x00001671 Thumb Code 8 a31g12x_hal_pcu.o(i.HAL_GPIO_ReadPin) - HAL_GPIO_SetDebouncePin 0x00001679 Thumb Code 22 a31g12x_hal_pcu.o(i.HAL_GPIO_SetDebouncePin) - HAL_GPIO_SetPin 0x0000168f Thumb Code 4 a31g12x_hal_pcu.o(i.HAL_GPIO_SetPin) - HAL_INT_EInt_MaskDisable 0x00001695 Thumb Code 12 a31g12x_hal_intc.o(i.HAL_INT_EInt_MaskDisable) - HAL_SCU_ClockMonitoring 0x000016a5 Thumb Code 50 a31g12x_hal_scu.o(i.HAL_SCU_ClockMonitoring) - HAL_SCU_ClockSource_Enable 0x000016e1 Thumb Code 22 a31g12x_hal_scu.o(i.HAL_SCU_ClockSource_Enable) - HAL_SCU_Peripheral_ClockConfig 0x00001705 Thumb Code 8 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_ClockConfig) - HAL_SCU_Peripheral_EnableClock1 0x00001711 Thumb Code 28 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock1) - HAL_SCU_Peripheral_EnableClock2 0x00001731 Thumb Code 28 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock2) - HAL_SCU_Peripheral_SetReset2 0x00001751 Thumb Code 24 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_SetReset2) - HAL_SCU_SystemClockChange 0x0000176d Thumb Code 10 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockChange) - HAL_SCU_SystemClockDivider 0x00001781 Thumb Code 8 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockDivider) - HAL_TIMER1n_Cmd 0x0000178d Thumb Code 38 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Cmd) - HAL_TIMER1n_ConfigInterrupt 0x000017b3 Thumb Code 56 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_ConfigInterrupt) - HAL_TIMER1n_Init 0x000017ed Thumb Code 332 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Init) - HAL_UART_ConfigInterrupt 0x00001955 Thumb Code 76 a31g12x_hal_uartn.o(i.HAL_UART_ConfigInterrupt) - HAL_UART_ConfigStructInit 0x000019a1 Thumb Code 30 a31g12x_hal_uartn.o(i.HAL_UART_ConfigStructInit) - HAL_UART_Init 0x000019c1 Thumb Code 244 a31g12x_hal_uartn.o(i.HAL_UART_Init) - HAL_UART_Receive 0x00001ac5 Thumb Code 110 a31g12x_hal_uartn.o(i.HAL_UART_Receive) - HAL_UART_ReceiveByte 0x00001b39 Thumb Code 8 a31g12x_hal_uartn.o(i.HAL_UART_ReceiveByte) - HAL_UART_Transmit 0x00001b41 Thumb Code 122 a31g12x_hal_uartn.o(i.HAL_UART_Transmit) - HAL_UART_TransmitByte 0x00001bc1 Thumb Code 16 a31g12x_hal_uartn.o(i.HAL_UART_TransmitByte) - HAL_USART_CheckBusy 0x00001bd1 Thumb Code 20 a31g12x_hal_usart1n.o(i.HAL_USART_CheckBusy) - HAL_USART_ClearStatus 0x00001be5 Thumb Code 58 a31g12x_hal_usart1n.o(i.HAL_USART_ClearStatus) - HAL_USART_ConfigInterrupt 0x00001c1f Thumb Code 76 a31g12x_hal_usart1n.o(i.HAL_USART_ConfigInterrupt) - HAL_USART_DataControlConfig 0x00001c6b Thumb Code 106 a31g12x_hal_usart1n.o(i.HAL_USART_DataControlConfig) - HAL_USART_Enable 0x00001cd5 Thumb Code 38 a31g12x_hal_usart1n.o(i.HAL_USART_Enable) - HAL_USART_GetStatus 0x00001cfb Thumb Code 8 a31g12x_hal_usart1n.o(i.HAL_USART_GetStatus) - HAL_USART_Init 0x00001d05 Thumb Code 218 a31g12x_hal_usart1n.o(i.HAL_USART_Init) - HAL_USART_Receive 0x00001df9 Thumb Code 114 a31g12x_hal_usart1n.o(i.HAL_USART_Receive) - HAL_USART_ReceiveByte 0x00001e6b Thumb Code 8 a31g12x_hal_usart1n.o(i.HAL_USART_ReceiveByte) - HAL_USART_SPI_Mode_Config 0x00001e73 Thumb Code 40 a31g12x_hal_usart1n.o(i.HAL_USART_SPI_Mode_Config) - HAL_USART_Transmit 0x00001e9b Thumb Code 132 a31g12x_hal_usart1n.o(i.HAL_USART_Transmit) - HAL_USART_TransmitByte 0x00001f1f Thumb Code 16 a31g12x_hal_usart1n.o(i.HAL_USART_TransmitByte) - HAL_USART_UART_Mode_Config 0x00001f2f Thumb Code 34 a31g12x_hal_usart1n.o(i.HAL_USART_UART_Mode_Config) - HardFault_Handler 0x00001f51 Thumb Code 4 a31g12x_interrupt.o(i.HardFault_Handler) - I2C2_Read 0x00001f55 Thumb Code 60 gpio_i2c.o(i.I2C2_Read) - I2C2_Write 0x00001f91 Thumb Code 46 gpio_i2c.o(i.I2C2_Write) - NMI_Handler 0x00001fbf Thumb Code 2 a31g12x_interrupt.o(i.NMI_Handler) - PendSV_Handler 0x000021a1 Thumb Code 2 a31g12x_interrupt.o(i.PendSV_Handler) - RTC_Get_Time 0x0000224d Thumb Code 16 rtc_process.o(i.RTC_Get_Time) - RTC_Process_Initialization 0x00002261 Thumb Code 20 rtc_process.o(i.RTC_Process_Initialization) - RingBuffer_Dequeue 0x00002279 Thumb Code 62 ring_buffer.o(i.RingBuffer_Dequeue) - RingBuffer_Enqueue 0x000022b7 Thumb Code 64 ring_buffer.o(i.RingBuffer_Enqueue) - RingBuffer_GetData 0x000022f7 Thumb Code 14 ring_buffer.o(i.RingBuffer_GetData) - RingBuffer_Get_DataSize 0x00002305 Thumb Code 50 ring_buffer.o(i.RingBuffer_Get_DataSize) - RingBuffer_Initialization 0x00002337 Thumb Code 38 ring_buffer.o(i.RingBuffer_Initialization) - RingBuffer_PopData 0x0000235d Thumb Code 38 ring_buffer.o(i.RingBuffer_PopData) - RingBuffer_isEmpty 0x00002383 Thumb Code 18 ring_buffer.o(i.RingBuffer_isEmpty) - RingBuffer_isFull 0x00002395 Thumb Code 36 ring_buffer.o(i.RingBuffer_isFull) - SPI10_Initialization 0x000023b9 Thumb Code 234 spi10.o(i.SPI10_Initialization) - SPI13_Initialization 0x000024ad Thumb Code 180 spi13.o(i.SPI13_Initialization) - SPI13_Transmit 0x00002569 Thumb Code 56 spi13.o(i.SPI13_Transmit) - SVC_Handler 0x000025a5 Thumb Code 2 a31g12x_interrupt.o(i.SVC_Handler) - SW_Timer_Callback_Process 0x000025a9 Thumb Code 124 sw_timer.o(i.SW_Timer_Callback_Process) - SW_Timer_Callback_Register 0x00002629 Thumb Code 78 sw_timer.o(i.SW_Timer_Callback_Register) - Segment_All_Set_Data 0x0000274d Thumb Code 28 segment.o(i.Segment_All_Set_Data) - Segment_Initialization 0x0000276d Thumb Code 54 segment_74hc595d.o(i.Segment_Initialization) - Segment_Show_SensorData 0x000027c5 Thumb Code 330 segment.o(i.Segment_Show_SensorData) - Segment_Show_Time 0x0000291d Thumb Code 120 segment.o(i.Segment_Show_Time) - Segment_Show_Version 0x0000299d Thumb Code 118 segment.o(i.Segment_Show_Version) - SysTick_Handler 0x00002af1 Thumb Code 30 systick_timer.o(i.SysTick_Handler) - SystemInit 0x00002b19 Thumb Code 22 system_a31g12x.o(i.SystemInit) - System_Clock_Initialization 0x00002b3d Thumb Code 66 a31g12x_systemclock.o(i.System_Clock_Initialization) - Systick_Initialization 0x00002b8d Thumb Code 76 a31g12x_systemclock.o(i.Systick_Initialization) - TIMER12_Handler 0x00002be5 Thumb Code 44 timer12.o(i.TIMER12_Handler) - Timer12_Initialization 0x00002c19 Thumb Code 84 timer12.o(i.Timer12_Initialization) - Timer12_Set_Match_Interrupt_Callback 0x00002c75 Thumb Code 6 timer12.o(i.Timer12_Set_Match_Interrupt_Callback) - UART1_Handler 0x00002c81 Thumb Code 34 uart1.o(i.UART1_Handler) - USART11_Handler 0x00002ca9 Thumb Code 26 usart11_rs485.o(i.USART11_Handler) - Uart1_Get_RecvData 0x00002cc9 Thumb Code 16 uart1.o(i.Uart1_Get_RecvData) - Uart1_Get_RecvDataCount 0x00002cdd Thumb Code 10 uart1.o(i.Uart1_Get_RecvDataCount) - Uart1_Initialization 0x00002ced Thumb Code 158 uart1.o(i.Uart1_Initialization) - Uart1_Transmit 0x00002de1 Thumb Code 14 uart1.o(i.Uart1_Transmit) - Uart_Packet_Initialization 0x00002e2d Thumb Code 20 uart_packet.o(i.Uart_Packet_Initialization) - Usart11_Initialization 0x00003025 Thumb Code 194 usart11_rs485.o(i.Usart11_Initialization) - Usart11_TransmitData 0x0000313d Thumb Code 26 usart11_rs485.o(i.Usart11_TransmitData) - __0printf 0x000031d9 Thumb Code 24 printfa.o(i.__0printf) - __1printf 0x000031d9 Thumb Code 0 printfa.o(i.__0printf) - __2printf 0x000031d9 Thumb Code 0 printfa.o(i.__0printf) - __c89printf 0x000031d9 Thumb Code 0 printfa.o(i.__0printf) - printf 0x000031d9 Thumb Code 0 printfa.o(i.__0printf) - __ARM_clz 0x000031f9 Thumb Code 46 depilogue.o(i.__ARM_clz) - __ARM_common_switch8 0x00003227 Thumb Code 28 segment_74hc595d.o(i.__ARM_common_switch8) - __scatterload_copy 0x00003243 Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x00003251 Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x00003253 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - ds3231_aging_offset_convert_to_register 0x00003b89 Thumb Code 48 driver_ds3231.o(i.ds3231_aging_offset_convert_to_register) - ds3231_basic_get_time 0x00003bbd Thumb Code 24 driver_ds3231_basic.o(i.ds3231_basic_get_time) - ds3231_basic_init 0x00003bd9 Thumb Code 316 driver_ds3231_basic.o(i.ds3231_basic_init) - ds3231_basic_set_time 0x00003e6d Thumb Code 24 driver_ds3231_basic.o(i.ds3231_basic_set_time) - ds3231_deinit 0x00003e89 Thumb Code 48 driver_ds3231.o(i.ds3231_deinit) - ds3231_get_time 0x00003ed5 Thumb Code 208 driver_ds3231.o(i.ds3231_get_time) - ds3231_init 0x00003fe1 Thumb Code 218 driver_ds3231.o(i.ds3231_init) - ds3231_interface_debug_print 0x000041cd Thumb Code 2 driver_ds3231_interface_template.o(i.ds3231_interface_debug_print) - ds3231_interface_delay_ms 0x000041cf Thumb Code 12 driver_ds3231_interface_template.o(i.ds3231_interface_delay_ms) - ds3231_interface_iic_deinit 0x000041db Thumb Code 4 driver_ds3231_interface_template.o(i.ds3231_interface_iic_deinit) - ds3231_interface_iic_init 0x000041df Thumb Code 4 driver_ds3231_interface_template.o(i.ds3231_interface_iic_init) - ds3231_interface_iic_read 0x000041e3 Thumb Code 34 driver_ds3231_interface_template.o(i.ds3231_interface_iic_read) - ds3231_interface_iic_write 0x00004205 Thumb Code 46 driver_ds3231_interface_template.o(i.ds3231_interface_iic_write) - ds3231_interface_receive_callback 0x00004235 Thumb Code 34 driver_ds3231_interface_template.o(i.ds3231_interface_receive_callback) - ds3231_set_32khz_output 0x00004289 Thumb Code 106 driver_ds3231.o(i.ds3231_set_32khz_output) - ds3231_set_aging_offset 0x00004335 Thumb Code 54 driver_ds3231.o(i.ds3231_set_aging_offset) - ds3231_set_alarm_interrupt 0x0000438d Thumb Code 112 driver_ds3231.o(i.ds3231_set_alarm_interrupt) - ds3231_set_oscillator 0x0000443d Thumb Code 114 driver_ds3231.o(i.ds3231_set_oscillator) - ds3231_set_pin 0x000044f1 Thumb Code 106 driver_ds3231.o(i.ds3231_set_pin) - ds3231_set_square_wave 0x0000459d Thumb Code 106 driver_ds3231.o(i.ds3231_set_square_wave) - ds3231_set_time 0x00004649 Thumb Code 662 driver_ds3231.o(i.ds3231_set_time) - fputc 0x00004b5d Thumb Code 16 dbg_printf.o(i.fputc) - main 0x00004b6d Thumb Code 118 main.o(i.main) - millis 0x00004bed Thumb Code 6 systick_timer.o(i.millis) - timer_test 0x00004bf9 Thumb Code 28 main.o(i.timer_test) - SegmentData 0x00004c90 Data 38 segment.o(.constdata) - Region$$Table$$Base 0x00004cb8 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x00004cd8 Number 0 anon$$obj.o(Region$$Table) + strlen 0x00000181 Thumb Code 14 strlen.o(.text) + __aeabi_fdiv 0x0000018f Thumb Code 124 fdiv.o(.text) + __aeabi_f2iz 0x0000020b Thumb Code 50 ffixi.o(.text) + __aeabi_uldivmod 0x0000023d Thumb Code 96 uldiv.o(.text) + __I$use$fp 0x0000029d Thumb Code 0 iusefp.o(.text) + _float_round 0x0000029d Thumb Code 16 fepilogue.o(.text) + _float_epilogue 0x000002ad Thumb Code 114 fepilogue.o(.text) + __aeabi_dadd 0x00000321 Thumb Code 330 dadd.o(.text) + __aeabi_dsub 0x0000046b Thumb Code 12 dadd.o(.text) + __aeabi_drsub 0x00000477 Thumb Code 12 dadd.o(.text) + __aeabi_dmul 0x00000489 Thumb Code 202 dmul.o(.text) + __aeabi_ddiv 0x00000559 Thumb Code 234 ddiv.o(.text) + __aeabi_d2ulz 0x00000649 Thumb Code 54 dfixul.o(.text) + __aeabi_cdrcmple 0x00000689 Thumb Code 38 cdrcmple.o(.text) + __scatterload 0x000006b1 Thumb Code 28 init.o(.text) + __scatterload_rt2 0x000006b1 Thumb Code 0 init.o(.text) + __aeabi_llsl 0x000006d5 Thumb Code 32 llshl.o(.text) + _ll_shift_l 0x000006d5 Thumb Code 0 llshl.o(.text) + __aeabi_llsr 0x000006f5 Thumb Code 34 llushr.o(.text) + _ll_ushift_r 0x000006f5 Thumb Code 0 llushr.o(.text) + __aeabi_lasr 0x00000717 Thumb Code 38 llsshr.o(.text) + _ll_sshift_r 0x00000717 Thumb Code 0 llsshr.o(.text) + _double_round 0x0000073d Thumb Code 26 depilogue.o(.text) + _double_epilogue 0x00000757 Thumb Code 164 depilogue.o(.text) + __decompress 0x000007fb Thumb Code 0 __dczerorl2.o(.text) + __decompress1 0x000007fb Thumb Code 86 __dczerorl2.o(.text) + Action_Initialization 0x00000a69 Thumb Code 58 action_process.o(i.Action_Initialization) + Buzzer_Initialization 0x00001201 Thumb Code 34 buzzer.o(i.Buzzer_Initialization) + Buzzer_On 0x0000122d Thumb Code 24 buzzer.o(i.Buzzer_On) + Delay_I2C_Delay 0x000012a1 Thumb Code 14 gpio_i2c.o(i.Delay_I2C_Delay) + Delay_ms 0x000012b1 Thumb Code 16 systick_timer.o(i.Delay_ms) + EEPROM_Read_SettingValue 0x000012c5 Thumb Code 148 eeprom.o(i.EEPROM_Read_SettingValue) + EEPROM_Write_SettingValue 0x00001369 Thumb Code 174 eeprom.o(i.EEPROM_Write_SettingValue) + FATFS_LinkDriver 0x00001429 Thumb Code 18 ff_gen_drv.o(i.FATFS_LinkDriver) + FATFS_LinkDriverEx 0x0000143d Thumb Code 78 ff_gen_drv.o(i.FATFS_LinkDriverEx) + FATFS_UnLinkDriver 0x00001491 Thumb Code 14 ff_gen_drv.o(i.FATFS_UnLinkDriver) + FATFS_UnLinkDriverEx 0x000014a1 Thumb Code 64 ff_gen_drv.o(i.FATFS_UnLinkDriverEx) + FlashMEM_Clock_Initialization 0x000014e5 Thumb Code 16 eeprom.o(i.FlashMEM_Clock_Initialization) + FlashMem_Do_PageEr 0x000014f5 Thumb Code 16 eeprom.o(i.FlashMem_Do_PageEr) + FlashMem_Do_PageWt 0x00001509 Thumb Code 20 eeprom.o(i.FlashMem_Do_PageWt) + GPIO_I2C2_Initialization 0x00001521 Thumb Code 60 gpio_i2c.o(i.GPIO_I2C2_Initialization) + GPIO_I2C2_Read 0x00001561 Thumb Code 142 gpio_i2c.o(i.GPIO_I2C2_Read) + GPIO_I2C2_Start 0x000015f5 Thumb Code 70 gpio_i2c.o(i.GPIO_I2C2_Start) + GPIO_I2C2_Stop 0x00001641 Thumb Code 58 gpio_i2c.o(i.GPIO_I2C2_Stop) + GPIO_I2C2_Write 0x00001681 Thumb Code 142 gpio_i2c.o(i.GPIO_I2C2_Write) + Gpio_Led_OutputSet 0x00001715 Thumb Code 66 gpio_state_led.o(i.Gpio_Led_OutputSet) + Gpio_Sensor_PWR_Initialization 0x0000175d Thumb Code 32 gpio_sensor.o(i.Gpio_Sensor_PWR_Initialization) + Gpio_StateLed_Initialization 0x00001781 Thumb Code 92 gpio_state_led.o(i.Gpio_StateLed_Initialization) + Gpio_Switch_Port_Initialization 0x00001931 Thumb Code 106 gpio_switch.o(i.Gpio_Switch_Port_Initialization) + Gpio_Swtich_Set_Callback 0x000019c9 Thumb Code 34 gpio_switch.o(i.Gpio_Swtich_Set_Callback) + Gpio_Swtich_Set_PushCount 0x000019f1 Thumb Code 26 gpio_switch.o(i.Gpio_Swtich_Set_PushCount) + HAL_CRC_Init 0x00001a11 Thumb Code 14 a31g12x_hal_crc.o(i.HAL_CRC_Init) + HAL_FMC_FlashEntry 0x00001a21 Thumb Code 62 a31g12x_hal_fmc.o(i.HAL_FMC_FlashEntry) + HAL_FMC_FlashExit 0x00001a81 Thumb Code 36 a31g12x_hal_fmc.o(i.HAL_FMC_FlashExit) + HAL_FMC_FlashFunction 0x00001ab9 Thumb Code 338 a31g12x_hal_fmc.o(i.HAL_FMC_FlashFunction) + HAL_FMC_PageErase 0x00001c61 Thumb Code 50 a31g12x_hal_fmc.o(i.HAL_FMC_PageErase) + HAL_FMC_PageWrite 0x00001ca1 Thumb Code 52 a31g12x_hal_fmc.o(i.HAL_FMC_PageWrite) + HAL_GPIO_ClearPin 0x00001ce1 Thumb Code 4 a31g12x_hal_pcu.o(i.HAL_GPIO_ClearPin) + HAL_GPIO_ConfigFunction 0x00001ce5 Thumb Code 68 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigFunction) + HAL_GPIO_ConfigOutput 0x00001d29 Thumb Code 70 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigOutput) + HAL_GPIO_ConfigPullup 0x00001d6f Thumb Code 30 a31g12x_hal_pcu.o(i.HAL_GPIO_ConfigPullup) + HAL_GPIO_ReadPin 0x00001d8d Thumb Code 8 a31g12x_hal_pcu.o(i.HAL_GPIO_ReadPin) + HAL_GPIO_SetDebouncePin 0x00001d95 Thumb Code 22 a31g12x_hal_pcu.o(i.HAL_GPIO_SetDebouncePin) + HAL_GPIO_SetPin 0x00001dab Thumb Code 4 a31g12x_hal_pcu.o(i.HAL_GPIO_SetPin) + HAL_INT_EInt_MaskDisable 0x00001db1 Thumb Code 12 a31g12x_hal_intc.o(i.HAL_INT_EInt_MaskDisable) + HAL_SCU_ClockMonitoring 0x00001dc1 Thumb Code 50 a31g12x_hal_scu.o(i.HAL_SCU_ClockMonitoring) + HAL_SCU_ClockSource_Enable 0x00001dfd Thumb Code 22 a31g12x_hal_scu.o(i.HAL_SCU_ClockSource_Enable) + HAL_SCU_Peripheral_ClockConfig 0x00001e21 Thumb Code 8 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_ClockConfig) + HAL_SCU_Peripheral_EnableClock1 0x00001e2d Thumb Code 28 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock1) + HAL_SCU_Peripheral_EnableClock2 0x00001e4d Thumb Code 28 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_EnableClock2) + HAL_SCU_Peripheral_SetReset2 0x00001e6d Thumb Code 24 a31g12x_hal_scu.o(i.HAL_SCU_Peripheral_SetReset2) + HAL_SCU_SystemClockChange 0x00001e89 Thumb Code 10 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockChange) + HAL_SCU_SystemClockDivider 0x00001e9d Thumb Code 8 a31g12x_hal_scu.o(i.HAL_SCU_SystemClockDivider) + HAL_TIMER1n_Cmd 0x00001ea9 Thumb Code 38 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Cmd) + HAL_TIMER1n_ConfigInterrupt 0x00001ecf Thumb Code 56 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_ConfigInterrupt) + HAL_TIMER1n_Init 0x00001f09 Thumb Code 332 a31g12x_hal_timer1n.o(i.HAL_TIMER1n_Init) + HAL_UART_ConfigInterrupt 0x00002071 Thumb Code 76 a31g12x_hal_uartn.o(i.HAL_UART_ConfigInterrupt) + HAL_UART_ConfigStructInit 0x000020bd Thumb Code 30 a31g12x_hal_uartn.o(i.HAL_UART_ConfigStructInit) + HAL_UART_Init 0x000020dd Thumb Code 244 a31g12x_hal_uartn.o(i.HAL_UART_Init) + HAL_UART_Receive 0x000021e1 Thumb Code 110 a31g12x_hal_uartn.o(i.HAL_UART_Receive) + HAL_UART_ReceiveByte 0x00002255 Thumb Code 8 a31g12x_hal_uartn.o(i.HAL_UART_ReceiveByte) + HAL_UART_Transmit 0x0000225d Thumb Code 122 a31g12x_hal_uartn.o(i.HAL_UART_Transmit) + HAL_UART_TransmitByte 0x000022dd Thumb Code 16 a31g12x_hal_uartn.o(i.HAL_UART_TransmitByte) + HAL_USART_CheckBusy 0x000022ed Thumb Code 20 a31g12x_hal_usart1n.o(i.HAL_USART_CheckBusy) + HAL_USART_ClearStatus 0x00002301 Thumb Code 58 a31g12x_hal_usart1n.o(i.HAL_USART_ClearStatus) + HAL_USART_ConfigInterrupt 0x0000233b Thumb Code 76 a31g12x_hal_usart1n.o(i.HAL_USART_ConfigInterrupt) + HAL_USART_DataControlConfig 0x00002387 Thumb Code 106 a31g12x_hal_usart1n.o(i.HAL_USART_DataControlConfig) + HAL_USART_Enable 0x000023f1 Thumb Code 38 a31g12x_hal_usart1n.o(i.HAL_USART_Enable) + HAL_USART_GetStatus 0x00002417 Thumb Code 8 a31g12x_hal_usart1n.o(i.HAL_USART_GetStatus) + HAL_USART_Init 0x00002421 Thumb Code 218 a31g12x_hal_usart1n.o(i.HAL_USART_Init) + HAL_USART_Receive 0x00002515 Thumb Code 114 a31g12x_hal_usart1n.o(i.HAL_USART_Receive) + HAL_USART_ReceiveByte 0x00002587 Thumb Code 8 a31g12x_hal_usart1n.o(i.HAL_USART_ReceiveByte) + HAL_USART_SPI_Mode_Config 0x0000258f Thumb Code 40 a31g12x_hal_usart1n.o(i.HAL_USART_SPI_Mode_Config) + HAL_USART_Transmit 0x000025b7 Thumb Code 132 a31g12x_hal_usart1n.o(i.HAL_USART_Transmit) + HAL_USART_TransmitByte 0x0000263b Thumb Code 16 a31g12x_hal_usart1n.o(i.HAL_USART_TransmitByte) + HAL_USART_UART_Mode_Config 0x0000264b Thumb Code 34 a31g12x_hal_usart1n.o(i.HAL_USART_UART_Mode_Config) + HardFault_Handler 0x0000266d Thumb Code 4 a31g12x_interrupt.o(i.HardFault_Handler) + I2C2_Read 0x00002671 Thumb Code 60 gpio_i2c.o(i.I2C2_Read) + I2C2_Write 0x000026ad Thumb Code 46 gpio_i2c.o(i.I2C2_Write) + KCD_HP100_GetState 0x000026dd Thumb Code 6 kcd_hp100.o(i.KCD_HP100_GetState) + KCD_HP100_Get_Co2 0x000026e9 Thumb Code 30 kcd_hp100.o(i.KCD_HP100_Get_Co2) + KCD_HP100_Initialization 0x00002711 Thumb Code 26 kcd_hp100.o(i.KCD_HP100_Initialization) + KCD_HP100_Tx_Get_MeasurmentData 0x00002739 Thumb Code 104 kcd_hp100.o(i.KCD_HP100_Tx_Get_MeasurmentData) + MX_FATFS_Init 0x0000290d Thumb Code 16 fatfs.o(i.MX_FATFS_Init) + NMI_Handler 0x00002929 Thumb Code 2 a31g12x_interrupt.o(i.NMI_Handler) + PendSV_Handler 0x00002b0d Thumb Code 2 a31g12x_interrupt.o(i.PendSV_Handler) + RTC_Get_Time 0x00002b69 Thumb Code 16 rtc_process.o(i.RTC_Get_Time) + RTC_Process_Initialization 0x00002b7d Thumb Code 24 rtc_process.o(i.RTC_Process_Initialization) + RingBuffer_Dequeue 0x00002b99 Thumb Code 62 ring_buffer.o(i.RingBuffer_Dequeue) + RingBuffer_Enqueue 0x00002bd7 Thumb Code 64 ring_buffer.o(i.RingBuffer_Enqueue) + RingBuffer_GetData 0x00002c17 Thumb Code 14 ring_buffer.o(i.RingBuffer_GetData) + RingBuffer_Get_DataSize 0x00002c25 Thumb Code 50 ring_buffer.o(i.RingBuffer_Get_DataSize) + RingBuffer_Initialization 0x00002c57 Thumb Code 38 ring_buffer.o(i.RingBuffer_Initialization) + RingBuffer_PopData 0x00002c7d Thumb Code 38 ring_buffer.o(i.RingBuffer_PopData) + RingBuffer_isEmpty 0x00002ca3 Thumb Code 18 ring_buffer.o(i.RingBuffer_isEmpty) + RingBuffer_isFull 0x00002cb5 Thumb Code 36 ring_buffer.o(i.RingBuffer_isFull) + SPI10_Initialization 0x00002cd9 Thumb Code 234 spi10.o(i.SPI10_Initialization) + SPI10_SendReceiveByte 0x00002dcd Thumb Code 42 spi10.o(i.SPI10_SendReceiveByte) + SPI10_Transmit 0x00002dfd Thumb Code 56 spi10.o(i.SPI10_Transmit) + SPI13_Initialization 0x00002e39 Thumb Code 180 spi13.o(i.SPI13_Initialization) + SPI13_Transmit 0x00002ef5 Thumb Code 56 spi13.o(i.SPI13_Transmit) + SPI_Timer_On 0x00002f31 Thumb Code 18 user_diskio_spi.o(i.SPI_Timer_On) + SPI_Timer_Status 0x00002f4d Thumb Code 28 user_diskio_spi.o(i.SPI_Timer_Status) + SVC_Handler 0x00002f71 Thumb Code 2 a31g12x_interrupt.o(i.SVC_Handler) + SW_Timer_Callback_Process 0x00002f75 Thumb Code 124 sw_timer.o(i.SW_Timer_Callback_Process) + SW_Timer_Callback_Register 0x00002ff5 Thumb Code 78 sw_timer.o(i.SW_Timer_Callback_Register) + Save_SensorData_SDCard 0x00003049 Thumb Code 412 save_file.o(i.Save_SensorData_SDCard) + Segment_All_Set_Data 0x00003341 Thumb Code 28 segment.o(i.Segment_All_Set_Data) + Segment_Initialization 0x00003361 Thumb Code 54 segment_74hc595d.o(i.Segment_Initialization) + Segment_Show_SensorData 0x000033b9 Thumb Code 412 segment.o(i.Segment_Show_SensorData) + Segment_Show_SettingData 0x00003565 Thumb Code 278 segment.o(i.Segment_Show_SettingData) + Segment_Show_Time 0x00003685 Thumb Code 120 segment.o(i.Segment_Show_Time) + Segment_Show_Version 0x00003705 Thumb Code 118 segment.o(i.Segment_Show_Version) + SysTick_Handler 0x00003859 Thumb Code 30 systick_timer.o(i.SysTick_Handler) + SystemInit 0x00003881 Thumb Code 22 system_a31g12x.o(i.SystemInit) + System_Clock_Initialization 0x000038a5 Thumb Code 66 a31g12x_systemclock.o(i.System_Clock_Initialization) + Systick_Initialization 0x000038f5 Thumb Code 76 a31g12x_systemclock.o(i.Systick_Initialization) + TIMER12_Handler 0x0000394d Thumb Code 44 timer12.o(i.TIMER12_Handler) + Timer12_Initialization 0x00003981 Thumb Code 84 timer12.o(i.Timer12_Initialization) + Timer12_Set_Match_Interrupt_Callback 0x000039dd Thumb Code 6 timer12.o(i.Timer12_Set_Match_Interrupt_Callback) + UART1_Handler 0x000039e9 Thumb Code 34 uart1.o(i.UART1_Handler) + USART11_Handler 0x00003a11 Thumb Code 26 usart11_rs485.o(i.USART11_Handler) + USER_SPI_initialize 0x00003a31 Thumb Code 336 user_diskio_spi.o(i.USER_SPI_initialize) + USER_SPI_ioctl 0x00003b91 Thumb Code 562 user_diskio_spi.o(i.USER_SPI_ioctl) + USER_SPI_read 0x00003dd1 Thumb Code 152 user_diskio_spi.o(i.USER_SPI_read) + USER_SPI_status 0x00003e71 Thumb Code 16 user_diskio_spi.o(i.USER_SPI_status) + USER_SPI_write 0x00003e85 Thumb Code 192 user_diskio_spi.o(i.USER_SPI_write) + USER_initialize 0x00003f4d Thumb Code 12 user_diskio.o(i.USER_initialize) + USER_ioctl 0x00003f59 Thumb Code 20 user_diskio.o(i.USER_ioctl) + USER_read 0x00003f6d Thumb Code 24 user_diskio.o(i.USER_read) + USER_status 0x00003f85 Thumb Code 12 user_diskio.o(i.USER_status) + USER_write 0x00003f91 Thumb Code 24 user_diskio.o(i.USER_write) + Uart1_Get_RecvData 0x00003fa9 Thumb Code 16 uart1.o(i.Uart1_Get_RecvData) + Uart1_Get_RecvDataCount 0x00003fbd Thumb Code 10 uart1.o(i.Uart1_Get_RecvDataCount) + Uart1_Initialization 0x00003fcd Thumb Code 158 uart1.o(i.Uart1_Initialization) + Uart1_Transmit 0x000040c1 Thumb Code 14 uart1.o(i.Uart1_Transmit) + Uart_Packet_Initialization 0x0000410d Thumb Code 20 uart_packet.o(i.Uart_Packet_Initialization) + Usart11_Get_RecvData 0x00004305 Thumb Code 16 usart11_rs485.o(i.Usart11_Get_RecvData) + Usart11_Get_RecvDataCount 0x00004319 Thumb Code 10 usart11_rs485.o(i.Usart11_Get_RecvDataCount) + Usart11_Initialization 0x00004329 Thumb Code 194 usart11_rs485.o(i.Usart11_Initialization) + Usart11_TransmitData 0x00004441 Thumb Code 26 usart11_rs485.o(i.Usart11_TransmitData) + __0printf 0x000044dd Thumb Code 24 printfa.o(i.__0printf) + __1printf 0x000044dd Thumb Code 0 printfa.o(i.__0printf) + __2printf 0x000044dd Thumb Code 0 printfa.o(i.__0printf) + __c89printf 0x000044dd Thumb Code 0 printfa.o(i.__0printf) + printf 0x000044dd Thumb Code 0 printfa.o(i.__0printf) + __0sprintf 0x000044fd Thumb Code 36 printfa.o(i.__0sprintf) + __1sprintf 0x000044fd Thumb Code 0 printfa.o(i.__0sprintf) + __2sprintf 0x000044fd Thumb Code 0 printfa.o(i.__0sprintf) + __c89sprintf 0x000044fd Thumb Code 0 printfa.o(i.__0sprintf) + sprintf 0x000044fd Thumb Code 0 printfa.o(i.__0sprintf) + __ARM_clz 0x00004525 Thumb Code 46 depilogue.o(i.__ARM_clz) + __ARM_common_switch8 0x00004553 Thumb Code 28 segment_74hc595d.o(i.__ARM_common_switch8) + __scatterload_copy 0x0000456f Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x0000457d Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x0000457f Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + clust2sect 0x00005089 Thumb Code 36 ff.o(i.clust2sect) + disk_initialize 0x00005739 Thumb Code 42 diskio.o(i.disk_initialize) + disk_ioctl 0x00005769 Thumb Code 32 diskio.o(i.disk_ioctl) + disk_read 0x0000578d Thumb Code 38 diskio.o(i.disk_read) + disk_status 0x000057b9 Thumb Code 24 diskio.o(i.disk_status) + disk_write 0x000057d5 Thumb Code 38 diskio.o(i.disk_write) + ds3231_aging_offset_convert_to_register 0x00005801 Thumb Code 48 driver_ds3231.o(i.ds3231_aging_offset_convert_to_register) + ds3231_basic_get_time 0x00005835 Thumb Code 24 driver_ds3231_basic.o(i.ds3231_basic_get_time) + ds3231_basic_init 0x00005851 Thumb Code 316 driver_ds3231_basic.o(i.ds3231_basic_init) + ds3231_basic_set_time 0x00005ae5 Thumb Code 24 driver_ds3231_basic.o(i.ds3231_basic_set_time) + ds3231_deinit 0x00005b01 Thumb Code 48 driver_ds3231.o(i.ds3231_deinit) + ds3231_get_time 0x00005b4d Thumb Code 208 driver_ds3231.o(i.ds3231_get_time) + ds3231_init 0x00005c59 Thumb Code 218 driver_ds3231.o(i.ds3231_init) + ds3231_interface_debug_print 0x00005e45 Thumb Code 2 driver_ds3231_interface_template.o(i.ds3231_interface_debug_print) + ds3231_interface_delay_ms 0x00005e47 Thumb Code 12 driver_ds3231_interface_template.o(i.ds3231_interface_delay_ms) + ds3231_interface_iic_deinit 0x00005e53 Thumb Code 4 driver_ds3231_interface_template.o(i.ds3231_interface_iic_deinit) + ds3231_interface_iic_init 0x00005e57 Thumb Code 4 driver_ds3231_interface_template.o(i.ds3231_interface_iic_init) + ds3231_interface_iic_read 0x00005e5b Thumb Code 34 driver_ds3231_interface_template.o(i.ds3231_interface_iic_read) + ds3231_interface_iic_write 0x00005e7d Thumb Code 46 driver_ds3231_interface_template.o(i.ds3231_interface_iic_write) + ds3231_interface_receive_callback 0x00005ead Thumb Code 34 driver_ds3231_interface_template.o(i.ds3231_interface_receive_callback) + ds3231_set_32khz_output 0x00005f01 Thumb Code 106 driver_ds3231.o(i.ds3231_set_32khz_output) + ds3231_set_aging_offset 0x00005fad Thumb Code 54 driver_ds3231.o(i.ds3231_set_aging_offset) + ds3231_set_alarm_interrupt 0x00006005 Thumb Code 112 driver_ds3231.o(i.ds3231_set_alarm_interrupt) + ds3231_set_oscillator 0x000060b5 Thumb Code 114 driver_ds3231.o(i.ds3231_set_oscillator) + ds3231_set_pin 0x00006169 Thumb Code 106 driver_ds3231.o(i.ds3231_set_pin) + ds3231_set_square_wave 0x00006215 Thumb Code 106 driver_ds3231.o(i.ds3231_set_square_wave) + ds3231_set_time 0x000062c1 Thumb Code 662 driver_ds3231.o(i.ds3231_set_time) + f_close 0x000067fd Thumb Code 56 ff.o(i.f_close) + f_closedir 0x00006835 Thumb Code 54 ff.o(i.f_closedir) + f_lseek 0x0000686d Thumb Code 1100 ff.o(i.f_lseek) + f_mkdir 0x00006cbd Thumb Code 410 ff.o(i.f_mkdir) + f_mount 0x00006e59 Thumb Code 108 ff.o(i.f_mount) + f_open 0x00006ec9 Thumb Code 536 ff.o(i.f_open) + f_opendir 0x000070e5 Thumb Code 210 ff.o(i.f_opendir) + f_sync 0x000071b9 Thumb Code 250 ff.o(i.f_sync) + f_write 0x000072b9 Thumb Code 770 ff.o(i.f_write) + fputc 0x00007ae7 Thumb Code 16 dbg_printf.o(i.fputc) + get_fat 0x00007af7 Thumb Code 260 ff.o(i.get_fat) + get_fattime 0x00007bfb Thumb Code 4 fatfs.o(i.get_fattime) + main 0x00007d59 Thumb Code 116 main.o(i.main) + millis 0x00007e29 Thumb Code 6 systick_timer.o(i.millis) + put_fat 0x00007e79 Thumb Code 354 ff.o(i.put_fat) + SegmentData 0x000084a4 Data 38 segment.o(.constdata) + Region$$Table$$Base 0x00008578 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x00008598 Number 0 anon$$obj.o(Region$$Table) nDelayCount 0x20000004 Data 4 systick_timer.o(.data) Segment_Toggle_In 0x20000131 Data 1 segment_74hc595d.o(.data) Segment_Toggle_Out 0x20000132 Data 1 segment_74hc595d.o(.data) - flash_id1_reg 0x20000150 Data 4 a31g12x_hal_fmc.o(.data) - flash_id2_reg 0x20000154 Data 4 a31g12x_hal_fmc.o(.data) - flash_addr_code0 0x20000158 Data 4 a31g12x_hal_fmc.o(.data) - flash_addr_code1 0x2000015c Data 4 a31g12x_hal_fmc.o(.data) - InFlag 0x20000164 Data 4 a31g12x_hal_uartn.o(.data) - InCount 0x20000168 Data 4 a31g12x_hal_uartn.o(.data) - USART1n_BaseClock 0x2000016c Data 4 a31g12x_hal_usart1n.o(.data) - mclk 0x20000170 Data 4 system_a31g12x.o(.data) - SystemCoreClock 0x20000174 Data 4 system_a31g12x.o(.data) - SystemPeriClock 0x20000178 Data 4 system_a31g12x.o(.data) - ClkSrcTbl 0x2000017c Data 16 system_a31g12x.o(.data) - __stdout 0x2000018c Data 4 stdout.o(.data) - Segment_OutputBuff 0x2000043a Data 10 segment.o(.bss) - __initial_sp 0x20000a98 Data 0 startup_a31g12x.o(STACK) + WriteDataSize 0x20000144 Data 4 save_file.o(.data) + SaveCheckSec 0x20000152 Data 1 action_process.o(.data) + SaveSensorIndex 0x20000154 Data 2 action_process.o(.data) + flash_id1_reg 0x20000174 Data 4 a31g12x_hal_fmc.o(.data) + flash_id2_reg 0x20000178 Data 4 a31g12x_hal_fmc.o(.data) + flash_addr_code0 0x2000017c Data 4 a31g12x_hal_fmc.o(.data) + flash_addr_code1 0x20000180 Data 4 a31g12x_hal_fmc.o(.data) + InFlag 0x20000188 Data 4 a31g12x_hal_uartn.o(.data) + InCount 0x2000018c Data 4 a31g12x_hal_uartn.o(.data) + USART1n_BaseClock 0x20000190 Data 4 a31g12x_hal_usart1n.o(.data) + mclk 0x20000194 Data 4 system_a31g12x.o(.data) + SystemCoreClock 0x20000198 Data 4 system_a31g12x.o(.data) + SystemPeriClock 0x2000019c Data 4 system_a31g12x.o(.data) + ClkSrcTbl 0x200001a0 Data 16 system_a31g12x.o(.data) + retUSER 0x200001b0 Data 1 fatfs.o(.data) + USERPath 0x200001b1 Data 4 fatfs.o(.data) + USER_Driver 0x200001bc Data 20 user_diskio.o(.data) + spiTimerTickStart 0x200001d4 Data 4 user_diskio_spi.o(.data) + spiTimerTickDelay 0x200001d8 Data 4 user_diskio_spi.o(.data) + __stdout 0x200001e4 Data 4 stdout.o(.data) + FileBuffer 0x20000a58 Data 512 save_file.o(.bss) + SaveSensorCo2 0x20000c78 Data 200 action_process.o(.bss) + Segment_OutputBuff 0x20000de0 Data 10 segment.o(.bss) + disk 0x20000f74 Data 12 ff_gen_drv.o(.bss) + __initial_sp 0x20001480 Data 0 startup_a31g12x.o(STACK) @@ -2311,265 +2536,388 @@ Memory Map of the image Image Entry point : 0x000000b1 - Load Region LR_IROM1 (Base: 0x00000000, Size: 0x00004e68, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x00004d1c]) + Load Region LR_IROM1 (Base: 0x00000000, Size: 0x00008780, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x000085f4]) - Execution Region ER_IROM1 (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x00004cd8, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x00008598, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x00000000 0x00000000 0x000000b0 Data RO 3036 RESET startup_a31g12x.o - 0x000000b0 0x000000b0 0x00000000 Code RO 3750 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) - 0x000000b0 0x000000b0 0x00000004 Code RO 4041 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) - 0x000000b4 0x000000b4 0x00000004 Code RO 4044 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) - 0x000000b8 0x000000b8 0x00000000 Code RO 4046 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) - 0x000000b8 0x000000b8 0x00000000 Code RO 4048 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) - 0x000000b8 0x000000b8 0x00000008 Code RO 4049 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) - 0x000000c0 0x000000c0 0x00000004 Code RO 4056 .ARM.Collect$$$$0000000E mc_p.l(entry12b.o) - 0x000000c4 0x000000c4 0x00000000 Code RO 4051 .ARM.Collect$$$$0000000F mc_p.l(entry10a.o) - 0x000000c4 0x000000c4 0x00000000 Code RO 4053 .ARM.Collect$$$$00000011 mc_p.l(entry11a.o) - 0x000000c4 0x000000c4 0x00000004 Code RO 4042 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) - 0x000000c8 0x000000c8 0x0000001c Code RO 3037 .text startup_a31g12x.o - 0x000000e4 0x000000e4 0x0000002c Code RO 3753 .text mc_p.l(uidiv.o) - 0x00000110 0x00000110 0x00000028 Code RO 3755 .text mc_p.l(idiv.o) - 0x00000138 0x00000138 0x00000024 Code RO 3764 .text mc_p.l(memcpya.o) - 0x0000015c 0x0000015c 0x00000024 Code RO 3766 .text mc_p.l(memseta.o) - 0x00000180 0x00000180 0x0000007c Code RO 4035 .text mf_p.l(fdiv.o) - 0x000001fc 0x000001fc 0x00000032 Code RO 4039 .text mf_p.l(ffixi.o) - 0x0000022e 0x0000022e 0x00000060 Code RO 4058 .text mc_p.l(uldiv.o) - 0x0000028e 0x0000028e 0x00000000 Code RO 4066 .text mc_p.l(iusefp.o) - 0x0000028e 0x0000028e 0x00000082 Code RO 4067 .text mf_p.l(fepilogue.o) - 0x00000310 0x00000310 0x00000168 Code RO 4069 .text mf_p.l(dadd.o) - 0x00000478 0x00000478 0x000000d0 Code RO 4071 .text mf_p.l(dmul.o) - 0x00000548 0x00000548 0x000000f0 Code RO 4073 .text mf_p.l(ddiv.o) - 0x00000638 0x00000638 0x00000040 Code RO 4075 .text mf_p.l(dfixul.o) - 0x00000678 0x00000678 0x00000028 Code RO 4077 .text mf_p.l(cdrcmple.o) - 0x000006a0 0x000006a0 0x00000024 Code RO 4079 .text mc_p.l(init.o) - 0x000006c4 0x000006c4 0x00000020 Code RO 4081 .text mc_p.l(llshl.o) - 0x000006e4 0x000006e4 0x00000022 Code RO 4083 .text mc_p.l(llushr.o) - 0x00000706 0x00000706 0x00000026 Code RO 4085 .text mc_p.l(llsshr.o) - 0x0000072c 0x0000072c 0x000000be Code RO 4087 .text mf_p.l(depilogue.o) - 0x000007ea 0x000007ea 0x00000056 Code RO 4099 .text mc_p.l(__dczerorl2.o) - 0x00000840 0x00000840 0x00000002 Code RO 1289 i.Action_Down_Key_Push action_process.o - 0x00000842 0x00000842 0x00000002 PAD - 0x00000844 0x00000844 0x00000054 Code RO 1290 i.Action_Initialization action_process.o - 0x00000898 0x00000898 0x000000b4 Code RO 1291 i.Action_Mode_Key_Push action_process.o - 0x0000094c 0x0000094c 0x000000ec Code RO 1292 i.Action_PowerOn_Init_Process action_process.o - 0x00000a38 0x00000a38 0x000000f0 Code RO 1293 i.Action_PowerOn_Process action_process.o - 0x00000b28 0x00000b28 0x00000028 Code RO 1294 i.Action_Power_Off_Key_Push_Callback action_process.o - 0x00000b50 0x00000b50 0x00000020 Code RO 1295 i.Action_Power_Off_Key_Set action_process.o - 0x00000b70 0x00000b70 0x0000002c Code RO 1296 i.Action_Power_On_Key_Push_Callback action_process.o - 0x00000b9c 0x00000b9c 0x00000020 Code RO 1297 i.Action_Power_On_Key_Set action_process.o - 0x00000bbc 0x00000bbc 0x00000024 Code RO 1298 i.Action_Process action_process.o - 0x00000be0 0x00000be0 0x00000002 Code RO 1299 i.Action_Set_Key_Push action_process.o - 0x00000be2 0x00000be2 0x00000002 Code RO 1300 i.Action_Up_Key_Push action_process.o - 0x00000be4 0x00000be4 0x0000002c Code RO 1415 i.Buzzer_Initialization buzzer.o - 0x00000c10 0x00000c10 0x00000024 Code RO 1416 i.Buzzer_On buzzer.o - 0x00000c34 0x00000c34 0x00000050 Code RO 1417 i.Buzzer_Output_Process buzzer.o - 0x00000c84 0x00000c84 0x0000000e Code RO 686 i.Delay_I2C_Delay gpio_i2c.o - 0x00000c92 0x00000c92 0x00000002 PAD - 0x00000c94 0x00000c94 0x00000014 Code RO 345 i.Delay_ms systick_timer.o - 0x00000ca8 0x00000ca8 0x00000098 Code RO 1369 i.EEPROM_Read_SettingValue eeprom.o - 0x00000d40 0x00000d40 0x000000ac Code RO 1370 i.EEPROM_Write_SettingValue eeprom.o - 0x00000dec 0x00000dec 0x00000010 Code RO 1371 i.FlashMEM_Clock_Initialization eeprom.o - 0x00000dfc 0x00000dfc 0x00000014 Code RO 1372 i.FlashMem_Do_PageEr eeprom.o - 0x00000e10 0x00000e10 0x00000018 Code RO 1373 i.FlashMem_Do_PageWt eeprom.o - 0x00000e28 0x00000e28 0x00000040 Code RO 697 i.GPIO_I2C2_Initialization gpio_i2c.o - 0x00000e68 0x00000e68 0x00000094 Code RO 698 i.GPIO_I2C2_Read gpio_i2c.o - 0x00000efc 0x00000efc 0x0000004c Code RO 699 i.GPIO_I2C2_Start gpio_i2c.o - 0x00000f48 0x00000f48 0x00000040 Code RO 700 i.GPIO_I2C2_Stop gpio_i2c.o - 0x00000f88 0x00000f88 0x00000094 Code RO 701 i.GPIO_I2C2_Write gpio_i2c.o - 0x0000101c 0x0000101c 0x00000048 Code RO 451 i.Gpio_Led_OutputSet gpio_state_led.o - 0x00001064 0x00001064 0x0000006c Code RO 452 i.Gpio_StateLed_Initialization gpio_state_led.o - 0x000010d0 0x000010d0 0x00000144 Code RO 494 i.Gpio_Switch_Check_Process gpio_switch.o - 0x00001214 0x00001214 0x00000078 Code RO 495 i.Gpio_Switch_Port_Initialization gpio_switch.o - 0x0000128c 0x0000128c 0x00000020 Code RO 496 i.Gpio_Switch_TestCallback gpio_switch.o - 0x000012ac 0x000012ac 0x00000028 Code RO 497 i.Gpio_Swtich_Set_Callback gpio_switch.o - 0x000012d4 0x000012d4 0x00000020 Code RO 498 i.Gpio_Swtich_Set_PushCount gpio_switch.o - 0x000012f4 0x000012f4 0x0000000e Code RO 1731 i.HAL_CRC_Init a31g12x_hal_crc.o - 0x00001302 0x00001302 0x00000002 PAD - 0x00001304 0x00001304 0x00000060 Code RO 1886 i.HAL_FMC_FlashEntry a31g12x_hal_fmc.o - 0x00001364 0x00001364 0x00000038 Code RO 1887 i.HAL_FMC_FlashExit a31g12x_hal_fmc.o - 0x0000139c 0x0000139c 0x000001a8 Code RO 1888 i.HAL_FMC_FlashFunction a31g12x_hal_fmc.o - 0x00001544 0x00001544 0x00000040 Code RO 1889 i.HAL_FMC_PageErase a31g12x_hal_fmc.o - 0x00001584 0x00001584 0x00000040 Code RO 1890 i.HAL_FMC_PageWrite a31g12x_hal_fmc.o - 0x000015c4 0x000015c4 0x00000004 Code RO 2190 i.HAL_GPIO_ClearPin a31g12x_hal_pcu.o - 0x000015c8 0x000015c8 0x00000044 Code RO 2191 i.HAL_GPIO_ConfigFunction a31g12x_hal_pcu.o - 0x0000160c 0x0000160c 0x00000046 Code RO 2193 i.HAL_GPIO_ConfigOutput a31g12x_hal_pcu.o - 0x00001652 0x00001652 0x0000001e Code RO 2194 i.HAL_GPIO_ConfigPullup a31g12x_hal_pcu.o - 0x00001670 0x00001670 0x00000008 Code RO 2196 i.HAL_GPIO_ReadPin a31g12x_hal_pcu.o - 0x00001678 0x00001678 0x00000016 Code RO 2197 i.HAL_GPIO_SetDebouncePin a31g12x_hal_pcu.o - 0x0000168e 0x0000168e 0x00000004 Code RO 2198 i.HAL_GPIO_SetPin a31g12x_hal_pcu.o - 0x00001692 0x00001692 0x00000002 PAD - 0x00001694 0x00001694 0x00000010 Code RO 2086 i.HAL_INT_EInt_MaskDisable a31g12x_hal_intc.o - 0x000016a4 0x000016a4 0x0000003c Code RO 2297 i.HAL_SCU_ClockMonitoring a31g12x_hal_scu.o - 0x000016e0 0x000016e0 0x00000024 Code RO 2302 i.HAL_SCU_ClockSource_Enable a31g12x_hal_scu.o - 0x00001704 0x00001704 0x0000000c Code RO 2305 i.HAL_SCU_Peripheral_ClockConfig a31g12x_hal_scu.o - 0x00001710 0x00001710 0x00000020 Code RO 2307 i.HAL_SCU_Peripheral_EnableClock1 a31g12x_hal_scu.o - 0x00001730 0x00001730 0x00000020 Code RO 2308 i.HAL_SCU_Peripheral_EnableClock2 a31g12x_hal_scu.o - 0x00001750 0x00001750 0x0000001c Code RO 2311 i.HAL_SCU_Peripheral_SetReset2 a31g12x_hal_scu.o - 0x0000176c 0x0000176c 0x00000014 Code RO 2317 i.HAL_SCU_SystemClockChange a31g12x_hal_scu.o - 0x00001780 0x00001780 0x0000000c Code RO 2318 i.HAL_SCU_SystemClockDivider a31g12x_hal_scu.o - 0x0000178c 0x0000178c 0x00000026 Code RO 2474 i.HAL_TIMER1n_Cmd a31g12x_hal_timer1n.o - 0x000017b2 0x000017b2 0x00000038 Code RO 2475 i.HAL_TIMER1n_ConfigInterrupt a31g12x_hal_timer1n.o - 0x000017ea 0x000017ea 0x00000002 PAD - 0x000017ec 0x000017ec 0x00000168 Code RO 2477 i.HAL_TIMER1n_Init a31g12x_hal_timer1n.o - 0x00001954 0x00001954 0x0000004c Code RO 2697 i.HAL_UART_ConfigInterrupt a31g12x_hal_uartn.o - 0x000019a0 0x000019a0 0x0000001e Code RO 2698 i.HAL_UART_ConfigStructInit a31g12x_hal_uartn.o - 0x000019be 0x000019be 0x00000002 PAD - 0x000019c0 0x000019c0 0x00000104 Code RO 2704 i.HAL_UART_Init a31g12x_hal_uartn.o - 0x00001ac4 0x00001ac4 0x00000074 Code RO 2705 i.HAL_UART_Receive a31g12x_hal_uartn.o - 0x00001b38 0x00001b38 0x00000008 Code RO 2706 i.HAL_UART_ReceiveByte a31g12x_hal_uartn.o - 0x00001b40 0x00001b40 0x00000080 Code RO 2707 i.HAL_UART_Transmit a31g12x_hal_uartn.o - 0x00001bc0 0x00001bc0 0x00000010 Code RO 2708 i.HAL_UART_TransmitByte a31g12x_hal_uartn.o - 0x00001bd0 0x00001bd0 0x00000014 Code RO 2800 i.HAL_USART_CheckBusy a31g12x_hal_usart1n.o - 0x00001be4 0x00001be4 0x0000003a Code RO 2801 i.HAL_USART_ClearStatus a31g12x_hal_usart1n.o - 0x00001c1e 0x00001c1e 0x0000004c Code RO 2802 i.HAL_USART_ConfigInterrupt a31g12x_hal_usart1n.o - 0x00001c6a 0x00001c6a 0x0000006a Code RO 2803 i.HAL_USART_DataControlConfig a31g12x_hal_usart1n.o - 0x00001cd4 0x00001cd4 0x00000026 Code RO 2805 i.HAL_USART_Enable a31g12x_hal_usart1n.o - 0x00001cfa 0x00001cfa 0x00000008 Code RO 2806 i.HAL_USART_GetStatus a31g12x_hal_usart1n.o - 0x00001d02 0x00001d02 0x00000002 PAD - 0x00001d04 0x00001d04 0x000000f4 Code RO 2807 i.HAL_USART_Init a31g12x_hal_usart1n.o - 0x00001df8 0x00001df8 0x00000072 Code RO 2808 i.HAL_USART_Receive a31g12x_hal_usart1n.o - 0x00001e6a 0x00001e6a 0x00000008 Code RO 2809 i.HAL_USART_ReceiveByte a31g12x_hal_usart1n.o - 0x00001e72 0x00001e72 0x00000028 Code RO 2810 i.HAL_USART_SPI_Mode_Config a31g12x_hal_usart1n.o - 0x00001e9a 0x00001e9a 0x00000084 Code RO 2811 i.HAL_USART_Transmit a31g12x_hal_usart1n.o - 0x00001f1e 0x00001f1e 0x00000010 Code RO 2812 i.HAL_USART_TransmitByte a31g12x_hal_usart1n.o - 0x00001f2e 0x00001f2e 0x00000022 Code RO 2813 i.HAL_USART_UART_Mode_Config a31g12x_hal_usart1n.o - 0x00001f50 0x00001f50 0x00000004 Code RO 1 i.HardFault_Handler a31g12x_interrupt.o - 0x00001f54 0x00001f54 0x0000003c Code RO 706 i.I2C2_Read gpio_i2c.o - 0x00001f90 0x00001f90 0x0000002e Code RO 707 i.I2C2_Write gpio_i2c.o - 0x00001fbe 0x00001fbe 0x00000002 Code RO 2 i.NMI_Handler a31g12x_interrupt.o - 0x00001fc0 0x00001fc0 0x00000078 Code RO 38 i.NVIC_SetPriority a31g12x_systemclock.o - 0x00002038 0x00002038 0x00000078 Code RO 538 i.NVIC_SetPriority uart1.o - 0x000020b0 0x000020b0 0x00000078 Code RO 647 i.NVIC_SetPriority timer12.o - 0x00002128 0x00002128 0x00000078 Code RO 1590 i.NVIC_SetPriority usart11_rs485.o - 0x000021a0 0x000021a0 0x00000002 Code RO 3 i.PendSV_Handler a31g12x_interrupt.o - 0x000021a2 0x000021a2 0x00000002 PAD - 0x000021a4 0x000021a4 0x000000a8 Code RO 1256 i.RTC_Get_IC_Time_Process rtc_process.o - 0x0000224c 0x0000224c 0x00000014 Code RO 1257 i.RTC_Get_Time rtc_process.o - 0x00002260 0x00002260 0x00000018 Code RO 1258 i.RTC_Process_Initialization rtc_process.o - 0x00002278 0x00002278 0x0000003e Code RO 381 i.RingBuffer_Dequeue ring_buffer.o - 0x000022b6 0x000022b6 0x00000040 Code RO 382 i.RingBuffer_Enqueue ring_buffer.o - 0x000022f6 0x000022f6 0x0000000e Code RO 383 i.RingBuffer_GetData ring_buffer.o - 0x00002304 0x00002304 0x00000032 Code RO 384 i.RingBuffer_Get_DataSize ring_buffer.o - 0x00002336 0x00002336 0x00000026 Code RO 385 i.RingBuffer_Initialization ring_buffer.o - 0x0000235c 0x0000235c 0x00000026 Code RO 386 i.RingBuffer_PopData ring_buffer.o - 0x00002382 0x00002382 0x00000012 Code RO 387 i.RingBuffer_isEmpty ring_buffer.o - 0x00002394 0x00002394 0x00000024 Code RO 388 i.RingBuffer_isFull ring_buffer.o - 0x000023b8 0x000023b8 0x000000f4 Code RO 832 i.SPI10_Initialization spi10.o - 0x000024ac 0x000024ac 0x000000bc Code RO 1552 i.SPI13_Initialization spi13.o - 0x00002568 0x00002568 0x0000003c Code RO 1555 i.SPI13_Transmit spi13.o - 0x000025a4 0x000025a4 0x00000002 Code RO 4 i.SVC_Handler a31g12x_interrupt.o - 0x000025a6 0x000025a6 0x00000002 PAD - 0x000025a8 0x000025a8 0x00000080 Code RO 311 i.SW_Timer_Callback_Process sw_timer.o - 0x00002628 0x00002628 0x00000054 Code RO 312 i.SW_Timer_Callback_Register sw_timer.o - 0x0000267c 0x0000267c 0x000000d0 Code RO 608 i.Segemet_Output_Process segment_74hc595d.o - 0x0000274c 0x0000274c 0x00000020 Code RO 1468 i.Segment_All_Set_Data segment.o - 0x0000276c 0x0000276c 0x00000048 Code RO 609 i.Segment_Initialization segment_74hc595d.o - 0x000027b4 0x000027b4 0x00000010 Code RO 610 i.Segment_Output_Data segment_74hc595d.o - 0x000027c4 0x000027c4 0x00000158 Code RO 1470 i.Segment_Show_SensorData segment.o - 0x0000291c 0x0000291c 0x00000080 Code RO 1471 i.Segment_Show_Time segment.o - 0x0000299c 0x0000299c 0x00000080 Code RO 1472 i.Segment_Show_Version segment.o - 0x00002a1c 0x00002a1c 0x00000028 Code RO 453 i.State_Led_Off gpio_state_led.o - 0x00002a44 0x00002a44 0x00000028 Code RO 454 i.State_Led_On gpio_state_led.o - 0x00002a6c 0x00002a6c 0x00000084 Code RO 455 i.State_Led_Output_Process gpio_state_led.o - 0x00002af0 0x00002af0 0x00000028 Code RO 346 i.SysTick_Handler systick_timer.o - 0x00002b18 0x00002b18 0x00000024 Code RO 3044 i.SystemInit system_a31g12x.o - 0x00002b3c 0x00002b3c 0x00000050 Code RO 39 i.System_Clock_Initialization a31g12x_systemclock.o - 0x00002b8c 0x00002b8c 0x00000058 Code RO 40 i.Systick_Initialization a31g12x_systemclock.o - 0x00002be4 0x00002be4 0x00000034 Code RO 648 i.TIMER12_Handler timer12.o - 0x00002c18 0x00002c18 0x0000005c Code RO 649 i.Timer12_Initialization timer12.o - 0x00002c74 0x00002c74 0x0000000c Code RO 650 i.Timer12_Set_Match_Interrupt_Callback timer12.o - 0x00002c80 0x00002c80 0x00000028 Code RO 539 i.UART1_Handler uart1.o - 0x00002ca8 0x00002ca8 0x00000020 Code RO 1591 i.USART11_Handler usart11_rs485.o - 0x00002cc8 0x00002cc8 0x00000014 Code RO 540 i.Uart1_Get_RecvData uart1.o - 0x00002cdc 0x00002cdc 0x00000010 Code RO 541 i.Uart1_Get_RecvDataCount uart1.o - 0x00002cec 0x00002cec 0x000000c0 Code RO 542 i.Uart1_Initialization uart1.o - 0x00002dac 0x00002dac 0x00000034 Code RO 543 i.Uart1_Receive_Handler uart1.o - 0x00002de0 0x00002de0 0x00000014 Code RO 544 i.Uart1_Transmit uart1.o - 0x00002df4 0x00002df4 0x00000038 Code RO 546 i.Uart1_Transmit_Process uart1.o - 0x00002e2c 0x00002e2c 0x0000001c Code RO 1519 i.Uart_Packet_Initialization uart_packet.o - 0x00002e48 0x00002e48 0x00000144 Code RO 1520 i.Uart_Packet_Make_Process uart_packet.o - 0x00002f8c 0x00002f8c 0x00000096 Code RO 1521 i.Uart_Packet_Process uart_packet.o - 0x00003022 0x00003022 0x00000002 PAD - 0x00003024 0x00003024 0x000000e4 Code RO 1594 i.Usart11_Initialization usart11_rs485.o - 0x00003108 0x00003108 0x00000034 Code RO 1595 i.Usart11_Receive_Handler usart11_rs485.o - 0x0000313c 0x0000313c 0x00000020 Code RO 1597 i.Usart11_TransmitData usart11_rs485.o - 0x0000315c 0x0000315c 0x0000007c Code RO 1598 i.Usart11_Transmit_Process usart11_rs485.o - 0x000031d8 0x000031d8 0x00000020 Code RO 4005 i.__0printf mc_p.l(printfa.o) - 0x000031f8 0x000031f8 0x0000002e Code RO 4089 i.__ARM_clz mf_p.l(depilogue.o) - 0x00003226 0x00003226 0x0000001c Code RO 637 i.__ARM_common_switch8 segment_74hc595d.o - 0x00003242 0x00003242 0x0000000e Code RO 4093 i.__scatterload_copy mc_p.l(handlers.o) - 0x00003250 0x00003250 0x00000002 Code RO 4094 i.__scatterload_null mc_p.l(handlers.o) - 0x00003252 0x00003252 0x0000000e Code RO 4095 i.__scatterload_zeroinit mc_p.l(handlers.o) - 0x00003260 0x00003260 0x00000174 Code RO 4012 i._fp_digits mc_p.l(printfa.o) - 0x000033d4 0x000033d4 0x000006f0 Code RO 4013 i._printf_core mc_p.l(printfa.o) - 0x00003ac4 0x00003ac4 0x00000020 Code RO 4014 i._printf_post_padding mc_p.l(printfa.o) - 0x00003ae4 0x00003ae4 0x0000002c Code RO 4015 i._printf_pre_padding mc_p.l(printfa.o) - 0x00003b10 0x00003b10 0x00000014 Code RO 921 i.a_ds3231_bcd2hex driver_ds3231.o - 0x00003b24 0x00003b24 0x00000022 Code RO 922 i.a_ds3231_hex2bcd driver_ds3231.o - 0x00003b46 0x00003b46 0x00000024 Code RO 923 i.a_ds3231_iic_multiple_read driver_ds3231.o - 0x00003b6a 0x00003b6a 0x0000001e Code RO 924 i.a_ds3231_iic_write driver_ds3231.o - 0x00003b88 0x00003b88 0x00000034 Code RO 926 i.ds3231_aging_offset_convert_to_register driver_ds3231.o - 0x00003bbc 0x00003bbc 0x0000001c Code RO 1128 i.ds3231_basic_get_time driver_ds3231_basic.o - 0x00003bd8 0x00003bd8 0x00000294 Code RO 1131 i.ds3231_basic_init driver_ds3231_basic.o - 0x00003e6c 0x00003e6c 0x0000001c Code RO 1132 i.ds3231_basic_set_time driver_ds3231_basic.o - 0x00003e88 0x00003e88 0x0000004c Code RO 928 i.ds3231_deinit driver_ds3231.o - 0x00003ed4 0x00003ed4 0x0000010c Code RO 940 i.ds3231_get_time driver_ds3231.o - 0x00003fe0 0x00003fe0 0x000001ec Code RO 942 i.ds3231_init driver_ds3231.o - 0x000041cc 0x000041cc 0x00000002 Code RO 1200 i.ds3231_interface_debug_print driver_ds3231_interface_template.o - 0x000041ce 0x000041ce 0x0000000c Code RO 1201 i.ds3231_interface_delay_ms driver_ds3231_interface_template.o - 0x000041da 0x000041da 0x00000004 Code RO 1202 i.ds3231_interface_iic_deinit driver_ds3231_interface_template.o - 0x000041de 0x000041de 0x00000004 Code RO 1203 i.ds3231_interface_iic_init driver_ds3231_interface_template.o - 0x000041e2 0x000041e2 0x00000022 Code RO 1204 i.ds3231_interface_iic_read driver_ds3231_interface_template.o - 0x00004204 0x00004204 0x0000002e Code RO 1205 i.ds3231_interface_iic_write driver_ds3231_interface_template.o - 0x00004232 0x00004232 0x00000002 PAD - 0x00004234 0x00004234 0x00000054 Code RO 1206 i.ds3231_interface_receive_callback driver_ds3231_interface_template.o - 0x00004288 0x00004288 0x000000ac Code RO 944 i.ds3231_set_32khz_output driver_ds3231.o - 0x00004334 0x00004334 0x00000058 Code RO 945 i.ds3231_set_aging_offset driver_ds3231.o - 0x0000438c 0x0000438c 0x000000b0 Code RO 948 i.ds3231_set_alarm_interrupt driver_ds3231.o - 0x0000443c 0x0000443c 0x000000b4 Code RO 949 i.ds3231_set_oscillator driver_ds3231.o - 0x000044f0 0x000044f0 0x000000ac Code RO 950 i.ds3231_set_pin driver_ds3231.o - 0x0000459c 0x0000459c 0x000000ac Code RO 952 i.ds3231_set_square_wave driver_ds3231.o - 0x00004648 0x00004648 0x00000514 Code RO 953 i.ds3231_set_time driver_ds3231.o - 0x00004b5c 0x00004b5c 0x00000010 Code RO 288 i.fputc dbg_printf.o - 0x00004b6c 0x00004b6c 0x00000080 Code RO 187 i.main main.o - 0x00004bec 0x00004bec 0x0000000c Code RO 347 i.millis systick_timer.o - 0x00004bf8 0x00004bf8 0x0000001c Code RO 188 i.timer_test main.o - 0x00004c14 0x00004c14 0x0000003c Code RO 2709 i.uart_set_divisors a31g12x_hal_uartn.o - 0x00004c50 0x00004c50 0x00000040 Code RO 2815 i.usart_set_divisors a31g12x_hal_usart1n.o - 0x00004c90 0x00004c90 0x00000026 Data RO 1474 .constdata segment.o - 0x00004cb6 0x00004cb6 0x00000002 PAD - 0x00004cb8 0x00004cb8 0x00000020 Data RO 4091 Region$$Table anon$$obj.o - - - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x00004cd8, Size: 0x00000a98, Max: 0x00001800, ABSOLUTE, COMPRESSED[0x00000044]) + 0x00000000 0x00000000 0x000000b0 Data RO 3117 RESET startup_a31g12x.o + 0x000000b0 0x000000b0 0x00000000 Code RO 3831 * .ARM.Collect$$$$00000000 mc_p.l(entry.o) + 0x000000b0 0x000000b0 0x00000004 Code RO 4124 .ARM.Collect$$$$00000001 mc_p.l(entry2.o) + 0x000000b4 0x000000b4 0x00000004 Code RO 4127 .ARM.Collect$$$$00000004 mc_p.l(entry5.o) + 0x000000b8 0x000000b8 0x00000000 Code RO 4129 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o) + 0x000000b8 0x000000b8 0x00000000 Code RO 4131 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o) + 0x000000b8 0x000000b8 0x00000008 Code RO 4132 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o) + 0x000000c0 0x000000c0 0x00000004 Code RO 4139 .ARM.Collect$$$$0000000E mc_p.l(entry12b.o) + 0x000000c4 0x000000c4 0x00000000 Code RO 4134 .ARM.Collect$$$$0000000F mc_p.l(entry10a.o) + 0x000000c4 0x000000c4 0x00000000 Code RO 4136 .ARM.Collect$$$$00000011 mc_p.l(entry11a.o) + 0x000000c4 0x000000c4 0x00000004 Code RO 4125 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) + 0x000000c8 0x000000c8 0x0000001c Code RO 3118 .text startup_a31g12x.o + 0x000000e4 0x000000e4 0x0000002c Code RO 3834 .text mc_p.l(uidiv.o) + 0x00000110 0x00000110 0x00000028 Code RO 3836 .text mc_p.l(idiv.o) + 0x00000138 0x00000138 0x00000024 Code RO 3845 .text mc_p.l(memcpya.o) + 0x0000015c 0x0000015c 0x00000024 Code RO 3847 .text mc_p.l(memseta.o) + 0x00000180 0x00000180 0x0000000e Code RO 3851 .text mc_p.l(strlen.o) + 0x0000018e 0x0000018e 0x0000007c Code RO 4118 .text mf_p.l(fdiv.o) + 0x0000020a 0x0000020a 0x00000032 Code RO 4122 .text mf_p.l(ffixi.o) + 0x0000023c 0x0000023c 0x00000060 Code RO 4141 .text mc_p.l(uldiv.o) + 0x0000029c 0x0000029c 0x00000000 Code RO 4149 .text mc_p.l(iusefp.o) + 0x0000029c 0x0000029c 0x00000082 Code RO 4150 .text mf_p.l(fepilogue.o) + 0x0000031e 0x0000031e 0x00000002 PAD + 0x00000320 0x00000320 0x00000168 Code RO 4152 .text mf_p.l(dadd.o) + 0x00000488 0x00000488 0x000000d0 Code RO 4154 .text mf_p.l(dmul.o) + 0x00000558 0x00000558 0x000000f0 Code RO 4156 .text mf_p.l(ddiv.o) + 0x00000648 0x00000648 0x00000040 Code RO 4158 .text mf_p.l(dfixul.o) + 0x00000688 0x00000688 0x00000028 Code RO 4160 .text mf_p.l(cdrcmple.o) + 0x000006b0 0x000006b0 0x00000024 Code RO 4162 .text mc_p.l(init.o) + 0x000006d4 0x000006d4 0x00000020 Code RO 4164 .text mc_p.l(llshl.o) + 0x000006f4 0x000006f4 0x00000022 Code RO 4166 .text mc_p.l(llushr.o) + 0x00000716 0x00000716 0x00000026 Code RO 4168 .text mc_p.l(llsshr.o) + 0x0000073c 0x0000073c 0x000000be Code RO 4170 .text mf_p.l(depilogue.o) + 0x000007fa 0x000007fa 0x00000056 Code RO 4182 .text mc_p.l(__dczerorl2.o) + 0x00000850 0x00000850 0x00000104 Code RO 1294 i.Action_Down_Key_Push action_process.o + 0x00000954 0x00000954 0x00000014 Code RO 1295 i.Action_Get_SensorData action_process.o + 0x00000968 0x00000968 0x00000100 Code RO 1296 i.Action_Get_SensorReadProcess action_process.o + 0x00000a68 0x00000a68 0x00000054 Code RO 1297 i.Action_Initialization action_process.o + 0x00000abc 0x00000abc 0x00000100 Code RO 1298 i.Action_Mode_Key_Push action_process.o + 0x00000bbc 0x00000bbc 0x000000f0 Code RO 1299 i.Action_PowerOn_Init_Process action_process.o + 0x00000cac 0x00000cac 0x00000190 Code RO 1300 i.Action_PowerOn_Process action_process.o + 0x00000e3c 0x00000e3c 0x00000014 Code RO 1301 i.Action_Power_Off_Key_Push_Callback action_process.o + 0x00000e50 0x00000e50 0x00000020 Code RO 1302 i.Action_Power_Off_Key_Set action_process.o + 0x00000e70 0x00000e70 0x00000018 Code RO 1303 i.Action_Power_On_Key_Push_Callback action_process.o + 0x00000e88 0x00000e88 0x00000020 Code RO 1304 i.Action_Power_On_Key_Set action_process.o + 0x00000ea8 0x00000ea8 0x00000024 Code RO 1305 i.Action_Process action_process.o + 0x00000ecc 0x00000ecc 0x00000054 Code RO 1306 i.Action_ReturnMainViewCheck action_process.o + 0x00000f20 0x00000f20 0x00000134 Code RO 1307 i.Action_SaveSensorData action_process.o + 0x00001054 0x00001054 0x000000b4 Code RO 1308 i.Action_Set_Key_Push action_process.o + 0x00001108 0x00001108 0x000000f8 Code RO 1309 i.Action_Up_Key_Push action_process.o + 0x00001200 0x00001200 0x0000002c Code RO 1439 i.Buzzer_Initialization buzzer.o + 0x0000122c 0x0000122c 0x00000024 Code RO 1440 i.Buzzer_On buzzer.o + 0x00001250 0x00001250 0x00000050 Code RO 1441 i.Buzzer_Output_Process buzzer.o + 0x000012a0 0x000012a0 0x0000000e Code RO 691 i.Delay_I2C_Delay gpio_i2c.o + 0x000012ae 0x000012ae 0x00000002 PAD + 0x000012b0 0x000012b0 0x00000014 Code RO 350 i.Delay_ms systick_timer.o + 0x000012c4 0x000012c4 0x000000a4 Code RO 1393 i.EEPROM_Read_SettingValue eeprom.o + 0x00001368 0x00001368 0x000000c0 Code RO 1394 i.EEPROM_Write_SettingValue eeprom.o + 0x00001428 0x00001428 0x00000012 Code RO 3787 i.FATFS_LinkDriver ff_gen_drv.o + 0x0000143a 0x0000143a 0x00000002 PAD + 0x0000143c 0x0000143c 0x00000054 Code RO 3788 i.FATFS_LinkDriverEx ff_gen_drv.o + 0x00001490 0x00001490 0x0000000e Code RO 3789 i.FATFS_UnLinkDriver ff_gen_drv.o + 0x0000149e 0x0000149e 0x00000002 PAD + 0x000014a0 0x000014a0 0x00000044 Code RO 3790 i.FATFS_UnLinkDriverEx ff_gen_drv.o + 0x000014e4 0x000014e4 0x00000010 Code RO 1395 i.FlashMEM_Clock_Initialization eeprom.o + 0x000014f4 0x000014f4 0x00000014 Code RO 1396 i.FlashMem_Do_PageEr eeprom.o + 0x00001508 0x00001508 0x00000018 Code RO 1397 i.FlashMem_Do_PageWt eeprom.o + 0x00001520 0x00001520 0x00000040 Code RO 702 i.GPIO_I2C2_Initialization gpio_i2c.o + 0x00001560 0x00001560 0x00000094 Code RO 703 i.GPIO_I2C2_Read gpio_i2c.o + 0x000015f4 0x000015f4 0x0000004c Code RO 704 i.GPIO_I2C2_Start gpio_i2c.o + 0x00001640 0x00001640 0x00000040 Code RO 705 i.GPIO_I2C2_Stop gpio_i2c.o + 0x00001680 0x00001680 0x00000094 Code RO 706 i.GPIO_I2C2_Write gpio_i2c.o + 0x00001714 0x00001714 0x00000048 Code RO 456 i.Gpio_Led_OutputSet gpio_state_led.o + 0x0000175c 0x0000175c 0x00000024 Code RO 1472 i.Gpio_Sensor_PWR_Initialization gpio_sensor.o + 0x00001780 0x00001780 0x0000006c Code RO 457 i.Gpio_StateLed_Initialization gpio_state_led.o + 0x000017ec 0x000017ec 0x00000144 Code RO 499 i.Gpio_Switch_Check_Process gpio_switch.o + 0x00001930 0x00001930 0x00000078 Code RO 500 i.Gpio_Switch_Port_Initialization gpio_switch.o + 0x000019a8 0x000019a8 0x00000020 Code RO 501 i.Gpio_Switch_TestCallback gpio_switch.o + 0x000019c8 0x000019c8 0x00000028 Code RO 502 i.Gpio_Swtich_Set_Callback gpio_switch.o + 0x000019f0 0x000019f0 0x00000020 Code RO 503 i.Gpio_Swtich_Set_PushCount gpio_switch.o + 0x00001a10 0x00001a10 0x0000000e Code RO 1812 i.HAL_CRC_Init a31g12x_hal_crc.o + 0x00001a1e 0x00001a1e 0x00000002 PAD + 0x00001a20 0x00001a20 0x00000060 Code RO 1967 i.HAL_FMC_FlashEntry a31g12x_hal_fmc.o + 0x00001a80 0x00001a80 0x00000038 Code RO 1968 i.HAL_FMC_FlashExit a31g12x_hal_fmc.o + 0x00001ab8 0x00001ab8 0x000001a8 Code RO 1969 i.HAL_FMC_FlashFunction a31g12x_hal_fmc.o + 0x00001c60 0x00001c60 0x00000040 Code RO 1970 i.HAL_FMC_PageErase a31g12x_hal_fmc.o + 0x00001ca0 0x00001ca0 0x00000040 Code RO 1971 i.HAL_FMC_PageWrite a31g12x_hal_fmc.o + 0x00001ce0 0x00001ce0 0x00000004 Code RO 2271 i.HAL_GPIO_ClearPin a31g12x_hal_pcu.o + 0x00001ce4 0x00001ce4 0x00000044 Code RO 2272 i.HAL_GPIO_ConfigFunction a31g12x_hal_pcu.o + 0x00001d28 0x00001d28 0x00000046 Code RO 2274 i.HAL_GPIO_ConfigOutput a31g12x_hal_pcu.o + 0x00001d6e 0x00001d6e 0x0000001e Code RO 2275 i.HAL_GPIO_ConfigPullup a31g12x_hal_pcu.o + 0x00001d8c 0x00001d8c 0x00000008 Code RO 2277 i.HAL_GPIO_ReadPin a31g12x_hal_pcu.o + 0x00001d94 0x00001d94 0x00000016 Code RO 2278 i.HAL_GPIO_SetDebouncePin a31g12x_hal_pcu.o + 0x00001daa 0x00001daa 0x00000004 Code RO 2279 i.HAL_GPIO_SetPin a31g12x_hal_pcu.o + 0x00001dae 0x00001dae 0x00000002 PAD + 0x00001db0 0x00001db0 0x00000010 Code RO 2167 i.HAL_INT_EInt_MaskDisable a31g12x_hal_intc.o + 0x00001dc0 0x00001dc0 0x0000003c Code RO 2378 i.HAL_SCU_ClockMonitoring a31g12x_hal_scu.o + 0x00001dfc 0x00001dfc 0x00000024 Code RO 2383 i.HAL_SCU_ClockSource_Enable a31g12x_hal_scu.o + 0x00001e20 0x00001e20 0x0000000c Code RO 2386 i.HAL_SCU_Peripheral_ClockConfig a31g12x_hal_scu.o + 0x00001e2c 0x00001e2c 0x00000020 Code RO 2388 i.HAL_SCU_Peripheral_EnableClock1 a31g12x_hal_scu.o + 0x00001e4c 0x00001e4c 0x00000020 Code RO 2389 i.HAL_SCU_Peripheral_EnableClock2 a31g12x_hal_scu.o + 0x00001e6c 0x00001e6c 0x0000001c Code RO 2392 i.HAL_SCU_Peripheral_SetReset2 a31g12x_hal_scu.o + 0x00001e88 0x00001e88 0x00000014 Code RO 2398 i.HAL_SCU_SystemClockChange a31g12x_hal_scu.o + 0x00001e9c 0x00001e9c 0x0000000c Code RO 2399 i.HAL_SCU_SystemClockDivider a31g12x_hal_scu.o + 0x00001ea8 0x00001ea8 0x00000026 Code RO 2555 i.HAL_TIMER1n_Cmd a31g12x_hal_timer1n.o + 0x00001ece 0x00001ece 0x00000038 Code RO 2556 i.HAL_TIMER1n_ConfigInterrupt a31g12x_hal_timer1n.o + 0x00001f06 0x00001f06 0x00000002 PAD + 0x00001f08 0x00001f08 0x00000168 Code RO 2558 i.HAL_TIMER1n_Init a31g12x_hal_timer1n.o + 0x00002070 0x00002070 0x0000004c Code RO 2778 i.HAL_UART_ConfigInterrupt a31g12x_hal_uartn.o + 0x000020bc 0x000020bc 0x0000001e Code RO 2779 i.HAL_UART_ConfigStructInit a31g12x_hal_uartn.o + 0x000020da 0x000020da 0x00000002 PAD + 0x000020dc 0x000020dc 0x00000104 Code RO 2785 i.HAL_UART_Init a31g12x_hal_uartn.o + 0x000021e0 0x000021e0 0x00000074 Code RO 2786 i.HAL_UART_Receive a31g12x_hal_uartn.o + 0x00002254 0x00002254 0x00000008 Code RO 2787 i.HAL_UART_ReceiveByte a31g12x_hal_uartn.o + 0x0000225c 0x0000225c 0x00000080 Code RO 2788 i.HAL_UART_Transmit a31g12x_hal_uartn.o + 0x000022dc 0x000022dc 0x00000010 Code RO 2789 i.HAL_UART_TransmitByte a31g12x_hal_uartn.o + 0x000022ec 0x000022ec 0x00000014 Code RO 2881 i.HAL_USART_CheckBusy a31g12x_hal_usart1n.o + 0x00002300 0x00002300 0x0000003a Code RO 2882 i.HAL_USART_ClearStatus a31g12x_hal_usart1n.o + 0x0000233a 0x0000233a 0x0000004c Code RO 2883 i.HAL_USART_ConfigInterrupt a31g12x_hal_usart1n.o + 0x00002386 0x00002386 0x0000006a Code RO 2884 i.HAL_USART_DataControlConfig a31g12x_hal_usart1n.o + 0x000023f0 0x000023f0 0x00000026 Code RO 2886 i.HAL_USART_Enable a31g12x_hal_usart1n.o + 0x00002416 0x00002416 0x00000008 Code RO 2887 i.HAL_USART_GetStatus a31g12x_hal_usart1n.o + 0x0000241e 0x0000241e 0x00000002 PAD + 0x00002420 0x00002420 0x000000f4 Code RO 2888 i.HAL_USART_Init a31g12x_hal_usart1n.o + 0x00002514 0x00002514 0x00000072 Code RO 2889 i.HAL_USART_Receive a31g12x_hal_usart1n.o + 0x00002586 0x00002586 0x00000008 Code RO 2890 i.HAL_USART_ReceiveByte a31g12x_hal_usart1n.o + 0x0000258e 0x0000258e 0x00000028 Code RO 2891 i.HAL_USART_SPI_Mode_Config a31g12x_hal_usart1n.o + 0x000025b6 0x000025b6 0x00000084 Code RO 2892 i.HAL_USART_Transmit a31g12x_hal_usart1n.o + 0x0000263a 0x0000263a 0x00000010 Code RO 2893 i.HAL_USART_TransmitByte a31g12x_hal_usart1n.o + 0x0000264a 0x0000264a 0x00000022 Code RO 2894 i.HAL_USART_UART_Mode_Config a31g12x_hal_usart1n.o + 0x0000266c 0x0000266c 0x00000004 Code RO 1 i.HardFault_Handler a31g12x_interrupt.o + 0x00002670 0x00002670 0x0000003c Code RO 711 i.I2C2_Read gpio_i2c.o + 0x000026ac 0x000026ac 0x0000002e Code RO 712 i.I2C2_Write gpio_i2c.o + 0x000026da 0x000026da 0x00000002 PAD + 0x000026dc 0x000026dc 0x0000000c Code RO 1687 i.KCD_HP100_GetState kcd_hp100.o + 0x000026e8 0x000026e8 0x00000028 Code RO 1688 i.KCD_HP100_Get_Co2 kcd_hp100.o + 0x00002710 0x00002710 0x00000028 Code RO 1689 i.KCD_HP100_Initialization kcd_hp100.o + 0x00002738 0x00002738 0x0000007c Code RO 1690 i.KCD_HP100_Tx_Get_MeasurmentData kcd_hp100.o + 0x000027b4 0x000027b4 0x0000001c Code RO 1691 i.KCD_HP_Calc_Checksum kcd_hp100.o + 0x000027d0 0x000027d0 0x0000013c Code RO 1692 i.KCD_HP_Rx_PacketRecv_Process kcd_hp100.o + 0x0000290c 0x0000290c 0x0000001c Code RO 3171 i.MX_FATFS_Init fatfs.o + 0x00002928 0x00002928 0x00000002 Code RO 2 i.NMI_Handler a31g12x_interrupt.o + 0x0000292a 0x0000292a 0x00000002 PAD + 0x0000292c 0x0000292c 0x00000078 Code RO 38 i.NVIC_SetPriority a31g12x_systemclock.o + 0x000029a4 0x000029a4 0x00000078 Code RO 543 i.NVIC_SetPriority uart1.o + 0x00002a1c 0x00002a1c 0x00000078 Code RO 652 i.NVIC_SetPriority timer12.o + 0x00002a94 0x00002a94 0x00000078 Code RO 1620 i.NVIC_SetPriority usart11_rs485.o + 0x00002b0c 0x00002b0c 0x00000002 Code RO 3 i.PendSV_Handler a31g12x_interrupt.o + 0x00002b0e 0x00002b0e 0x00000002 PAD + 0x00002b10 0x00002b10 0x00000058 Code RO 1261 i.RTC_Get_IC_Time_Process rtc_process.o + 0x00002b68 0x00002b68 0x00000014 Code RO 1262 i.RTC_Get_Time rtc_process.o + 0x00002b7c 0x00002b7c 0x0000001c Code RO 1263 i.RTC_Process_Initialization rtc_process.o + 0x00002b98 0x00002b98 0x0000003e Code RO 386 i.RingBuffer_Dequeue ring_buffer.o + 0x00002bd6 0x00002bd6 0x00000040 Code RO 387 i.RingBuffer_Enqueue ring_buffer.o + 0x00002c16 0x00002c16 0x0000000e Code RO 388 i.RingBuffer_GetData ring_buffer.o + 0x00002c24 0x00002c24 0x00000032 Code RO 389 i.RingBuffer_Get_DataSize ring_buffer.o + 0x00002c56 0x00002c56 0x00000026 Code RO 390 i.RingBuffer_Initialization ring_buffer.o + 0x00002c7c 0x00002c7c 0x00000026 Code RO 391 i.RingBuffer_PopData ring_buffer.o + 0x00002ca2 0x00002ca2 0x00000012 Code RO 392 i.RingBuffer_isEmpty ring_buffer.o + 0x00002cb4 0x00002cb4 0x00000024 Code RO 393 i.RingBuffer_isFull ring_buffer.o + 0x00002cd8 0x00002cd8 0x000000f4 Code RO 837 i.SPI10_Initialization spi10.o + 0x00002dcc 0x00002dcc 0x00000030 Code RO 838 i.SPI10_SendReceiveByte spi10.o + 0x00002dfc 0x00002dfc 0x0000003c Code RO 840 i.SPI10_Transmit spi10.o + 0x00002e38 0x00002e38 0x000000bc Code RO 1582 i.SPI13_Initialization spi13.o + 0x00002ef4 0x00002ef4 0x0000003c Code RO 1585 i.SPI13_Transmit spi13.o + 0x00002f30 0x00002f30 0x0000001c Code RO 3279 i.SPI_Timer_On user_diskio_spi.o + 0x00002f4c 0x00002f4c 0x00000024 Code RO 3280 i.SPI_Timer_Status user_diskio_spi.o + 0x00002f70 0x00002f70 0x00000002 Code RO 4 i.SVC_Handler a31g12x_interrupt.o + 0x00002f72 0x00002f72 0x00000002 PAD + 0x00002f74 0x00002f74 0x00000080 Code RO 316 i.SW_Timer_Callback_Process sw_timer.o + 0x00002ff4 0x00002ff4 0x00000054 Code RO 317 i.SW_Timer_Callback_Register sw_timer.o + 0x00003048 0x00003048 0x00000228 Code RO 875 i.Save_SensorData_SDCard save_file.o + 0x00003270 0x00003270 0x000000d0 Code RO 613 i.Segemet_Output_Process segment_74hc595d.o + 0x00003340 0x00003340 0x00000020 Code RO 1492 i.Segment_All_Set_Data segment.o + 0x00003360 0x00003360 0x00000048 Code RO 614 i.Segment_Initialization segment_74hc595d.o + 0x000033a8 0x000033a8 0x00000010 Code RO 615 i.Segment_Output_Data segment_74hc595d.o + 0x000033b8 0x000033b8 0x000001ac Code RO 1494 i.Segment_Show_SensorData segment.o + 0x00003564 0x00003564 0x00000120 Code RO 1495 i.Segment_Show_SettingData segment.o + 0x00003684 0x00003684 0x00000080 Code RO 1496 i.Segment_Show_Time segment.o + 0x00003704 0x00003704 0x00000080 Code RO 1497 i.Segment_Show_Version segment.o + 0x00003784 0x00003784 0x00000028 Code RO 458 i.State_Led_Off gpio_state_led.o + 0x000037ac 0x000037ac 0x00000028 Code RO 459 i.State_Led_On gpio_state_led.o + 0x000037d4 0x000037d4 0x00000084 Code RO 460 i.State_Led_Output_Process gpio_state_led.o + 0x00003858 0x00003858 0x00000028 Code RO 351 i.SysTick_Handler systick_timer.o + 0x00003880 0x00003880 0x00000024 Code RO 3125 i.SystemInit system_a31g12x.o + 0x000038a4 0x000038a4 0x00000050 Code RO 39 i.System_Clock_Initialization a31g12x_systemclock.o + 0x000038f4 0x000038f4 0x00000058 Code RO 40 i.Systick_Initialization a31g12x_systemclock.o + 0x0000394c 0x0000394c 0x00000034 Code RO 653 i.TIMER12_Handler timer12.o + 0x00003980 0x00003980 0x0000005c Code RO 654 i.Timer12_Initialization timer12.o + 0x000039dc 0x000039dc 0x0000000c Code RO 655 i.Timer12_Set_Match_Interrupt_Callback timer12.o + 0x000039e8 0x000039e8 0x00000028 Code RO 544 i.UART1_Handler uart1.o + 0x00003a10 0x00003a10 0x00000020 Code RO 1621 i.USART11_Handler usart11_rs485.o + 0x00003a30 0x00003a30 0x00000160 Code RO 3348 i.USER_SPI_initialize user_diskio_spi.o + 0x00003b90 0x00003b90 0x00000240 Code RO 3372 i.USER_SPI_ioctl user_diskio_spi.o + 0x00003dd0 0x00003dd0 0x000000a0 Code RO 3360 i.USER_SPI_read user_diskio_spi.o + 0x00003e70 0x00003e70 0x00000014 Code RO 3354 i.USER_SPI_status user_diskio_spi.o + 0x00003e84 0x00003e84 0x000000c8 Code RO 3366 i.USER_SPI_write user_diskio_spi.o + 0x00003f4c 0x00003f4c 0x0000000c Code RO 3213 i.USER_initialize user_diskio.o + 0x00003f58 0x00003f58 0x00000014 Code RO 3214 i.USER_ioctl user_diskio.o + 0x00003f6c 0x00003f6c 0x00000018 Code RO 3215 i.USER_read user_diskio.o + 0x00003f84 0x00003f84 0x0000000c Code RO 3216 i.USER_status user_diskio.o + 0x00003f90 0x00003f90 0x00000018 Code RO 3217 i.USER_write user_diskio.o + 0x00003fa8 0x00003fa8 0x00000014 Code RO 545 i.Uart1_Get_RecvData uart1.o + 0x00003fbc 0x00003fbc 0x00000010 Code RO 546 i.Uart1_Get_RecvDataCount uart1.o + 0x00003fcc 0x00003fcc 0x000000c0 Code RO 547 i.Uart1_Initialization uart1.o + 0x0000408c 0x0000408c 0x00000034 Code RO 548 i.Uart1_Receive_Handler uart1.o + 0x000040c0 0x000040c0 0x00000014 Code RO 549 i.Uart1_Transmit uart1.o + 0x000040d4 0x000040d4 0x00000038 Code RO 551 i.Uart1_Transmit_Process uart1.o + 0x0000410c 0x0000410c 0x0000001c Code RO 1549 i.Uart_Packet_Initialization uart_packet.o + 0x00004128 0x00004128 0x00000144 Code RO 1550 i.Uart_Packet_Make_Process uart_packet.o + 0x0000426c 0x0000426c 0x00000096 Code RO 1551 i.Uart_Packet_Process uart_packet.o + 0x00004302 0x00004302 0x00000002 PAD + 0x00004304 0x00004304 0x00000014 Code RO 1622 i.Usart11_Get_RecvData usart11_rs485.o + 0x00004318 0x00004318 0x00000010 Code RO 1623 i.Usart11_Get_RecvDataCount usart11_rs485.o + 0x00004328 0x00004328 0x000000e4 Code RO 1624 i.Usart11_Initialization usart11_rs485.o + 0x0000440c 0x0000440c 0x00000034 Code RO 1625 i.Usart11_Receive_Handler usart11_rs485.o + 0x00004440 0x00004440 0x00000020 Code RO 1627 i.Usart11_TransmitData usart11_rs485.o + 0x00004460 0x00004460 0x0000007c Code RO 1628 i.Usart11_Transmit_Process usart11_rs485.o + 0x000044dc 0x000044dc 0x00000020 Code RO 4088 i.__0printf mc_p.l(printfa.o) + 0x000044fc 0x000044fc 0x00000028 Code RO 4090 i.__0sprintf mc_p.l(printfa.o) + 0x00004524 0x00004524 0x0000002e Code RO 4172 i.__ARM_clz mf_p.l(depilogue.o) + 0x00004552 0x00004552 0x0000001c Code RO 642 i.__ARM_common_switch8 segment_74hc595d.o + 0x0000456e 0x0000456e 0x0000000e Code RO 4176 i.__scatterload_copy mc_p.l(handlers.o) + 0x0000457c 0x0000457c 0x00000002 Code RO 4177 i.__scatterload_null mc_p.l(handlers.o) + 0x0000457e 0x0000457e 0x0000000e Code RO 4178 i.__scatterload_zeroinit mc_p.l(handlers.o) + 0x0000458c 0x0000458c 0x00000174 Code RO 4095 i._fp_digits mc_p.l(printfa.o) + 0x00004700 0x00004700 0x000006f0 Code RO 4096 i._printf_core mc_p.l(printfa.o) + 0x00004df0 0x00004df0 0x00000020 Code RO 4097 i._printf_post_padding mc_p.l(printfa.o) + 0x00004e10 0x00004e10 0x0000002c Code RO 4098 i._printf_pre_padding mc_p.l(printfa.o) + 0x00004e3c 0x00004e3c 0x0000000a Code RO 4100 i._sputc mc_p.l(printfa.o) + 0x00004e46 0x00004e46 0x00000014 Code RO 926 i.a_ds3231_bcd2hex driver_ds3231.o + 0x00004e5a 0x00004e5a 0x00000022 Code RO 927 i.a_ds3231_hex2bcd driver_ds3231.o + 0x00004e7c 0x00004e7c 0x00000024 Code RO 928 i.a_ds3231_iic_multiple_read driver_ds3231.o + 0x00004ea0 0x00004ea0 0x0000001e Code RO 929 i.a_ds3231_iic_write driver_ds3231.o + 0x00004ebe 0x00004ebe 0x00000002 PAD + 0x00004ec0 0x00004ec0 0x000000a4 Code RO 3452 i.check_fs ff.o + 0x00004f64 0x00004f64 0x00000016 Code RO 3453 i.chk_chr ff.o + 0x00004f7a 0x00004f7a 0x00000002 PAD + 0x00004f7c 0x00004f7c 0x00000098 Code RO 3454 i.chk_lock ff.o + 0x00005014 0x00005014 0x0000002c Code RO 3455 i.clear_lock ff.o + 0x00005040 0x00005040 0x00000046 Code RO 3456 i.clmt_clust ff.o + 0x00005086 0x00005086 0x00000002 PAD + 0x00005088 0x00005088 0x00000028 Code RO 3457 i.clust2sect ff.o + 0x000050b0 0x000050b0 0x00000104 Code RO 3458 i.create_chain ff.o + 0x000051b4 0x000051b4 0x00000128 Code RO 3459 i.create_name ff.o + 0x000052dc 0x000052dc 0x0000004c Code RO 3460 i.dec_lock ff.o + 0x00005328 0x00005328 0x00000014 Code RO 3281 i.despiselect user_diskio_spi.o + 0x0000533c 0x0000533c 0x0000006e Code RO 3461 i.dir_alloc ff.o + 0x000053aa 0x000053aa 0x00000072 Code RO 3462 i.dir_find ff.o + 0x0000541c 0x0000541c 0x000001bc Code RO 3463 i.dir_next ff.o + 0x000055d8 0x000055d8 0x00000058 Code RO 3465 i.dir_register ff.o + 0x00005630 0x00005630 0x00000108 Code RO 3467 i.dir_sdi ff.o + 0x00005738 0x00005738 0x00000030 Code RO 3389 i.disk_initialize diskio.o + 0x00005768 0x00005768 0x00000024 Code RO 3390 i.disk_ioctl diskio.o + 0x0000578c 0x0000578c 0x0000002c Code RO 3391 i.disk_read diskio.o + 0x000057b8 0x000057b8 0x0000001c Code RO 3392 i.disk_status diskio.o + 0x000057d4 0x000057d4 0x0000002c Code RO 3393 i.disk_write diskio.o + 0x00005800 0x00005800 0x00000034 Code RO 931 i.ds3231_aging_offset_convert_to_register driver_ds3231.o + 0x00005834 0x00005834 0x0000001c Code RO 1133 i.ds3231_basic_get_time driver_ds3231_basic.o + 0x00005850 0x00005850 0x00000294 Code RO 1136 i.ds3231_basic_init driver_ds3231_basic.o + 0x00005ae4 0x00005ae4 0x0000001c Code RO 1137 i.ds3231_basic_set_time driver_ds3231_basic.o + 0x00005b00 0x00005b00 0x0000004c Code RO 933 i.ds3231_deinit driver_ds3231.o + 0x00005b4c 0x00005b4c 0x0000010c Code RO 945 i.ds3231_get_time driver_ds3231.o + 0x00005c58 0x00005c58 0x000001ec Code RO 947 i.ds3231_init driver_ds3231.o + 0x00005e44 0x00005e44 0x00000002 Code RO 1205 i.ds3231_interface_debug_print driver_ds3231_interface_template.o + 0x00005e46 0x00005e46 0x0000000c Code RO 1206 i.ds3231_interface_delay_ms driver_ds3231_interface_template.o + 0x00005e52 0x00005e52 0x00000004 Code RO 1207 i.ds3231_interface_iic_deinit driver_ds3231_interface_template.o + 0x00005e56 0x00005e56 0x00000004 Code RO 1208 i.ds3231_interface_iic_init driver_ds3231_interface_template.o + 0x00005e5a 0x00005e5a 0x00000022 Code RO 1209 i.ds3231_interface_iic_read driver_ds3231_interface_template.o + 0x00005e7c 0x00005e7c 0x0000002e Code RO 1210 i.ds3231_interface_iic_write driver_ds3231_interface_template.o + 0x00005eaa 0x00005eaa 0x00000002 PAD + 0x00005eac 0x00005eac 0x00000054 Code RO 1211 i.ds3231_interface_receive_callback driver_ds3231_interface_template.o + 0x00005f00 0x00005f00 0x000000ac Code RO 949 i.ds3231_set_32khz_output driver_ds3231.o + 0x00005fac 0x00005fac 0x00000058 Code RO 950 i.ds3231_set_aging_offset driver_ds3231.o + 0x00006004 0x00006004 0x000000b0 Code RO 953 i.ds3231_set_alarm_interrupt driver_ds3231.o + 0x000060b4 0x000060b4 0x000000b4 Code RO 954 i.ds3231_set_oscillator driver_ds3231.o + 0x00006168 0x00006168 0x000000ac Code RO 955 i.ds3231_set_pin driver_ds3231.o + 0x00006214 0x00006214 0x000000ac Code RO 957 i.ds3231_set_square_wave driver_ds3231.o + 0x000062c0 0x000062c0 0x00000514 Code RO 958 i.ds3231_set_time driver_ds3231.o + 0x000067d4 0x000067d4 0x00000028 Code RO 3468 i.enq_lock ff.o + 0x000067fc 0x000067fc 0x00000038 Code RO 3470 i.f_close ff.o + 0x00006834 0x00006834 0x00000036 Code RO 3471 i.f_closedir ff.o + 0x0000686a 0x0000686a 0x00000002 PAD + 0x0000686c 0x0000686c 0x00000450 Code RO 3474 i.f_lseek ff.o + 0x00006cbc 0x00006cbc 0x0000019a Code RO 3475 i.f_mkdir ff.o + 0x00006e56 0x00006e56 0x00000002 PAD + 0x00006e58 0x00006e58 0x00000070 Code RO 3477 i.f_mount ff.o + 0x00006ec8 0x00006ec8 0x0000021c Code RO 3478 i.f_open ff.o + 0x000070e4 0x000070e4 0x000000d2 Code RO 3479 i.f_opendir ff.o + 0x000071b6 0x000071b6 0x00000002 PAD + 0x000071b8 0x000071b8 0x00000100 Code RO 3487 i.f_sync ff.o + 0x000072b8 0x000072b8 0x00000308 Code RO 3491 i.f_write ff.o + 0x000075c0 0x000075c0 0x00000478 Code RO 3492 i.find_volume ff.o + 0x00007a38 0x00007a38 0x000000ae Code RO 3493 i.follow_path ff.o + 0x00007ae6 0x00007ae6 0x00000010 Code RO 293 i.fputc dbg_printf.o + 0x00007af6 0x00007af6 0x00000104 Code RO 3494 i.get_fat ff.o + 0x00007bfa 0x00007bfa 0x00000004 Code RO 3172 i.get_fattime fatfs.o + 0x00007bfe 0x00007bfe 0x0000004c Code RO 3496 i.get_ldnumber ff.o + 0x00007c4a 0x00007c4a 0x00000002 PAD + 0x00007c4c 0x00007c4c 0x000000e4 Code RO 3497 i.inc_lock ff.o + 0x00007d30 0x00007d30 0x00000026 Code RO 3498 i.ld_clust ff.o + 0x00007d56 0x00007d56 0x00000002 PAD + 0x00007d58 0x00007d58 0x00000078 Code RO 187 i.main main.o + 0x00007dd0 0x00007dd0 0x0000002a Code RO 3499 i.mem_cmp ff.o + 0x00007dfa 0x00007dfa 0x0000001a Code RO 3500 i.mem_cpy ff.o + 0x00007e14 0x00007e14 0x00000014 Code RO 3501 i.mem_set ff.o + 0x00007e28 0x00007e28 0x0000000c Code RO 352 i.millis systick_timer.o + 0x00007e34 0x00007e34 0x00000044 Code RO 3502 i.move_window ff.o + 0x00007e78 0x00007e78 0x00000162 Code RO 3503 i.put_fat ff.o + 0x00007fda 0x00007fda 0x00000042 Code RO 3282 i.rcvr_datablock user_diskio_spi.o + 0x0000801c 0x0000801c 0x0000001a Code RO 3283 i.rcvr_spi_multi user_diskio_spi.o + 0x00008036 0x00008036 0x00000002 PAD + 0x00008038 0x00008038 0x0000008c Code RO 3505 i.remove_chain ff.o + 0x000080c4 0x000080c4 0x0000009c Code RO 3284 i.send_cmd user_diskio_spi.o + 0x00008160 0x00008160 0x0000002a Code RO 3285 i.spiselect user_diskio_spi.o + 0x0000818a 0x0000818a 0x00000014 Code RO 3506 i.st_clust ff.o + 0x0000819e 0x0000819e 0x00000002 PAD + 0x000081a0 0x000081a0 0x00000118 Code RO 3507 i.sync_fs ff.o + 0x000082b8 0x000082b8 0x00000074 Code RO 3508 i.sync_window ff.o + 0x0000832c 0x0000832c 0x0000003c Code RO 2790 i.uart_set_divisors a31g12x_hal_uartn.o + 0x00008368 0x00008368 0x00000040 Code RO 2896 i.usart_set_divisors a31g12x_hal_usart1n.o + 0x000083a8 0x000083a8 0x00000060 Code RO 3509 i.validate ff.o + 0x00008408 0x00008408 0x00000030 Code RO 3286 i.wait_ready user_diskio_spi.o + 0x00008438 0x00008438 0x00000010 Code RO 3287 i.xchg_spi user_diskio_spi.o + 0x00008448 0x00008448 0x0000004c Code RO 3288 i.xmit_datablock user_diskio_spi.o + 0x00008494 0x00008494 0x00000010 Code RO 3289 i.xmit_spi_multi user_diskio_spi.o + 0x000084a4 0x000084a4 0x00000026 Data RO 1499 .constdata segment.o + 0x000084ca 0x000084ca 0x000000ac Data RO 3511 .constdata ff.o + 0x00008576 0x00008576 0x00000002 PAD + 0x00008578 0x00008578 0x00000020 Data RO 4174 Region$$Table anon$$obj.o + + + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x00008598, Size: 0x00001480, Max: 0x00001800, ABSOLUTE, COMPRESSED[0x0000005c]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 COMPRESSED 0x00000008 Data RW 348 .data systick_timer.o - 0x20000008 COMPRESSED 0x0000008c Data RW 456 .data gpio_state_led.o - 0x20000094 COMPRESSED 0x00000090 Data RW 499 .data gpio_switch.o - 0x20000124 COMPRESSED 0x00000010 Data RW 612 .data segment_74hc595d.o - 0x20000134 COMPRESSED 0x00000004 Data RW 651 .data timer12.o - 0x20000138 COMPRESSED 0x00000008 Data RW 1259 .data rtc_process.o - 0x20000140 COMPRESSED 0x0000000c Data RW 1418 .data buzzer.o - 0x2000014c COMPRESSED 0x00000003 Data RW 1523 .data uart_packet.o - 0x2000014f COMPRESSED 0x00000001 PAD - 0x20000150 COMPRESSED 0x00000010 Data RW 1891 .data a31g12x_hal_fmc.o - 0x20000160 COMPRESSED 0x0000000c Data RW 2711 .data a31g12x_hal_uartn.o - 0x2000016c COMPRESSED 0x00000004 Data RW 2816 .data a31g12x_hal_usart1n.o - 0x20000170 COMPRESSED 0x0000001c Data RW 3045 .data system_a31g12x.o - 0x2000018c COMPRESSED 0x00000004 Data RW 4057 .data mc_p.l(stdout.o) - 0x20000190 - 0x000000a0 Zero RW 314 .bss sw_timer.o - 0x20000230 - 0x00000154 Zero RW 547 .bss uart1.o - 0x20000384 - 0x00000020 Zero RW 1135 .bss driver_ds3231_basic.o - 0x200003a4 - 0x00000014 Zero RW 1301 .bss action_process.o - 0x200003b8 - 0x00000082 Zero RW 1374 .bss eeprom.o - 0x2000043a - 0x0000000a Zero RW 1473 .bss segment.o - 0x20000444 - 0x00000064 Zero RW 1522 .bss uart_packet.o - 0x200004a8 - 0x000000f0 Zero RW 1599 .bss usart11_rs485.o - 0x20000598 - 0x00000500 Zero RW 3034 STACK startup_a31g12x.o + 0x20000000 COMPRESSED 0x00000008 Data RW 353 .data systick_timer.o + 0x20000008 COMPRESSED 0x0000008c Data RW 461 .data gpio_state_led.o + 0x20000094 COMPRESSED 0x00000090 Data RW 504 .data gpio_switch.o + 0x20000124 COMPRESSED 0x00000010 Data RW 617 .data segment_74hc595d.o + 0x20000134 COMPRESSED 0x00000004 Data RW 656 .data timer12.o + 0x20000138 COMPRESSED 0x00000012 Data RW 877 .data save_file.o + 0x2000014a COMPRESSED 0x00000008 Data RW 1264 .data rtc_process.o + 0x20000152 COMPRESSED 0x00000004 Data RW 1311 .data action_process.o + 0x20000156 COMPRESSED 0x00000002 PAD + 0x20000158 COMPRESSED 0x0000000c Data RW 1442 .data buzzer.o + 0x20000164 COMPRESSED 0x00000003 Data RW 1553 .data uart_packet.o + 0x20000167 COMPRESSED 0x00000001 PAD + 0x20000168 COMPRESSED 0x00000009 Data RW 1694 .data kcd_hp100.o + 0x20000171 COMPRESSED 0x00000003 PAD + 0x20000174 COMPRESSED 0x00000010 Data RW 1972 .data a31g12x_hal_fmc.o + 0x20000184 COMPRESSED 0x0000000c Data RW 2792 .data a31g12x_hal_uartn.o + 0x20000190 COMPRESSED 0x00000004 Data RW 2897 .data a31g12x_hal_usart1n.o + 0x20000194 COMPRESSED 0x0000001c Data RW 3126 .data system_a31g12x.o + 0x200001b0 COMPRESSED 0x00000005 Data RW 3174 .data fatfs.o + 0x200001b5 COMPRESSED 0x00000003 PAD + 0x200001b8 COMPRESSED 0x00000018 Data RW 3218 .data user_diskio.o + 0x200001d0 COMPRESSED 0x0000000c Data RW 3290 .data user_diskio_spi.o + 0x200001dc COMPRESSED 0x00000006 Data RW 3512 .data ff.o + 0x200001e2 COMPRESSED 0x00000002 PAD + 0x200001e4 COMPRESSED 0x00000004 Data RW 4140 .data mc_p.l(stdout.o) + 0x200001e8 - 0x000000a0 Zero RW 319 .bss sw_timer.o + 0x20000288 - 0x00000154 Zero RW 552 .bss uart1.o + 0x200003dc - 0x0000087c Zero RW 876 .bss save_file.o + 0x20000c58 - 0x00000020 Zero RW 1140 .bss driver_ds3231_basic.o + 0x20000c78 - 0x000000e8 Zero RW 1310 .bss action_process.o + 0x20000d60 - 0x00000080 Zero RW 1398 .bss eeprom.o + 0x20000de0 - 0x0000000a Zero RW 1498 .bss segment.o + 0x20000dea - 0x00000064 Zero RW 1552 .bss uart_packet.o + 0x20000e4e COMPRESSED 0x00000002 PAD + 0x20000e50 - 0x000000f0 Zero RW 1629 .bss usart11_rs485.o + 0x20000f40 - 0x0000001a Zero RW 1693 .bss kcd_hp100.o + 0x20000f5a COMPRESSED 0x00000002 PAD + 0x20000f5c - 0x00000018 Zero RW 3510 .bss ff.o + 0x20000f74 - 0x0000000c Zero RW 3791 .bss ff_gen_drv.o + 0x20000f80 - 0x00000500 Zero RW 3115 STACK startup_a31g12x.o @@ -2579,7 +2927,7 @@ Memory Map of the image Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x1ffff200 0x1ffff200 0x00000044 Code RO 3079 .ARM.__AT_0x1FFFF200 option_a31g12x.o + 0x1ffff200 0x1ffff200 0x00000044 Code RO 3160 .ARM.__AT_0x1FFFF200 option_a31g12x.o @@ -2589,7 +2937,7 @@ Memory Map of the image Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x1ffff400 0x1ffff400 0x00000080 Code RO 3080 .ARM.__AT_0x1FFFF400 option_a31g12x.o + 0x1ffff400 0x1ffff400 0x00000080 Code RO 3161 .ARM.__AT_0x1FFFF400 option_a31g12x.o @@ -2599,7 +2947,7 @@ Memory Map of the image Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x1ffff600 0x1ffff600 0x00000080 Code RO 3081 .ARM.__AT_0x1FFFF600 option_a31g12x.o + 0x1ffff600 0x1ffff600 0x00000080 Code RO 3162 .ARM.__AT_0x1FFFF600 option_a31g12x.o ============================================================================== @@ -2620,23 +2968,30 @@ Image component sizes 958 44 0 4 0 10485 a31g12x_hal_usart1n.o 10 0 0 0 0 3109 a31g12x_interrupt.o 288 36 0 0 0 425323 a31g12x_systemclock.o - 930 118 0 0 20 7004 action_process.o + 2480 326 0 4 232 10185 action_process.o 160 38 0 12 0 1596 buzzer.o 16 0 0 0 0 536 dbg_printf.o + 200 26 0 0 0 8781 diskio.o 3268 1366 0 0 0 11951 driver_ds3231.o 716 352 0 0 32 2636 driver_ds3231_basic.o 186 50 0 0 0 4702 driver_ds3231_interface_template.o - 384 42 0 0 130 3941 eeprom.o + 416 42 0 0 128 3941 eeprom.o + 32 12 0 5 0 1592 fatfs.o + 8784 182 172 6 24 37903 ff.o + 184 10 0 0 12 2919 ff_gen_drv.o 620 28 0 0 0 4848 gpio_i2c.o + 36 4 0 0 0 473 gpio_sensor.o 392 38 0 140 0 3820 gpio_state_led.o 548 48 0 144 0 3869 gpio_switch.o - 156 10 0 0 0 8640 main.o + 560 76 0 9 26 4706 kcd_hp100.o + 120 4 0 0 0 9011 main.o 324 324 0 0 0 648 option_a31g12x.o 320 0 0 0 0 5599 ring_buffer.o - 212 58 0 8 0 2096 rtc_process.o - 632 36 38 0 10 2865 segment.o + 136 12 0 8 0 2064 rtc_process.o + 552 140 0 18 2172 5640 save_file.o + 1004 48 38 0 10 3820 segment.o 324 42 0 16 0 4001 segment_74hc595d.o - 244 10 0 0 0 751 spi10.o + 352 20 0 0 0 2240 spi10.o 248 12 0 0 0 1692 spi13.o 28 8 176 0 1280 628 startup_a31g12x.o 212 10 0 0 160 2057 sw_timer.o @@ -2645,12 +3000,14 @@ Image component sizes 276 32 0 4 0 2242 timer12.o 516 86 0 0 340 11659 uart1.o 502 24 0 3 100 2757 uart_packet.o - 588 78 0 0 240 4718 usart11_rs485.o + 624 88 0 0 240 5705 usart11_rs485.o + 92 0 0 24 0 5584 user_diskio.o + 1838 68 0 12 0 12274 user_diskio_spi.o ---------------------------------------------------------------------- - 15508 3208 248 396 2312 566259 Object Totals + 29798 3914 420 484 4760 653082 Object Totals 0 0 32 0 0 0 (incl. Generated) - 22 0 2 1 0 0 (incl. Padding) + 48 0 2 11 4 0 (incl. Padding) ---------------------------------------------------------------------- @@ -2675,8 +3032,9 @@ Image component sizes 34 0 0 0 0 68 llushr.o 36 0 0 0 0 60 memcpya.o 36 0 0 0 0 100 memseta.o - 2256 98 0 0 0 412 printfa.o + 2306 102 0 0 0 556 printfa.o 0 0 0 4 0 0 stdout.o + 14 0 0 0 0 60 strlen.o 44 0 0 0 0 72 uidiv.o 96 0 0 0 0 84 uldiv.o 40 2 0 0 0 68 cdrcmple.o @@ -2690,18 +3048,18 @@ Image component sizes 50 0 0 0 0 60 ffixi.o ---------------------------------------------------------------------- - 4240 144 0 4 0 2012 Library Totals - 0 0 0 0 0 0 (incl. Padding) + 4306 148 0 4 0 2216 Library Totals + 2 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name - 2788 114 0 4 0 1072 mc_p.l + 2852 118 0 4 0 1276 mc_p.l 1452 30 0 0 0 940 mf_p.l ---------------------------------------------------------------------- - 4240 144 0 4 0 2012 Library Totals + 4306 148 0 4 0 2216 Library Totals ---------------------------------------------------------------------- @@ -2710,15 +3068,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 19748 3352 248 400 2312 560259 Grand Totals - 19748 3352 248 68 2312 560259 ELF Image Totals (compressed) - 19748 3352 248 68 0 0 ROM Totals + 34104 4062 420 488 4760 643326 Grand Totals + 34104 4062 420 92 4760 643326 ELF Image Totals (compressed) + 34104 4062 420 92 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 19996 ( 19.53kB) - Total RW Size (RW Data + ZI Data) 2712 ( 2.65kB) - Total ROM Size (Code + RO Data + RW Data) 20064 ( 19.59kB) + Total RO Size (Code + RO Data) 34524 ( 33.71kB) + Total RW Size (RW Data + ZI Data) 5248 ( 5.13kB) + Total ROM Size (Code + RO Data + RW Data) 34616 ( 33.80kB) ==============================================================================