From c83d85b87a658751f8e28735c1f08b37898b2b64 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Fri, 21 Oct 2011 19:36:53 -0400 Subject: avrdude communication starting to work - responds to sync, fails when trying to respond to STK_GET_PARAMETER --- bootloaders/nuevo_diskloader/DiskLoader.elf.hex | 314 +++++++++++++----------- bootloaders/nuevo_diskloader/DiskLoader.hex | 314 +++++++++++++----------- bootloaders/nuevo_diskloader/src/DiskLoader.cpp | 82 ++++++- 3 files changed, 412 insertions(+), 298 deletions(-) diff --git a/bootloaders/nuevo_diskloader/DiskLoader.elf.hex b/bootloaders/nuevo_diskloader/DiskLoader.elf.hex index 5c8cfee..69377ab 100644 --- a/bootloaders/nuevo_diskloader/DiskLoader.elf.hex +++ b/bootloaders/nuevo_diskloader/DiskLoader.elf.hex @@ -1,156 +1,174 @@ -:10700000B4C00000D7C00000D5C00000D3C000004D -:10701000D1C00000CFC00000CDC00000CBC0000038 -:10702000C9C00000C7C0000005C3000078C300004D -:10703000C1C00000BFC00000BDC00000BBC0000058 -:10704000B9C00000B7C00000B5C00000B3C0000068 -:10705000B1C00000AFC00000ADC00000ABC0000078 -:10706000A9C00000A7C00000A5C00000A3C0000088 -:10707000A1C000009FC000009DC000009BC0000098 -:1070800099C0000097C0000095C0000093C00000A8 -:1070900091C000008FC000008DC000008BC00000B8 -:1070A00089C0000087C0000085C000002AC1080B0D +:10700000B8C00000DBC00000D9C00000D7C000003D +:10701000D5C00000D3C00000D1C00000CFC0000028 +:10702000CDC00000CBC0000097C300000AC4000020 +:10703000C5C00000C3C00000C1C00000BFC0000048 +:10704000BDC00000BBC00000B9C00000B7C0000058 +:10705000B5C00000B3C00000B1C00000AFC0000068 +:10706000ADC00000ABC00000A9C00000A7C0000078 +:10707000A5C00000A3C00000A1C000009FC0000088 +:107080009DC000009BC0000099C0000097C0000098 +:1070900095C0000093C0000091C000008FC00000A8 +:1070A0008DC000008BC0000089C0000073C1080BB8 :1070B00000020202010009040000010202000005B2 :1070C0002400100105240101010424020605240600 :1070D00000010705810310004009040100020A00B5 :1070E000000007050202400000070583024000007F :1070F000410142144505560455026403740300001F -:107100000403090422030000000000000000000046 +:107100001E958702011003000403090422030000F6 :10711000000000000000000000000000000000006F -:1071200000000000000018034100720064007500B8 -:1071300069006E006F0020004C004C0043001201FB -:10714000000200000040412388000001010200010C -:1071500012010002020000404123880000010102E8 -:10716000000100C18081F4387F3B11241FBECFEFA6 -:10717000DAE0DEBFCDBF11E0A0E0B1E0EAE7F9E779 -:1071800002C005900D92A831B107D9F711E0A8E12E -:10719000B1E001C01D92A53AB107E1F711E7CAE6D7 -:1071A000D1E703C02297FE01E2D3C636D107D1F75B -:1071B000A8D0E1C325CFDC018091000190910101AD -:1071C0008F5F9F4F61F4ED91FC9111970480F581E1 -:1071D000E02DCD01099590930101809300018091EC -:1071E00000019091010108958EE091E090931901C2 -:1071F000809318010895DF93CF930F92CDB7DEB738 -:10720000698380910901882351F083E0BE016F5F9B -:107210007F4F41E050E024D11816190614F080E0A9 -:1072200090E00F90CF91DF91089583E0F9C1209114 -:107230000001309101018FEF2F3F380739F08FEFB8 -:107240009FEF909301018093000103C082E0E0D0A2 -:107250009C01C901089582E09ED0282F80910001F1 -:10726000909101018F5F9F4F09F02F5F822F90E077 -:107270000895FC0180818E5F808380E86EEA70E76C -:1072800042E450E07FC184EA91E038D2F8940C9453 -:10729000003C0895CF93DF93EC0189819881913A66 -:1072A00049F4813251F580E062E071E047E050E05E -:1072B00069D121C0913209F5803231F482E091E048 -:1072C00067E070E09BD117C08232B9F48091090168 -:1072D000882371F08091020190910301A091040133 -:1072E000B0910501805B9440A040B04009F4CBDF31 -:1072F0008A818093090181E001C080E0DF91CF9114 -:10730000089588E10FB6F8948093600010926000B1 -:107310000FBE3F9A209A6E9A90E890936100109267 -:10732000610081E885BF95BF01E005BF02E005BFB0 -:10733000769A289A479884EA91E0CAD1789488E1AD -:1073400091E089DF18161906D4F788E191E06FDF24 -:1073500020EF30E7F901949131962E5F3F4F449131 -:10736000981711F09923B1F710929B0110929A018E -:1073700050E082E06AE171E017D0E1CFFC0104C087 -:107380008091F100819361506623D1F7289884E6BB -:1073900080939D0108959FB7F89487708093E900CA -:1073A0008091F2009FBF0895282F80919E0188232D -:1073B000C1F057FF1AC015C0289890939D01809185 -:1073C000F1008193E217F307B9F74115510539F040 -:1073D0008091F200882319F48BE68093E800AFBF18 -:1073E00002C04FEF5FEFCA010895AFB7F89427705E -:1073F0002093E9008091F200282F30E02417350710 -:107400000CF4A901FB019B01240F311D94E6DACF96 -:10741000DF93CF930F92CDB7DEB7BE016F5F7F4F83 -:1074200041E050E0C1DF019719F08FEF9FEF02C0FC -:10743000898190E00F90CF91DF9108952FB7F89454 -:1074400087708093E9008091E80085FD02C090E09C -:1074500004C08091F20090E4981B2FBF892F0895FB -:107460004F925F926F927F928F929F92AF92BF9254 -:10747000CF92DF92EF92FF920F931F93CF93DF9300 -:10748000F82E6A0180919E01882309F18B01EA019F -:107490006AEFE62E57E0552E5F208F2D90E040E2F8 -:1074A000842E912C882299223AE3432E20E4A22EA6 -:1074B000B12CA822B92280EA682E8FE0782E48C02D -:1074C0008F2DBCDF282F882349F4EA9419F44FEF5D -:1074D0005FEF46C0C3010197F1F73AC090E0C817CB -:1074E000D9070CF42C2FC21BD1094FB7F894509236 -:1074F000E9008114910421F406C01092F10021509A -:107500002223D9F719C0F7FC03C0F801922F10C04D -:10751000C801322F06C0FC010196E491E093F1000E -:1075200031503323C1F706C081918093F10091500F -:107530009923D1F7020F111D8091E80085FF05C046 -:10754000209729F4A114B10411F04092E8004FBF34 -:10755000209709F0B5CF769884E680939C01A60128 -:10756000CA01DF91CF911F910F91FF90EF90DF90B3 -:10757000CF90BF90AF909F908F907F906F905F90D3 -:107580004F9008950F931F93182FFB01A091A10115 -:10759000B091A201BA010EEF2AC017FF02C0949168 -:1075A00001C0908120919F013091A0012A173B07D3 -:1075B000ACF48091E8008570E1F38091E80082FFEF -:1075C00003C04FEF5FEF16C09093F100C901019621 -:1075D0008F739070892B11F40093E8002F5F3F4F59 -:1075E0003093A00120939F01615070403196611546 -:1075F000710599F6CA011F910F910895CF93DF93FA -:107600009C01EB018091E80082FFFCCFC9016C2F47 -:10761000B5DE8BEF8093E800CE01DF91CF91089526 -:107620008093E9008091F200882319F08AE3809327 -:10763000E80008951F920F920FB60F9211242F9316 -:107640003F938F938091E1001092E100282F83FFF8 -:107650000FC01092E90081E08093EB001092EC00E3 -:1076600082E38093ED0010929E0188E08093F00009 -:1076700022FF26C083E08093E9008091F2008823F6 -:1076800019F08AE38093E80080919C01882351F0EF -:1076900080919C01815080939C0180919C01882362 -:1076A00009F4769A80919D01882351F080919D0183 -:1076B000815080939D0180919D01882309F4289A2F -:1076C0008F913F912F910F900FBE0F901F901895A3 -:1076D00010929E0181E08093D70080EA8093D800C9 -:1076E00082E189BD09B400FEFDCF80E98093D80016 -:1076F0008CE08093E2001092E000089508950895D0 -:10770000DF93CF930F92CDB7DEB71982CE010196EA -:10771000B0DD898190E00F90CF91DF9108951F92A5 -:107720000F920FB60F921124EF92FF921F932F9397 -:107730003F934F935F936F937F938F939F93AF93F9 -:10774000BF93EF93FF93DF93CF93CDB7DEB76197EE -:10775000DEBFCDBF1092E9008091E80083FFECC04E -:10776000CE01019668E00ADE82EF8093E8009981FD -:1077700097FF05C08091E80080FFFCCF03C08EEF2B -:107780008093E800292F30E0C90180769070892B22 -:1077900009F0B3C08A81882329F41092F100109275 -:1077A000F100BFC0813009F4BCC0833009F4B9C016 -:1077B000853049F48091E80080FFFCCF8B818068A0 -:1077C0008093E300AEC0863009F06DC01C81EF806D -:1077D000F8841230A9F51092E9001092A0011092DD -:1077E0009F011092A2011092A1018ADF99E0FE018F -:1077F0003996DF01292F1D922A95E9F799871A8773 -:1078000091E09E8790E8988B9AEF998B20919F0149 -:107810003091A001275F3F4F3C872B878D871092C7 -:10782000E9001092A00110929F01F092A201E09253 -:10783000A10180E0BF0149E050E0A4DE61DF71C03A -:107840001092E9001092A00110929F01F092A20103 -:10785000E092A101113071F488E0E816F10411F40E -:107860001093A3018091A301882309F062C0EEE385 -:10787000F1E713C0133009F058C08B81882319F445 -:10788000E0E0F1E70AC0823019F4E4E0F1E705C076 -:10789000813009F04AC0E6E2F1E7449150E080E827 -:1078A000BF0170DE3EC0873009F43FC0883021F44C -:1078B00081E08093F10035C0893099F523703070F4 -:1078C000232B99F5E3E6F1E791E031E026E390938D -:1078D000E9003093EB0084918093EC002093ED005D -:1078E0009F5F3196943099F78EE78093EA0010926B -:1078F000EA008B8180939E0114C08F81988510923D -:10790000E9001092A00110929F019093A201809330 -:10791000A1018D81882349F4CE010196BBDC882327 -:1079200021F08EEF8093E80007C081E28093EB00A6 -:1079300003C0E0E5F1E7B1CF6196DEBFCDBFCF91E7 -:10794000DF91FF91EF91BF91AF919F918F917F91C7 -:107950006F915F914F913F912F911F91FF90EF9009 -:107960000F900FBE0F901F901895EE0FFF1F059000 -:0A797000F491E02D0994F894FFCF84 -:10797A00FFFF00E1000000000000000000002B39BA -:08798A00DB3817391539FB3811 +:107120000000000000000000000000000000180344 +:10713000410072006400750069006E006F0020005D +:107140004C004C00430012010002000000404123AB +:10715000880000010102000112010002020000404B +:107160004123880000010102000100C18081F8383C +:10717000113C11241FBECFEFDAE0DEBFCDBF11E01E +:10718000A0E0B1E0EEE9FAE702C005900D92A83167 +:10719000B107D9F711E0A8E1B1E001C01D92A73A0B +:1071A000B107E1F711E7C2E7D1E703C02297FE017B +:1071B00070D4CE36D107D1F7EDD06FC421CFDC012A +:1071C00080910001909101018F5F9F4F61F4ED91DB +:1071D000FC9111970480F581E02DCD0109959093E4 +:1071E00001018093000180910001909101010895B7 +:1071F0008EE091E090931901809318010895DF9338 +:10720000CF930F92CDB7DEB76983809109018823B0 +:1072100051F083E0BE016F5F7F4F41E050E0B2D19B +:107220001816190614F080E090E00F90CF91DF91CE +:10723000089583E087C220910001309101018FEF12 +:107240002F3F380739F08FEF9FEF90930101809324 +:10725000000103C082E06ED19C01C901089582E063 +:107260002CD1282F80910001909101018F5F9F4FB9 +:1072700009F02F5F822F90E00895FC0180818E5FDE +:10728000808380E86EEA70E742E450E00DC286EA4F +:1072900091E0C6D2F8940C94003C0895CF93DF930C +:1072A000EC0189819881913A49F4813251F580E06D +:1072B00062E071E047E050E0F7D121C0913209F57A +:1072C000803231F482E091E067E070E029D217C0AB +:1072D0008232B9F480910901882371F08091020112 +:1072E00090910301A0910401B0910501805B94404D +:1072F000A040B04009F4CBDF8A818093090181E08E +:1073000001C080E0DF91CF910895FF920F931F930A +:10731000CF93DF93982F8B01FF2488E760307807A5 +:1073200038F4FF24F39483E0FB0180935700E89541 +:10733000C42FD0E0892F6AE171E0AE01C7D0FF20F1 +:1073400019F107B600FCFDCFD595C7954C2FF80174 +:10735000AAE1B1E020E031E009C08D919D910C01DE +:1073600030935700E895112432962F5F2417A8F325 +:1073700085E0F80180935700E89507B600FCFDCF43 +:1073800081E180935700E895DF91CF911F910F9194 +:10739000FF90089588E10FB6F894809360001092F2 +:1073A00060000FBE3F9A209A6E9A90E89093610019 +:1073B0001092610081E885BF95BF01E005BF02E042 +:1073C00005BF769A289A479886EA91E013D2789476 +:1073D00084E180939A0180E180939B0100E010E0BA +:1073E00088E191E03CDF18161906D4F788E191E0B6 +:1073F00022DFF82E80EF90E7FC012491319602966F +:1074000044912F1511F02223B9F710929D0110928B +:107410009C0150E082E06AE171E058D0F1E4FF168F +:1074200011F186E5F816F9F0E5E7FE16E1F0F5E56D +:10743000FF1639F4C0911A01D0911B01CC0FDD1F4A +:1074400013C084E6F81631F482E0B80140911B01C4 +:107450005CDF09C0E4E7FE1631F480911B01E8010E +:10746000C80FD11D01C0E80188E191E0F8DE1816CF +:10747000190644F488E191E0DEDE00E010E0809738 +:1074800009F0AECF88E191E064E1B9DE88E191E0F6 +:1074900060E1B5DEF1E5FF1609F4A0CF8E01A0CFC3 +:1074A000FC0104C08091F100819361506623D1F703 +:1074B000289884E680939F0108959FB7F894877079 +:1074C0008093E9008091F2009FBF0895282F80915A +:1074D000A0018823C1F057FF1AC015C028989093C7 +:1074E0009F018091F1008193E217F307B9F74115ED +:1074F000510539F08091F200882319F48BE68093CE +:10750000E800AFBF02C04FEF5FEFCA010895AFB709 +:10751000F89427702093E9008091F200282F30E042 +:10752000241735070CF4A901FB019B01240F311D21 +:1075300094E6DACFDF93CF930F92CDB7DEB7BE01DB +:107540006F5F7F4F41E050E0C1DF019719F08FEF8F +:107550009FEF02C0898190E00F90CF91DF91089555 +:107560002FB7F89487708093E9008091E80085FD3B +:1075700002C090E004C08091F20090E4981B2FBFFD +:10758000892F08954F925F926F927F928F929F9270 +:10759000AF92BF92CF92DF92EF92FF920F931F9321 +:1075A000CF93DF93F82E6A018091A001882309F11F +:1075B0008B01EA016AEFE62E57E0552E5F208F2DF2 +:1075C00090E040E2842E912C882299223AE3432EC7 +:1075D00020E4A22EB12CA822B92280EA682E8FE0E6 +:1075E000782E48C08F2DBCDF282F882349F4EA94D9 +:1075F00019F44FEF5FEF46C0C3010197F1F73AC0AE +:1076000090E0C817D9070CF42C2FC21BD1094FB733 +:10761000F8945092E9008114910421F406C010926C +:10762000F10021502223D9F719C0F7FC03C0F8015B +:10763000922F10C0C801322F06C0FC010196E491C0 +:10764000E093F10031503323C1F706C0819180935C +:10765000F10091509923D1F7020F111D8091E8009C +:1076600085FF05C0209729F4A114B10411F04092C0 +:10767000E8004FBF209709F0B5CF769884E6809355 +:107680009E01A601CA01DF91CF911F910F91FF903A +:10769000EF90DF90CF90BF90AF909F908F907F90B2 +:1076A0006F905F904F9008950F931F93182FFB01D9 +:1076B000A091A301B091A401BA010EEF2AC017FF57 +:1076C00002C0949101C090812091A1013091A2014A +:1076D0002A173B07ACF48091E8008570E1F38091B4 +:1076E000E80082FF03C04FEF5FEF16C09093F100F8 +:1076F000C90101968F739070892B11F40093E800F3 +:107700002F5F3F4F3093A2012093A1016150704041 +:1077100031966115710599F6CA011F910F9108956F +:10772000CF93DF939C01EB018091E80082FFFCCFB7 +:10773000C9016C2FB5DE8BEF8093E800CE01DF919D +:10774000CF9108958093E9008091F200882319F089 +:107750008AE38093E80008951F920F920FB60F926C +:1077600011242F933F938F938091E1001092E100B9 +:10777000282F83FF0FC01092E90081E08093EB0077 +:107780001092EC0082E38093ED001092A00188E05B +:107790008093F00022FF26C083E08093E90080916F +:1077A000F200882319F08AE38093E80080919E011B +:1077B000882351F080919E01815080939E01809199 +:1077C0009E01882309F4769A80919F01882351F0C5 +:1077D00080919F01815080939F0180919F01882318 +:1077E00009F4289A8F913F912F910F900FBE0F901F +:1077F0001F9018951092A00181E08093D70080EA35 +:107800008093D80082E189BD09B400FEFDCF80E9F4 +:107810008093D8008CE08093E2001092E0000895FD +:1078200008950895DF93CF930F92CDB7DEB71982F5 +:10783000CE01019622DD898190E00F90CF91DF91FA +:1078400008951F920F920FB60F921124EF92FF929C +:107850001F932F933F934F935F936F937F938F93D8 +:107860009F93AF93BF93EF93FF93DF93CF93CDB7E6 +:10787000DEB76197DEBFCDBF1092E9008091E800CE +:1078800083FFECC0CE01019668E00ADE82EF8093B0 +:10789000E800998197FF05C08091E80080FFFCCF48 +:1078A00003C08EEF8093E800292F30E0C901807675 +:1078B0009070892B09F0B3C08A81882329F4109233 +:1078C000F1001092F100BFC0813009F4BCC08330D8 +:1078D00009F4B9C0853049F48091E80080FFFCCFFD +:1078E0008B8180688093E300AEC0863009F06DC064 +:1078F0001C81EF80F8841230A9F51092E9001092F3 +:10790000A2011092A1011092A4011092A3018ADF9A +:1079100099E0FE013996DF01292F1D922A95E9F79A +:1079200099871A8791E09E8790E8988B9AEF998BB8 +:107930002091A1013091A201275F3F4F3C872B8707 +:107940008D871092E9001092A2011092A101F0928D +:10795000A401E092A30180E0BF0149E050E0A4DE71 +:1079600061DF71C01092E9001092A2011092A10192 +:10797000F092A401E092A301113071F488E0E816BE +:10798000F10411F41093A5018091A501882309F059 +:1079900062C0E6E4F1E713C0133009F058C08B81F0 +:1079A000882319F4E8E0F1E70AC0823019F4ECE02A +:1079B000F1E705C0813009F04AC0EEE2F1E74491F9 +:1079C00050E080E8BF0170DE3EC0873009F43FC060 +:1079D000883021F481E08093F10035C0893099F539 +:1079E00023703070232B99F5EBE6F1E791E031E05D +:1079F00026E39093E9003093EB0084918093EC00B0 +:107A00002093ED009F5F3196943099F78EE7809335 +:107A1000EA001092EA008B818093A00114C08F814C +:107A200098851092E9001092A2011092A101909302 +:107A3000A4018093A3018D81882349F4CE0101968E +:107A40002DDC882321F08EEF8093E80007C081E2CF +:107A50008093EB0003C0E8E5F1E7B1CF6196DEBFAC +:107A6000CDBFCF91DF91FF91EF91BF91AF919F91EA +:107A70008F917F916F915F914F913F912F911F91C6 +:107A8000FF90EF900F900FBE0F901F901895EE0F84 +:0E7A9000FF1F0590F491E02D0994F894FFCFAC +:107A9E00FFFF00E1000000000000000000002F3991 +:087AAE00DF381B391939FF38DC :040000030000700089 :00000001FF diff --git a/bootloaders/nuevo_diskloader/DiskLoader.hex b/bootloaders/nuevo_diskloader/DiskLoader.hex index 5c8cfee..69377ab 100644 --- a/bootloaders/nuevo_diskloader/DiskLoader.hex +++ b/bootloaders/nuevo_diskloader/DiskLoader.hex @@ -1,156 +1,174 @@ -:10700000B4C00000D7C00000D5C00000D3C000004D -:10701000D1C00000CFC00000CDC00000CBC0000038 -:10702000C9C00000C7C0000005C3000078C300004D -:10703000C1C00000BFC00000BDC00000BBC0000058 -:10704000B9C00000B7C00000B5C00000B3C0000068 -:10705000B1C00000AFC00000ADC00000ABC0000078 -:10706000A9C00000A7C00000A5C00000A3C0000088 -:10707000A1C000009FC000009DC000009BC0000098 -:1070800099C0000097C0000095C0000093C00000A8 -:1070900091C000008FC000008DC000008BC00000B8 -:1070A00089C0000087C0000085C000002AC1080B0D +:10700000B8C00000DBC00000D9C00000D7C000003D +:10701000D5C00000D3C00000D1C00000CFC0000028 +:10702000CDC00000CBC0000097C300000AC4000020 +:10703000C5C00000C3C00000C1C00000BFC0000048 +:10704000BDC00000BBC00000B9C00000B7C0000058 +:10705000B5C00000B3C00000B1C00000AFC0000068 +:10706000ADC00000ABC00000A9C00000A7C0000078 +:10707000A5C00000A3C00000A1C000009FC0000088 +:107080009DC000009BC0000099C0000097C0000098 +:1070900095C0000093C0000091C000008FC00000A8 +:1070A0008DC000008BC0000089C0000073C1080BB8 :1070B00000020202010009040000010202000005B2 :1070C0002400100105240101010424020605240600 :1070D00000010705810310004009040100020A00B5 :1070E000000007050202400000070583024000007F :1070F000410142144505560455026403740300001F -:107100000403090422030000000000000000000046 +:107100001E958702011003000403090422030000F6 :10711000000000000000000000000000000000006F -:1071200000000000000018034100720064007500B8 -:1071300069006E006F0020004C004C0043001201FB -:10714000000200000040412388000001010200010C -:1071500012010002020000404123880000010102E8 -:10716000000100C18081F4387F3B11241FBECFEFA6 -:10717000DAE0DEBFCDBF11E0A0E0B1E0EAE7F9E779 -:1071800002C005900D92A831B107D9F711E0A8E12E -:10719000B1E001C01D92A53AB107E1F711E7CAE6D7 -:1071A000D1E703C02297FE01E2D3C636D107D1F75B -:1071B000A8D0E1C325CFDC018091000190910101AD -:1071C0008F5F9F4F61F4ED91FC9111970480F581E1 -:1071D000E02DCD01099590930101809300018091EC -:1071E00000019091010108958EE091E090931901C2 -:1071F000809318010895DF93CF930F92CDB7DEB738 -:10720000698380910901882351F083E0BE016F5F9B -:107210007F4F41E050E024D11816190614F080E0A9 -:1072200090E00F90CF91DF91089583E0F9C1209114 -:107230000001309101018FEF2F3F380739F08FEFB8 -:107240009FEF909301018093000103C082E0E0D0A2 -:107250009C01C901089582E09ED0282F80910001F1 -:10726000909101018F5F9F4F09F02F5F822F90E077 -:107270000895FC0180818E5F808380E86EEA70E76C -:1072800042E450E07FC184EA91E038D2F8940C9453 -:10729000003C0895CF93DF93EC0189819881913A66 -:1072A00049F4813251F580E062E071E047E050E05E -:1072B00069D121C0913209F5803231F482E091E048 -:1072C00067E070E09BD117C08232B9F48091090168 -:1072D000882371F08091020190910301A091040133 -:1072E000B0910501805B9440A040B04009F4CBDF31 -:1072F0008A818093090181E001C080E0DF91CF9114 -:10730000089588E10FB6F8948093600010926000B1 -:107310000FBE3F9A209A6E9A90E890936100109267 -:10732000610081E885BF95BF01E005BF02E005BFB0 -:10733000769A289A479884EA91E0CAD1789488E1AD -:1073400091E089DF18161906D4F788E191E06FDF24 -:1073500020EF30E7F901949131962E5F3F4F449131 -:10736000981711F09923B1F710929B0110929A018E -:1073700050E082E06AE171E017D0E1CFFC0104C087 -:107380008091F100819361506623D1F7289884E6BB -:1073900080939D0108959FB7F89487708093E900CA -:1073A0008091F2009FBF0895282F80919E0188232D -:1073B000C1F057FF1AC015C0289890939D01809185 -:1073C000F1008193E217F307B9F74115510539F040 -:1073D0008091F200882319F48BE68093E800AFBF18 -:1073E00002C04FEF5FEFCA010895AFB7F89427705E -:1073F0002093E9008091F200282F30E02417350710 -:107400000CF4A901FB019B01240F311D94E6DACF96 -:10741000DF93CF930F92CDB7DEB7BE016F5F7F4F83 -:1074200041E050E0C1DF019719F08FEF9FEF02C0FC -:10743000898190E00F90CF91DF9108952FB7F89454 -:1074400087708093E9008091E80085FD02C090E09C -:1074500004C08091F20090E4981B2FBF892F0895FB -:107460004F925F926F927F928F929F92AF92BF9254 -:10747000CF92DF92EF92FF920F931F93CF93DF9300 -:10748000F82E6A0180919E01882309F18B01EA019F -:107490006AEFE62E57E0552E5F208F2D90E040E2F8 -:1074A000842E912C882299223AE3432E20E4A22EA6 -:1074B000B12CA822B92280EA682E8FE0782E48C02D -:1074C0008F2DBCDF282F882349F4EA9419F44FEF5D -:1074D0005FEF46C0C3010197F1F73AC090E0C817CB -:1074E000D9070CF42C2FC21BD1094FB7F894509236 -:1074F000E9008114910421F406C01092F10021509A -:107500002223D9F719C0F7FC03C0F801922F10C04D -:10751000C801322F06C0FC010196E491E093F1000E -:1075200031503323C1F706C081918093F10091500F -:107530009923D1F7020F111D8091E80085FF05C046 -:10754000209729F4A114B10411F04092E8004FBF34 -:10755000209709F0B5CF769884E680939C01A60128 -:10756000CA01DF91CF911F910F91FF90EF90DF90B3 -:10757000CF90BF90AF909F908F907F906F905F90D3 -:107580004F9008950F931F93182FFB01A091A10115 -:10759000B091A201BA010EEF2AC017FF02C0949168 -:1075A00001C0908120919F013091A0012A173B07D3 -:1075B000ACF48091E8008570E1F38091E80082FFEF -:1075C00003C04FEF5FEF16C09093F100C901019621 -:1075D0008F739070892B11F40093E8002F5F3F4F59 -:1075E0003093A00120939F01615070403196611546 -:1075F000710599F6CA011F910F910895CF93DF93FA -:107600009C01EB018091E80082FFFCCFC9016C2F47 -:10761000B5DE8BEF8093E800CE01DF91CF91089526 -:107620008093E9008091F200882319F08AE3809327 -:10763000E80008951F920F920FB60F9211242F9316 -:107640003F938F938091E1001092E100282F83FFF8 -:107650000FC01092E90081E08093EB001092EC00E3 -:1076600082E38093ED0010929E0188E08093F00009 -:1076700022FF26C083E08093E9008091F2008823F6 -:1076800019F08AE38093E80080919C01882351F0EF -:1076900080919C01815080939C0180919C01882362 -:1076A00009F4769A80919D01882351F080919D0183 -:1076B000815080939D0180919D01882309F4289A2F -:1076C0008F913F912F910F900FBE0F901F901895A3 -:1076D00010929E0181E08093D70080EA8093D800C9 -:1076E00082E189BD09B400FEFDCF80E98093D80016 -:1076F0008CE08093E2001092E000089508950895D0 -:10770000DF93CF930F92CDB7DEB71982CE010196EA -:10771000B0DD898190E00F90CF91DF9108951F92A5 -:107720000F920FB60F921124EF92FF921F932F9397 -:107730003F934F935F936F937F938F939F93AF93F9 -:10774000BF93EF93FF93DF93CF93CDB7DEB76197EE -:10775000DEBFCDBF1092E9008091E80083FFECC04E -:10776000CE01019668E00ADE82EF8093E8009981FD -:1077700097FF05C08091E80080FFFCCF03C08EEF2B -:107780008093E800292F30E0C90180769070892B22 -:1077900009F0B3C08A81882329F41092F100109275 -:1077A000F100BFC0813009F4BCC0833009F4B9C016 -:1077B000853049F48091E80080FFFCCF8B818068A0 -:1077C0008093E300AEC0863009F06DC01C81EF806D -:1077D000F8841230A9F51092E9001092A0011092DD -:1077E0009F011092A2011092A1018ADF99E0FE018F -:1077F0003996DF01292F1D922A95E9F799871A8773 -:1078000091E09E8790E8988B9AEF998B20919F0149 -:107810003091A001275F3F4F3C872B878D871092C7 -:10782000E9001092A00110929F01F092A201E09253 -:10783000A10180E0BF0149E050E0A4DE61DF71C03A -:107840001092E9001092A00110929F01F092A20103 -:10785000E092A101113071F488E0E816F10411F40E -:107860001093A3018091A301882309F062C0EEE385 -:10787000F1E713C0133009F058C08B81882319F445 -:10788000E0E0F1E70AC0823019F4E4E0F1E705C076 -:10789000813009F04AC0E6E2F1E7449150E080E827 -:1078A000BF0170DE3EC0873009F43FC0883021F44C -:1078B00081E08093F10035C0893099F523703070F4 -:1078C000232B99F5E3E6F1E791E031E026E390938D -:1078D000E9003093EB0084918093EC002093ED005D -:1078E0009F5F3196943099F78EE78093EA0010926B -:1078F000EA008B8180939E0114C08F81988510923D -:10790000E9001092A00110929F019093A201809330 -:10791000A1018D81882349F4CE010196BBDC882327 -:1079200021F08EEF8093E80007C081E28093EB00A6 -:1079300003C0E0E5F1E7B1CF6196DEBFCDBFCF91E7 -:10794000DF91FF91EF91BF91AF919F918F917F91C7 -:107950006F915F914F913F912F911F91FF90EF9009 -:107960000F900FBE0F901F901895EE0FFF1F059000 -:0A797000F491E02D0994F894FFCF84 -:10797A00FFFF00E1000000000000000000002B39BA -:08798A00DB3817391539FB3811 +:107120000000000000000000000000000000180344 +:10713000410072006400750069006E006F0020005D +:107140004C004C00430012010002000000404123AB +:10715000880000010102000112010002020000404B +:107160004123880000010102000100C18081F8383C +:10717000113C11241FBECFEFDAE0DEBFCDBF11E01E +:10718000A0E0B1E0EEE9FAE702C005900D92A83167 +:10719000B107D9F711E0A8E1B1E001C01D92A73A0B +:1071A000B107E1F711E7C2E7D1E703C02297FE017B +:1071B00070D4CE36D107D1F7EDD06FC421CFDC012A +:1071C00080910001909101018F5F9F4F61F4ED91DB +:1071D000FC9111970480F581E02DCD0109959093E4 +:1071E00001018093000180910001909101010895B7 +:1071F0008EE091E090931901809318010895DF9338 +:10720000CF930F92CDB7DEB76983809109018823B0 +:1072100051F083E0BE016F5F7F4F41E050E0B2D19B +:107220001816190614F080E090E00F90CF91DF91CE +:10723000089583E087C220910001309101018FEF12 +:107240002F3F380739F08FEF9FEF90930101809324 +:10725000000103C082E06ED19C01C901089582E063 +:107260002CD1282F80910001909101018F5F9F4FB9 +:1072700009F02F5F822F90E00895FC0180818E5FDE +:10728000808380E86EEA70E742E450E00DC286EA4F +:1072900091E0C6D2F8940C94003C0895CF93DF930C +:1072A000EC0189819881913A49F4813251F580E06D +:1072B00062E071E047E050E0F7D121C0913209F57A +:1072C000803231F482E091E067E070E029D217C0AB +:1072D0008232B9F480910901882371F08091020112 +:1072E00090910301A0910401B0910501805B94404D +:1072F000A040B04009F4CBDF8A818093090181E08E +:1073000001C080E0DF91CF910895FF920F931F930A +:10731000CF93DF93982F8B01FF2488E760307807A5 +:1073200038F4FF24F39483E0FB0180935700E89541 +:10733000C42FD0E0892F6AE171E0AE01C7D0FF20F1 +:1073400019F107B600FCFDCFD595C7954C2FF80174 +:10735000AAE1B1E020E031E009C08D919D910C01DE +:1073600030935700E895112432962F5F2417A8F325 +:1073700085E0F80180935700E89507B600FCFDCF43 +:1073800081E180935700E895DF91CF911F910F9194 +:10739000FF90089588E10FB6F894809360001092F2 +:1073A00060000FBE3F9A209A6E9A90E89093610019 +:1073B0001092610081E885BF95BF01E005BF02E042 +:1073C00005BF769A289A479886EA91E013D2789476 +:1073D00084E180939A0180E180939B0100E010E0BA +:1073E00088E191E03CDF18161906D4F788E191E0B6 +:1073F00022DFF82E80EF90E7FC012491319602966F +:1074000044912F1511F02223B9F710929D0110928B +:107410009C0150E082E06AE171E058D0F1E4FF168F +:1074200011F186E5F816F9F0E5E7FE16E1F0F5E56D +:10743000FF1639F4C0911A01D0911B01CC0FDD1F4A +:1074400013C084E6F81631F482E0B80140911B01C4 +:107450005CDF09C0E4E7FE1631F480911B01E8010E +:10746000C80FD11D01C0E80188E191E0F8DE1816CF +:10747000190644F488E191E0DEDE00E010E0809738 +:1074800009F0AECF88E191E064E1B9DE88E191E0F6 +:1074900060E1B5DEF1E5FF1609F4A0CF8E01A0CFC3 +:1074A000FC0104C08091F100819361506623D1F703 +:1074B000289884E680939F0108959FB7F894877079 +:1074C0008093E9008091F2009FBF0895282F80915A +:1074D000A0018823C1F057FF1AC015C028989093C7 +:1074E0009F018091F1008193E217F307B9F74115ED +:1074F000510539F08091F200882319F48BE68093CE +:10750000E800AFBF02C04FEF5FEFCA010895AFB709 +:10751000F89427702093E9008091F200282F30E042 +:10752000241735070CF4A901FB019B01240F311D21 +:1075300094E6DACFDF93CF930F92CDB7DEB7BE01DB +:107540006F5F7F4F41E050E0C1DF019719F08FEF8F +:107550009FEF02C0898190E00F90CF91DF91089555 +:107560002FB7F89487708093E9008091E80085FD3B +:1075700002C090E004C08091F20090E4981B2FBFFD +:10758000892F08954F925F926F927F928F929F9270 +:10759000AF92BF92CF92DF92EF92FF920F931F9321 +:1075A000CF93DF93F82E6A018091A001882309F11F +:1075B0008B01EA016AEFE62E57E0552E5F208F2DF2 +:1075C00090E040E2842E912C882299223AE3432EC7 +:1075D00020E4A22EB12CA822B92280EA682E8FE0E6 +:1075E000782E48C08F2DBCDF282F882349F4EA94D9 +:1075F00019F44FEF5FEF46C0C3010197F1F73AC0AE +:1076000090E0C817D9070CF42C2FC21BD1094FB733 +:10761000F8945092E9008114910421F406C010926C +:10762000F10021502223D9F719C0F7FC03C0F8015B +:10763000922F10C0C801322F06C0FC010196E491C0 +:10764000E093F10031503323C1F706C0819180935C +:10765000F10091509923D1F7020F111D8091E8009C +:1076600085FF05C0209729F4A114B10411F04092C0 +:10767000E8004FBF209709F0B5CF769884E6809355 +:107680009E01A601CA01DF91CF911F910F91FF903A +:10769000EF90DF90CF90BF90AF909F908F907F90B2 +:1076A0006F905F904F9008950F931F93182FFB01D9 +:1076B000A091A301B091A401BA010EEF2AC017FF57 +:1076C00002C0949101C090812091A1013091A2014A +:1076D0002A173B07ACF48091E8008570E1F38091B4 +:1076E000E80082FF03C04FEF5FEF16C09093F100F8 +:1076F000C90101968F739070892B11F40093E800F3 +:107700002F5F3F4F3093A2012093A1016150704041 +:1077100031966115710599F6CA011F910F9108956F +:10772000CF93DF939C01EB018091E80082FFFCCFB7 +:10773000C9016C2FB5DE8BEF8093E800CE01DF919D +:10774000CF9108958093E9008091F200882319F089 +:107750008AE38093E80008951F920F920FB60F926C +:1077600011242F933F938F938091E1001092E100B9 +:10777000282F83FF0FC01092E90081E08093EB0077 +:107780001092EC0082E38093ED001092A00188E05B +:107790008093F00022FF26C083E08093E90080916F +:1077A000F200882319F08AE38093E80080919E011B +:1077B000882351F080919E01815080939E01809199 +:1077C0009E01882309F4769A80919F01882351F0C5 +:1077D00080919F01815080939F0180919F01882318 +:1077E00009F4289A8F913F912F910F900FBE0F901F +:1077F0001F9018951092A00181E08093D70080EA35 +:107800008093D80082E189BD09B400FEFDCF80E9F4 +:107810008093D8008CE08093E2001092E0000895FD +:1078200008950895DF93CF930F92CDB7DEB71982F5 +:10783000CE01019622DD898190E00F90CF91DF91FA +:1078400008951F920F920FB60F921124EF92FF929C +:107850001F932F933F934F935F936F937F938F93D8 +:107860009F93AF93BF93EF93FF93DF93CF93CDB7E6 +:10787000DEB76197DEBFCDBF1092E9008091E800CE +:1078800083FFECC0CE01019668E00ADE82EF8093B0 +:10789000E800998197FF05C08091E80080FFFCCF48 +:1078A00003C08EEF8093E800292F30E0C901807675 +:1078B0009070892B09F0B3C08A81882329F4109233 +:1078C000F1001092F100BFC0813009F4BCC08330D8 +:1078D00009F4B9C0853049F48091E80080FFFCCFFD +:1078E0008B8180688093E300AEC0863009F06DC064 +:1078F0001C81EF80F8841230A9F51092E9001092F3 +:10790000A2011092A1011092A4011092A3018ADF9A +:1079100099E0FE013996DF01292F1D922A95E9F79A +:1079200099871A8791E09E8790E8988B9AEF998BB8 +:107930002091A1013091A201275F3F4F3C872B8707 +:107940008D871092E9001092A2011092A101F0928D +:10795000A401E092A30180E0BF0149E050E0A4DE71 +:1079600061DF71C01092E9001092A2011092A10192 +:10797000F092A401E092A301113071F488E0E816BE +:10798000F10411F41093A5018091A501882309F059 +:1079900062C0E6E4F1E713C0133009F058C08B81F0 +:1079A000882319F4E8E0F1E70AC0823019F4ECE02A +:1079B000F1E705C0813009F04AC0EEE2F1E74491F9 +:1079C00050E080E8BF0170DE3EC0873009F43FC060 +:1079D000883021F481E08093F10035C0893099F539 +:1079E00023703070232B99F5EBE6F1E791E031E05D +:1079F00026E39093E9003093EB0084918093EC00B0 +:107A00002093ED009F5F3196943099F78EE7809335 +:107A1000EA001092EA008B818093A00114C08F814C +:107A200098851092E9001092A2011092A101909302 +:107A3000A4018093A3018D81882349F4CE0101968E +:107A40002DDC882321F08EEF8093E80007C081E2CF +:107A50008093EB0003C0E8E5F1E7B1CF6196DEBFAC +:107A6000CDBFCF91DF91FF91EF91BF91AF919F91EA +:107A70008F917F916F915F914F913F912F911F91C6 +:107A8000FF90EF900F900FBE0F901F901895EE0F84 +:0E7A9000FF1F0590F491E02D0994F894FFCFAC +:107A9E00FFFF00E1000000000000000000002F3991 +:087AAE00DF381B391939FF38DC :040000030000700089 :00000001FF diff --git a/bootloaders/nuevo_diskloader/src/DiskLoader.cpp b/bootloaders/nuevo_diskloader/src/DiskLoader.cpp index 10c80b8..5f7139c 100644 --- a/bootloaders/nuevo_diskloader/src/DiskLoader.cpp +++ b/bootloaders/nuevo_diskloader/src/DiskLoader.cpp @@ -20,6 +20,8 @@ void entrypoint(void) } u8 _flashbuf[128]; +u8 _inSync; +u8 _ok; volatile u16 _timeout; void Program(u8 ep, u16 page, u8 count) @@ -46,6 +48,10 @@ void Program(u8 ep, u16 page, u8 count) boot_rww_enable (); } +#define HW_VER 0x02 +#define SW_MAJOR 0x01 +#define SW_MINOR 0x10 + #define STK_OK 0x10 #define STK_INSYNC 0x14 // ' ' #define CRC_EOP 0x20 // 'SPACE' @@ -73,6 +79,18 @@ const u8 _readSize[] = 0,0 }; +extern const u8 _consts[] PROGMEM; +const u8 _consts[] = +{ + SIGNATURE_0, + SIGNATURE_1, + SIGNATURE_2, + HW_VER, // Hardware version + SW_MAJOR, // Software major version + SW_MINOR, // Software minor version + 0x03, // Unknown but seems to be required by avr studio 3.56 + 0x00, // +}; int main(void) __attribute__ ((naked)); int main() @@ -95,13 +113,20 @@ int main() USB.attach(); sei(); + _inSync = STK_INSYNC; + _ok = STK_OK; + for (;;) { u8* packet = _flashbuf; u16 address = 0; for (;;) { - if (Serial.available() > 0) { + +// if (Serial.available() > 0) { + while (Serial.available() <= 0) + ; + u8 cmd = Serial.read(); // Read packet contents u8 len; @@ -117,7 +142,60 @@ int main() // Read params USB_Recv(CDC_RX, packet, len); - } + // Send a response + u8 send = 0; + const u8* pgm = _consts+7; + if (STK_GET_PARAMETER == cmd) + { + u8 i = packet[0] - 0x80; + if (i > 2) + i = (i==0x18) ? 3 : 4; // 0x80:HW_VER,0x81:SW_MAJOR,0x82:SW_MINOR,0x18:3 or 0 + pgm = _consts + i + 3; + send = 1; + } + else if (STK_UNIVERSAL == cmd) + { + if (packet[0] == 0x30) + pgm = _consts + packet[2]; + send = 1; + } + else if (STK_READ_SIGN == cmd) + { + pgm = _consts; + send = 3; + } + else if (STK_LOAD_ADDRESS == cmd) + { + address = *((u16*)packet); // word address + address += address; + } + else if (STK_PROG_PAGE == cmd) + { + Program(CDC_RX, address, packet[1]); + } + else if (STK_READ_PAGE == cmd) + { + send = packet[1]; + pgm = (const u8*)address; + address += send; + } + + // Check sync + if (Serial.available() > 0 && Serial.read() != ' ') + break; + Serial.write(STK_INSYNC); + +// u8 i; +// for (i=0; i