From fc27be75f978f0e5b672e72269e3859dbeb5dbaa Mon Sep 17 00:00:00 2001 From: dekunukem Date: Wed, 1 Mar 2023 23:45:47 +0000 Subject: [PATCH] fixed a HID detection bug --- .../MDK-ARM/lul.uvguix.Allen | 50 +++++++++--------- .../code_duckyscript3/MDK-ARM/lul/lul.axf | Bin 1130456 -> 1130456 bytes .../MDK-ARM/lul/lul.build_log.htm | 21 ++++++-- .../code_duckyscript3/MDK-ARM/lul/lul.htm | 2 +- .../code_duckyscript3/MDK-ARM/lul/lul_lul.dep | 2 +- .../MDK-ARM/lul/my_tasks.crf | Bin 642148 -> 642148 bytes .../code_duckyscript3/MDK-ARM/lul/my_tasks.o | Bin 701460 -> 701460 bytes pc_software/duckyscript3/duckypad_config.py | 11 ++-- .../duckypad_config_latest_source.zip | Bin 33866 -> 33930 bytes pc_software/duckyscript3/hid_op.py | 19 ++++--- 10 files changed, 64 insertions(+), 41 deletions(-) diff --git a/firmware/code_duckyscript3/MDK-ARM/lul.uvguix.Allen b/firmware/code_duckyscript3/MDK-ARM/lul.uvguix.Allen index a87a32f0..b764110a 100644 --- a/firmware/code_duckyscript3/MDK-ARM/lul.uvguix.Allen +++ b/firmware/code_duckyscript3/MDK-ARM/lul.uvguix.Allen @@ -93,25 +93,25 @@ 2 3 - -32000 - -32000 + -1 + -1 -1 -1 - -419 - -1377 - -625 - 338 + 0 + 1176 + 1928 + 757 0 374 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000200000001000000010000004D433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C6475636B795061645C6669726D776172655C636F64655F6475636B79736372697074335C5372635C6473335F766D2E6300000000086473335F766D2E6300000000F7B88600FFFFFFFF4B433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C6475636B795061645C6669726D776172655C636F64655F6475636B79736372697074335C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000054FBFFFFB1FCFFFFE0FEFFFFC7020000 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000200000001000000010000004D433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C6475636B795061645C6669726D776172655C636F64655F6475636B79736372697074335C5372635C6473335F766D2E6300000000086473335F766D2E6300000000C5D4F200FFFFFFFF4B433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C6475636B795061645C6669726D776172655C636F64655F6475636B79736372697074335C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F40000006600000080070000B4020000 @@ -134,7 +134,7 @@ 16 - 54FBFFFFB1FCFFFFF0FFFFFF41FDFFFF + F40000006600000090050000F6000000 @@ -150,7 +150,7 @@ 0 16 - 0300000066000000ED0000004C060000 + 0300000066000000ED00000084020000 16 @@ -170,7 +170,7 @@ 0 16 - 0300000066000000ED0000004C060000 + 0300000066000000ED00000084020000 16 @@ -450,7 +450,7 @@ 0 16 - 0300000066000000ED0000004C060000 + 0300000066000000ED00000084020000 16 @@ -470,7 +470,7 @@ 0 16 - 0300000066000000ED0000004C060000 + 0300000066000000ED00000084020000 16 @@ -490,7 +490,7 @@ 0 16 - 03000000800600007D04000095070000 + 03000000B80200007D070000CD030000 16 @@ -530,7 +530,7 @@ 0 16 - 03000000800600007D07000095070000 + 03000000B80200007D040000CD030000 16 @@ -1150,7 +1150,7 @@ 0 16 - 0300000066000000ED00000084020000 + 0300000066000000ED0000004C060000 16 @@ -1170,7 +1170,7 @@ 0 16 - 03000000800600007D04000095070000 + 03000000B80200007D070000CD030000 16 @@ -1190,7 +1190,7 @@ 0 16 - 03000000800600007D07000095070000 + 03000000B80200007D040000CD030000 16 @@ -1250,7 +1250,7 @@ 0 16 - 03000000800600007D07000095070000 + 03000000B80200007D040000CD030000 16 @@ -1270,7 +1270,7 @@ 0 16 - 03000000800600007D07000095070000 + 03000000B80200007D040000CD030000 16 @@ -1730,7 +1730,7 @@ 0 16 - 00000000AE07000080040000C1070000 + 00000000E603000080070000F9030000 16 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000054FBFFFFB1FCFFFFF0FFFFFF41FDFFFFF40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000000FFFFFFB1FCFFFFF0FFFFFF8BFEFFFFA00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F400000065060000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000060FAFFFFB1FCFFFF50FBFFFFFFFEFFFF000000004F000000F0000000650600000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000060FAFFFF7BFEFFFFF0FFFFFF1FFFFFFF000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000006506000080040000690600000100000001000010040000000100000049FDFFFFD5000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000060FAFFFF03FFFFFFE001000048000000000000006906000080040000AE0700000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFF00000004F000000F40000009D020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000000000000066000000F00000007C060000000000004F000000F00000009D0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000009D02000080070000A10200000100000001000010040000000100000049FDFFFFD5000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000000008006000080040000C507000000000000A102000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2889 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000124D41505041424C455F4B45595F434F554E5496000000000000001400124D41505041424C455F4B45595F434F554E540F4849445F54585F4255465F53495A451B6869645F72785F6861735F756E70726F6365737365645F646174610D6C6973745F70726F66696C657308535452494E474C4E0C6E726632345F636F6E666967034944520850415253455F4F4B106765745F6C6173745F70726F66696C6504305833410D76657273696F6E5F7061746368056D616A6F720F50524F544F434F4C5F4144425F4B4201311B70726F746F636F6C5F7374617475735F6C6F6F6B75705F696E697403666E6F066C65645F73680A6869645F74785F6275661A555342445F435553544F4D5F4849445F53656E645265706F7274042E7478740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000124D41505041424C455F4B45595F434F554E5496000000000000001400124D41505041424C455F4B45595F434F554E540F4849445F54585F4255465F53495A451B6869645F72785F6861735F756E70726F6365737365645F646174610D6C6973745F70726F66696C657308535452494E474C4E0C6E726632345F636F6E666967034944520850415253455F4F4B106765745F6C6173745F70726F66696C6504305833410D76657273696F6E5F7061746368056D616A6F720F50524F544F434F4C5F4144425F4B4201311B70726F746F636F6C5F7374617475735F6C6F6F6B75705F696E697403666E6F066C65645F73680A6869645F74785F6275661A555342445F435553544F4D5F4849445F53656E645265706F7274042E7478740000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3615,9 +3615,9 @@ ../Src/main.c - 16 + 15 97 - 128 + 114 1 0 diff --git a/firmware/code_duckyscript3/MDK-ARM/lul/lul.axf b/firmware/code_duckyscript3/MDK-ARM/lul/lul.axf index d39f55535002688f16923e5ec7528a073d4b0999..b8e0c5f1ebe4f12a9e88445543c73cf07b042749 100644 GIT binary patch delta 65 zcmccd-{r=CmxdO`7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#DFPkLhN+3u9oq$t VZx3V?P-JN@W);|8%qo~_1ppA<6>|Up delta 64 zcmccd-{r=CmxdO`7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QPn#DFPi#$w|`-FYq7V U9>gf1$kJZKDzLqXRWQv800$TqxBvhE diff --git a/firmware/code_duckyscript3/MDK-ARM/lul/lul.build_log.htm b/firmware/code_duckyscript3/MDK-ARM/lul/lul.build_log.htm index 0064c94c..2c604fa8 100644 --- a/firmware/code_duckyscript3/MDK-ARM/lul/lul.build_log.htm +++ b/firmware/code_duckyscript3/MDK-ARM/lul/lul.build_log.htm @@ -27,11 +27,26 @@

Project:

Output:

*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin' Build target 'lul' -compiling main.c... +compiling my_tasks.c... +..\Src\my_tasks.c(529): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "const TCHAR *" + if (f_opendir(&dir, hid_rx_buf+3) != FR_OK) +..\Src\my_tasks.c(548): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "char *restrict" + strncpy(hid_tx_buf+4, this_filename, FILENAME_SIZE); +..\Src\my_tasks.c(581): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "const TCHAR *" + if(f_open(&sd_file, hid_rx_buf+3, FA_READ) != 0) +..\Src\my_tasks.c(628): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "const TCHAR *" + if(f_open(&sd_file, hid_rx_buf+3, FA_CREATE_ALWAYS | FA_WRITE) != 0) +..\Src\my_tasks.c(695): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "const TCHAR *" + f_unlink(hid_rx_buf+3); +..\Src\my_tasks.c(714): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "const TCHAR *" + if(f_mkdir(hid_rx_buf+3) != 0) +..\Src\my_tasks.c(736): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "char *" + delete_node(hid_rx_buf+3, HID_RX_BUF_SIZE - 3, &fno); +..\Src\my_tasks.c: 7 warnings, 0 errors linking... Program Size: Code=46716 RO-data=2848 RW-data=1420 ZI-data=14828 FromELF: creating hex file... -"lul\lul.axf" - 0 Error(s), 0 Warning(s). +"lul\lul.axf" - 0 Error(s), 7 Warning(s).

Software Packages used:

@@ -54,7 +69,7 @@

Collection of Component include folders:

Collection of Component Files used:

* Component: ARM::CMSIS:CORE:5.3.0 -Build Time Elapsed: 00:00:02 +Build Time Elapsed: 00:00:01 diff --git a/firmware/code_duckyscript3/MDK-ARM/lul/lul.htm b/firmware/code_duckyscript3/MDK-ARM/lul/lul.htm index b201ca21..93897d65 100644 --- a/firmware/code_duckyscript3/MDK-ARM/lul/lul.htm +++ b/firmware/code_duckyscript3/MDK-ARM/lul/lul.htm @@ -3,7 +3,7 @@ Static Call Graph - [lul\lul.axf]

Static Call Graph for image lul\lul.axf


-

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Tue Feb 21 16:24:30 2023 +

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Mar 01 23:44:47 2023

Maximum Stack Usage = 496 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

diff --git a/firmware/code_duckyscript3/MDK-ARM/lul/lul_lul.dep b/firmware/code_duckyscript3/MDK-ARM/lul/lul_lul.dep index 048775c3..6dd7c475 100644 --- a/firmware/code_duckyscript3/MDK-ARM/lul/lul_lul.dep +++ b/firmware/code_duckyscript3/MDK-ARM/lul/lul_lul.dep @@ -451,7 +451,7 @@ I (../Inc/fonts.h)(0x63BF1B78) I (../Inc/animations.h)(0x63D5A4CE) I (../Inc/usbd_desc.h)(0x63A5DA89) F (..\Inc\my_tasks.h)(0x63BF0F90)() -F (..\Src\my_tasks.c)(0x63F3B286)(-c --cpu Cortex-M0 -D__MICROLIB -g -O2 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FatFs/src -I ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0 -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I ../Middlewares/ST/STM32_USB_Device_Library/Class/CustomHID/Inc --C99 -I.\RTE\_lul -IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include -D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB -o lul\my_tasks.o --omf_browse lul\my_tasks.crf --depend lul\my_tasks.d) +F (..\Src\my_tasks.c)(0x63FFE33C)(-c --cpu Cortex-M0 -D__MICROLIB -g -O2 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include -I ../Middlewares/Third_Party/FatFs/src -I ../Middlewares/ST/STM32_USB_Device_Library/Core/Inc -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM0 -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS -I ../Middlewares/ST/STM32_USB_Device_Library/Class/CustomHID/Inc --C99 -I.\RTE\_lul -IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include -IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include -D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB -o lul\my_tasks.o --omf_browse lul\my_tasks.crf --depend lul\my_tasks.d) I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A) I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298) I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A) diff --git a/firmware/code_duckyscript3/MDK-ARM/lul/my_tasks.crf b/firmware/code_duckyscript3/MDK-ARM/lul/my_tasks.crf index a2eae3ddc58d30eb05c4f5591f52a230c025f6bd..34106181d850062e4902be29e976288e878a6a69 100644 GIT binary patch delta 61 zcmaDdL;cAN^$oVdTziiFpU=hs1T&i5h1=bQ8G)Dyh?#+y1&CRJm<@>8ftX{vyD+Eh FP5^*q5(oeQ delta 61 zcmaDdL;cAN^$oVdTy0O!&1Yi(f(Om+!tL(Dj6lo;#LPg<0>rF9%m&2lK+Lh-U6@mL FCjfpR5(oeQ diff --git a/firmware/code_duckyscript3/MDK-ARM/lul/my_tasks.o b/firmware/code_duckyscript3/MDK-ARM/lul/my_tasks.o index a1676275d3ee7fddc60c8b60de917b1ece43c753..0bbff256d520382e43c261ef135f9b515bb67321 100644 GIT binary patch delta 105 zcmbR8LTkzktqmOJioS_O3JQh_Mg~U4N(_t)@$n&^zOM1{3Q9)CRwgD^CT7i==Ixs1 zj6lo;#LPg<0>rF9%m&2lK+LgS)132a0*hg4qRDo~8Jyo(+JDU9-2P(@my9?7{-YjJ delta 111 zcmbR8LTkzktqmOJif*Y%3PuJ%WMr(wz{n6EAL8lj8XvEqWN2<>VrgY$*sN*Zu4&E) z#7scU48$xz%nHP8K+F!r9NRU`Ij<(LB_}288Z%5z6tmoJH-mE*OZ)dZoZG+8;gS^x E0IR_t^8f$< diff --git a/pc_software/duckyscript3/duckypad_config.py b/pc_software/duckyscript3/duckypad_config.py index 434b9679..2705bce2 100644 --- a/pc_software/duckyscript3/duckypad_config.py +++ b/pc_software/duckyscript3/duckypad_config.py @@ -65,9 +65,11 @@ 1.2.1 2023 02 21 added hid busy check +1.2.2 2023 03 01 +fixed HID busy detection bug """ -THIS_VERSION_NUMBER = '1.2.1' +THIS_VERSION_NUMBER = '1.2.2' MIN_DUCKYPAD_FIRMWARE_VERSION = "1.1.2" ENV_UI_SCALE = os.getenv("DUCKYPAD_UI_SCALE") @@ -1201,9 +1203,10 @@ def t1_worker(): time.sleep(0.2) if current_hid_op == HID_NOP: continue - if hid_op.is_idle() is False: - messagebox.showerror("Error", "duckyPad is busy!") - dp_root_folder_display.set("duckyPad is busy!") + is_idle, comment = hid_op.is_idle() + if is_idle is False: + messagebox.showerror("Error", comment) + dp_root_folder_display.set("") current_hid_op = HID_NOP continue if current_hid_op == HID_DUMP: diff --git a/pc_software/duckyscript3/duckypad_config_latest_source.zip b/pc_software/duckyscript3/duckypad_config_latest_source.zip index a8e2ef88dfba70843b15e3c2856eb2414a6f5f15..dec4c0b6f7ac0e8153768251b080cd4e835b88ac 100644 GIT binary patch delta 13364 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�iO;**aYr#yZxVAT#A&v4 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 d!UkHK%ojohNjs^sWtMCef(L~W@ZX#u{|EW0c