From a52fb298607dfbd78b83e3d0787fdf5d508332d9 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Wed, 26 Oct 2011 12:53:57 -0400 Subject: working (?!?!?!) bootloader. doesn't yet restart chip after upload completes. --- bootloaders/nuevo_diskloader/DiskLoader.elf.hex | 223 ++++++++++++------------ bootloaders/nuevo_diskloader/DiskLoader.hex | 223 ++++++++++++------------ bootloaders/nuevo_diskloader/Makefile | 7 +- bootloaders/nuevo_diskloader/src/DiskLoader.cpp | 32 ++-- bootloaders/nuevo_diskloader/src/USBCore.cpp | 6 +- 5 files changed, 251 insertions(+), 240 deletions(-) diff --git a/bootloaders/nuevo_diskloader/DiskLoader.elf.hex b/bootloaders/nuevo_diskloader/DiskLoader.elf.hex index 90201d9..28e3e81 100644 --- a/bootloaders/nuevo_diskloader/DiskLoader.elf.hex +++ b/bootloaders/nuevo_diskloader/DiskLoader.elf.hex @@ -1,6 +1,6 @@ :10700000BDC00000E0C00000DEC00000DCC0000029 :10701000DAC00000D8C00000D6C00000D4C0000014 -:10702000D2C00000D0C0000063C30000D5C3000080 +:10702000D2C00000D0C000006CC30000DEC300006E :10703000CAC00000C8C00000C6C00000C4C0000034 :10704000C2C00000C0C00000BEC00000BCC0000044 :10705000BAC00000B8C00000B6C00000B4C0000054 @@ -21,16 +21,16 @@ :107140006400750069006E006F0020004C004C0068 :1071500043001201000200000040412389000001A9 :1071600001020001120100020200004041238900D7 -:1071700000010102000100C18081DC3B11241FBE1F -:10718000CFEFDAE0DEBFCDBF11E0A0E0B1E0E4E395 +:1071700000010102000100C18081E53B11241FBE16 +:10718000CFEFDAE0DEBFCDBF11E0A0E0B1E0E6E492 :10719000FAE702C005900D92A830B107D9F711E0C7 :1071A000A8E0B1E001C01D92A539B107E1F711E7F0 -:1071B000CCE7D1E703C02297FE0136D4CA37D10706 -:1071C000D1F772D035C41CCFFC0180818E5F8083E3 -:1071D00080E86AEB70E742E450E03CC2FC01818148 +:1071B000CCE7D1E703C02297FE013FD4CA37D107FD +:1071C000D1F772D03EC41CCFFC0180818E5F8083DA +:1071D00080E86AEB70E742E450E045C2FC0181813F :1071E0009081913A49F48132C1F480E060E071E02D -:1071F00047E050E02FD20FC0913279F4803231F461 -:1072000080E091E067E070E061D205C0823229F44D +:1071F00047E050E038D20FC0913279F4803231F458 +:1072000080E091E067E070E06AD205C0823229F444 :1072100082818093070181E0089580E00895FF92C4 :107220000F931F93CF93DF93982F8B01FF2480E759 :107230006030780738F4FF24F39483E0FB018093F7 @@ -44,8 +44,8 @@ :1072B0006000109260000FBE3F9A209A6E9A90E88C :1072C000909361001092610081E885BF95BF01E055 :1072D00005BF02E005BF769A289A479884E991E0B5 -:1072E00055D2789484E18093880180E1809389016C -:1072F000CC24DD2482E0A0D08823E1F382E0F6D024 +:1072E0005ED2789484E18093880180E18093890163 +:1072F000CC24DD2482E0A0D08823E1F382E0FAD020 :10730000E82E8CEF90E7FC0124913196029644918F :107310002E1511F02223B9F710928B0110928A01D9 :1073200050E082E068E071E090D0F1E4EF1679F48B @@ -60,108 +60,109 @@ :1073B000FF24C3E1D1E705C0F0900901E601CF0C3D :1073C000D11C08E813E1015010400930110501F10A :1073D00082E032D08823E1F4F6CF809709F088CF9D -:1073E00083E068E871E041E050E0A8D0FF2029F098 -:1073F0004F2D50E083E8BE01A1D083E469E871E03D -:1074000041E050E09BD081E5E81609F073CF70CFE2 -:1074100082E06CD0EFEF8F3F9E07F9F6E1CFFC01E1 +:1073E00083E068E871E041E050E0ACD0FF2029F094 +:1073F0004F2D50E083E8BE01A5D083E469E871E039 +:1074000041E050E09FD081E5E81609F073CF70CFDE +:1074100082E070D0EFEF8F3F9E07F9F6E1CFFC01DD :1074200004C08091F100819361506623D1F72898C0 :1074300084E680938D0108959FB7F89487708093B8 -:10744000E9008091F2009FBF0895FB018093E9005D -:1074500024E69BE610C08091E80085FFFCCF2898C9 -:1074600020938D018091F10081938091E80085FD4A -:1074700002C09093E800415050408FEF4F3F5807B3 -:1074800051F70895282F80918E018823C1F057FF6E -:107490001AC015C0289890938D018091F1008193B6 -:1074A000E217F307B9F74115510539F08091F20061 -:1074B000882319F48BE68093E800AFBF02C04FEF3A -:1074C0005FEFCA010895AFB7F89427702093E900E1 -:1074D0008091F200282F30E0241735070CF4A90121 -:1074E000FB019B01240F311D94E6DACFDF93CF938C -:1074F0000F92CDB7DEB7BE016F5F7F4F41E050E026 -:10750000C1DF019719F08FEF9FEF02C0898190E0F2 -:107510000F90CF91DF9108952FB7F89487708093E3 -:10752000E9008091E80085FD02C090E004C08091F0 -:10753000F20090E4981B2FBF892F08955F926F92FD -:107540007F928F929F92AF92BF92CF92DF92EF92F3 -:10755000FF920F931F93CF93DF93F82E6A018091D0 -:107560008E01882319F44FEF5FEF63C08B01EA01AE -:1075700057E0E52EEF208F2D90E040E2842E912CF5 -:10758000882299223AE3532E20E4A22EB12CA8227D -:10759000B92280EA682E8FE0782E43C08F2DBCDFA1 -:1075A000282F882321F4C3010197F1F73AC090E016 -:1075B000C817D9070CF42C2FC21BD1094FB7F89468 -:1075C000E092E9008114910421F406C01092F100C8 -:1075D00021502223D9F719C0F7FC03C0F801922FDC -:1075E00010C0C801322F06C0FC010196E491E0935F -:1075F000F10031503323C1F706C081918093F1002F -:1076000091509923D1F7020F111D8091E80085FF59 -:1076100005C0209729F4A114B10411F05092E8009C -:107620004FBF209709F0BACF769884E680938C01FB -:10763000A601CA01DF91CF911F910F91FF90EF90AA -:10764000DF90CF90BF90AF909F908F907F906F9082 -:107650005F9008950F931F93182FFB01A091910144 -:10766000B0919201BA010EEF2AC017FF02C09491A7 -:1076700001C0908120918F01309190012A173B0722 -:10768000ACF48091E8008570E1F38091E80082FF1E -:1076900003C04FEF5FEF16C09093F100C901019650 -:1076A0008F739070892B11F40093E8002F5F3F4F88 -:1076B0003093900120938F01615070403196611595 -:1076C000710599F6CA011F910F910895CF93DF9329 -:1076D0009C01EB018091E80082FFFCCFC9016C2F77 -:1076E0009EDE8BEF8093E800CE01DF91CF9108956D -:1076F0001F920F920FB60F9211242F933F938F93E7 -:107700008091E1001092E100282F83FF0FC01092BA -:10771000E90081E08093EB001092EC0082E380931B -:10772000ED0010928E0188E08093F00022FF26C0C9 -:1077300083E08093E9008091F200882319F08AE3C6 -:107740008093E80080918C01882351F080918C0116 -:10775000815080938C0180918C01882309F4769A62 -:1077600080918D01882351F080918D01815080930B -:107770008D0180918D01882309F4289A8F913F9182 -:107780002F910F900FBE0F901F90189510928E01A1 -:1077900081E08093D70080EA8093D80082E189BDA0 -:1077A00009B400FEFDCF80E98093D8008CE080937F -:1077B000E2001092E00008950895DF93CF930F92B6 -:1077C000CDB7DEB71982CE010196FEDC898190E04B -:1077D0000F90CF91DF9108951F920F920FB60F92E5 -:1077E0001124EF92FF921F932F933F934F935F9338 -:1077F0006F937F938F939F93AF93BF93EF93FF9379 -:10780000DF93CF93CDB7DEB76197DEBFCDBF1092C8 -:10781000E9008091E80083FFECC0CE01019668E0AA -:10782000FEDD82EF8093E800998197FF05C080918B -:10783000E80080FFFCCF03C08EEF8093E800292F83 -:1078400030E0C90180769070892B09F0B3C08A813D -:10785000882329F41092F1001092F100BFC081300A -:1078600009F4BCC0833009F4B9C0853049F4809173 -:10787000E80080FFFCCF8B8180688093E300AEC07E -:10788000863009F06DC01C81EF80F8841230A9F5B4 -:107890001092E9001092900110928F0110929201C3 -:1078A000109291018ADF99E0FE013996DF01292FBC -:1078B0001D922A95E9F799871A8791E09E8790E8AB -:1078C000988B9AEF998B20918F0130919001275FCF -:1078D0003F4F3C872B878D871092E90010929001D3 -:1078E00010928F01F0929201E092910180E0BF012D -:1078F00049E050E0AFDE61DF71C01092E900109204 -:10790000900110928F01F0929201E092910111305A -:1079100071F488E0E816F10411F41093930180915A -:107920009301882309F062C0E2E5F1E713C0133048 -:1079300009F058C08B81882319F4E4E1F1E70AC00B -:10794000823019F4E8E1F1E705C0813009F04AC05E -:10795000EAE3F1E7449150E080E8BF017BDE3EC0FE -:10796000873009F43FC0883021F481E08093F10032 -:1079700035C0893099F523703070232B99F5E7E7EE -:10798000F1E791E031E026E39093E9003093EB00DA -:1079900084918093EC002093ED009F5F31969430AA -:1079A00099F78EE78093EA001092EA008B8180932A -:1079B0008E0114C08F8198851092E9001092900179 -:1079C00010928F0190939201809391018D81882371 -:1079D00049F4CE01019602DC882321F08EEF8093DA -:1079E000E80007C081E28093EB0003C0E4E6F1E722 -:1079F000B1CF6196DEBFCDBFCF91DF91FF91EF9107 -:107A0000BF91AF919F918F917F916F915F914F91B6 -:107A10003F912F911F91FF90EF900F900FBE0F900D -:107A20001F901895EE0FFF1F0590F491E02D09941B -:047A3000F894FFCFF8 -:087A340000E100000000000069 +:10744000E9008091F2009FBF0895FB019FB7F89477 +:1074500087708093E90034E62BE610C08091E80045 +:1074600085FFFCCF289830938D018091F1008193A6 +:107470008091E80085FD02C02093E8004150504013 +:107480008FEF4F3F580751F79FBF0895282F8091E6 +:107490008E018823C1F057FF1AC015C02898909319 +:1074A0008D018091F1008193E217F307B9F741153F +:1074B000510539F08091F200882319F48BE680930E +:1074C000E800AFBF02C04FEF5FEFCA010895AFB74A +:1074D000F89427702093E9008091F200282F30E083 +:1074E000241735070CF4A901FB019B01240F311D62 +:1074F00094E6DACFDF93CF930F92CDB7DEB7BE011C +:107500006F5F7F4F41E050E0C1DF019719F08FEFCF +:107510009FEF02C0898190E00F90CF91DF91089595 +:107520002FB7F89487708093E9008091E80085FD7B +:1075300002C090E004C08091F20090E4981B2FBF3D +:10754000892F08955F926F927F928F929F92AF9250 +:10755000BF92CF92DF92EF92FF920F931F93CF9340 +:10756000DF93F82E6A0180918E01882319F44FEF82 +:107570005FEF68C08B01EA0157E0E52EEF208F2D09 +:1075800090E040E2842E912C882299223AE3532EF7 +:1075900020E4A22EB12CA822B92280EA682E8FE026 +:1075A000782E43C08F2DBCDF282F882321F4C30100 +:1075B0000197F1F73AC090E0C817D9070CF42C2FC7 +:1075C000C21BD1094FB7F894E092E90081149104ED +:1075D00021F406C01092F10021502223D9F719C0DE +:1075E000F7FC03C0F801922F10C0C801322F06C06B +:1075F000FC010196E491E093F10031503323C1F78F +:1076000006C081918093F10091509923D1F7020F28 +:10761000111D8091E80085FF05C0209729F4A11471 +:10762000B10411F05092E8004FBF209709F0BACF93 +:10763000F6FE03C08AE38093E800769884E68093A0 +:107640008C01A601CA01DF91CF911F910F91FF908C +:10765000EF90DF90CF90BF90AF909F908F907F90F2 +:107660006F905F9008950F931F93182FFB01A091C7 +:107670009101B0919201BA010EEF2AC017FF02C02A +:10768000949101C0908120918F01309190012A172F +:107690003B07ACF48091E8008570E1F38091E8004D +:1076A00082FF03C04FEF5FEF16C09093F100C90156 +:1076B00001968F739070892B11F40093E8002F5F6F +:1076C0003F4F3093900120938F016150704031966D +:1076D0006115710599F6CA011F910F910895CF9315 +:1076E000DF939C01EB018091E80082FFFCCFC90190 +:1076F0006C2F95DE8BEF8093E800CE01DF91CF9168 +:1077000008951F920F920FB60F9211242F933F935B +:107710008F938091E1001092E100282F83FF0FC02A +:107720001092E90081E08093EB001092EC0082E37C +:107730008093ED0010928E0188E08093F00022FF8C +:1077400026C083E08093E9008091F200882319F03D +:107750008AE38093E80080918C01882351F0809126 +:107760008C01815080938C0180918C01882309F4D5 +:10777000769A80918D01882351F080918D018150FE +:1077800080938D0180918D01882309F4289A8F912F +:107790003F912F910F900FBE0F901F901895109250 +:1077A0008E0181E08093D70080EA8093D80082E147 +:1077B00089BD09B400FEFDCF80E98093D8008CE03C +:1077C0008093E2001092E00008950895DF93CF9334 +:1077D0000F92CDB7DEB71982CE010196F5DC898113 +:1077E00090E00F90CF91DF9108951F920F920FB606 +:1077F0000F921124EF92FF921F932F933F934F9379 +:107800005F936F937F938F939F93AF93BF93EF9308 +:10781000FF93DF93CF93CDB7DEB76197DEBFCDBFC8 +:107820001092E9008091E80083FFECC0CE01019640 +:1078300068E0F5DD82EF8093E800998197FF05C04D +:107840008091E80080FFFCCF03C08EEF8093E800BA +:10785000292F30E0C90180769070892B09F0B3C0E0 +:107860008A81882329F41092F1001092F100BFC0A0 +:10787000813009F4BCC0833009F4B9C0853049F4C3 +:107880008091E80080FFFCCF8B8180688093E300CB +:10789000AEC0863009F06DC01C81EF80F8841230D4 +:1078A000A9F51092E9001092900110928F011092A8 +:1078B0009201109291018ADF99E0FE013996DF0171 +:1078C000292F1D922A95E9F799871A8791E09E87BB +:1078D00090E8988B9AEF998B20918F0130919001CD +:1078E000275F3F4F3C872B878D871092E9001092CE +:1078F000900110928F01F0929201E092910180E04C +:10790000BF0149E050E0AFDE61DF71C01092E900D5 +:107910001092900110928F01F0929201E0929101E9 +:10792000113071F488E0E816F10411F4109393011A +:1079300080919301882309F062C0E2E5F1E713C06A +:10794000133009F058C08B81882319F4E4E1F1E782 +:107950000AC0823019F4E8E1F1E705C0813009F08E +:107960004AC0EAE3F1E7449150E080E8BF017BDEE2 +:107970003EC0873009F43FC0883021F481E0809315 +:10798000F10035C0893099F523703070232B99F5BB +:10799000E7E7F1E791E031E026E39093E9003093E7 +:1079A000EB0084918093EC002093ED009F5F319673 +:1079B000943099F78EE78093EA001092EA008B8169 +:1079C00080938E0114C08F8198851092E9001092E7 +:1079D000900110928F0190939201809391018D817B +:1079E000882349F4CE010196F9DB882321F08EEF3C +:1079F0008093E80007C081E28093EB0003C0E4E6D7 +:107A0000F1E7B1CF6196DEBFCDBFCF91DF91FF919E +:107A1000EF91BF91AF919F918F917F916F915F9106 +:107A20004F913F912F911F91FF90EF900F900FBEBC +:107A30000F901F901895EE0FFF1F0590F491E02D09 +:067A40000994F894FFCF49 +:087A460000E100000000000057 :040000030000700089 :00000001FF diff --git a/bootloaders/nuevo_diskloader/DiskLoader.hex b/bootloaders/nuevo_diskloader/DiskLoader.hex index 90201d9..28e3e81 100644 --- a/bootloaders/nuevo_diskloader/DiskLoader.hex +++ b/bootloaders/nuevo_diskloader/DiskLoader.hex @@ -1,6 +1,6 @@ :10700000BDC00000E0C00000DEC00000DCC0000029 :10701000DAC00000D8C00000D6C00000D4C0000014 -:10702000D2C00000D0C0000063C30000D5C3000080 +:10702000D2C00000D0C000006CC30000DEC300006E :10703000CAC00000C8C00000C6C00000C4C0000034 :10704000C2C00000C0C00000BEC00000BCC0000044 :10705000BAC00000B8C00000B6C00000B4C0000054 @@ -21,16 +21,16 @@ :107140006400750069006E006F0020004C004C0068 :1071500043001201000200000040412389000001A9 :1071600001020001120100020200004041238900D7 -:1071700000010102000100C18081DC3B11241FBE1F -:10718000CFEFDAE0DEBFCDBF11E0A0E0B1E0E4E395 +:1071700000010102000100C18081E53B11241FBE16 +:10718000CFEFDAE0DEBFCDBF11E0A0E0B1E0E6E492 :10719000FAE702C005900D92A830B107D9F711E0C7 :1071A000A8E0B1E001C01D92A539B107E1F711E7F0 -:1071B000CCE7D1E703C02297FE0136D4CA37D10706 -:1071C000D1F772D035C41CCFFC0180818E5F8083E3 -:1071D00080E86AEB70E742E450E03CC2FC01818148 +:1071B000CCE7D1E703C02297FE013FD4CA37D107FD +:1071C000D1F772D03EC41CCFFC0180818E5F8083DA +:1071D00080E86AEB70E742E450E045C2FC0181813F :1071E0009081913A49F48132C1F480E060E071E02D -:1071F00047E050E02FD20FC0913279F4803231F461 -:1072000080E091E067E070E061D205C0823229F44D +:1071F00047E050E038D20FC0913279F4803231F458 +:1072000080E091E067E070E06AD205C0823229F444 :1072100082818093070181E0089580E00895FF92C4 :107220000F931F93CF93DF93982F8B01FF2480E759 :107230006030780738F4FF24F39483E0FB018093F7 @@ -44,8 +44,8 @@ :1072B0006000109260000FBE3F9A209A6E9A90E88C :1072C000909361001092610081E885BF95BF01E055 :1072D00005BF02E005BF769A289A479884E991E0B5 -:1072E00055D2789484E18093880180E1809389016C -:1072F000CC24DD2482E0A0D08823E1F382E0F6D024 +:1072E0005ED2789484E18093880180E18093890163 +:1072F000CC24DD2482E0A0D08823E1F382E0FAD020 :10730000E82E8CEF90E7FC0124913196029644918F :107310002E1511F02223B9F710928B0110928A01D9 :1073200050E082E068E071E090D0F1E4EF1679F48B @@ -60,108 +60,109 @@ :1073B000FF24C3E1D1E705C0F0900901E601CF0C3D :1073C000D11C08E813E1015010400930110501F10A :1073D00082E032D08823E1F4F6CF809709F088CF9D -:1073E00083E068E871E041E050E0A8D0FF2029F098 -:1073F0004F2D50E083E8BE01A1D083E469E871E03D -:1074000041E050E09BD081E5E81609F073CF70CFE2 -:1074100082E06CD0EFEF8F3F9E07F9F6E1CFFC01E1 +:1073E00083E068E871E041E050E0ACD0FF2029F094 +:1073F0004F2D50E083E8BE01A5D083E469E871E039 +:1074000041E050E09FD081E5E81609F073CF70CFDE +:1074100082E070D0EFEF8F3F9E07F9F6E1CFFC01DD :1074200004C08091F100819361506623D1F72898C0 :1074300084E680938D0108959FB7F89487708093B8 -:10744000E9008091F2009FBF0895FB018093E9005D -:1074500024E69BE610C08091E80085FFFCCF2898C9 -:1074600020938D018091F10081938091E80085FD4A -:1074700002C09093E800415050408FEF4F3F5807B3 -:1074800051F70895282F80918E018823C1F057FF6E -:107490001AC015C0289890938D018091F1008193B6 -:1074A000E217F307B9F74115510539F08091F20061 -:1074B000882319F48BE68093E800AFBF02C04FEF3A -:1074C0005FEFCA010895AFB7F89427702093E900E1 -:1074D0008091F200282F30E0241735070CF4A90121 -:1074E000FB019B01240F311D94E6DACFDF93CF938C -:1074F0000F92CDB7DEB7BE016F5F7F4F41E050E026 -:10750000C1DF019719F08FEF9FEF02C0898190E0F2 -:107510000F90CF91DF9108952FB7F89487708093E3 -:10752000E9008091E80085FD02C090E004C08091F0 -:10753000F20090E4981B2FBF892F08955F926F92FD -:107540007F928F929F92AF92BF92CF92DF92EF92F3 -:10755000FF920F931F93CF93DF93F82E6A018091D0 -:107560008E01882319F44FEF5FEF63C08B01EA01AE -:1075700057E0E52EEF208F2D90E040E2842E912CF5 -:10758000882299223AE3532E20E4A22EB12CA8227D -:10759000B92280EA682E8FE0782E43C08F2DBCDFA1 -:1075A000282F882321F4C3010197F1F73AC090E016 -:1075B000C817D9070CF42C2FC21BD1094FB7F89468 -:1075C000E092E9008114910421F406C01092F100C8 -:1075D00021502223D9F719C0F7FC03C0F801922FDC -:1075E00010C0C801322F06C0FC010196E491E0935F -:1075F000F10031503323C1F706C081918093F1002F -:1076000091509923D1F7020F111D8091E80085FF59 -:1076100005C0209729F4A114B10411F05092E8009C -:107620004FBF209709F0BACF769884E680938C01FB -:10763000A601CA01DF91CF911F910F91FF90EF90AA -:10764000DF90CF90BF90AF909F908F907F906F9082 -:107650005F9008950F931F93182FFB01A091910144 -:10766000B0919201BA010EEF2AC017FF02C09491A7 -:1076700001C0908120918F01309190012A173B0722 -:10768000ACF48091E8008570E1F38091E80082FF1E -:1076900003C04FEF5FEF16C09093F100C901019650 -:1076A0008F739070892B11F40093E8002F5F3F4F88 -:1076B0003093900120938F01615070403196611595 -:1076C000710599F6CA011F910F910895CF93DF9329 -:1076D0009C01EB018091E80082FFFCCFC9016C2F77 -:1076E0009EDE8BEF8093E800CE01DF91CF9108956D -:1076F0001F920F920FB60F9211242F933F938F93E7 -:107700008091E1001092E100282F83FF0FC01092BA -:10771000E90081E08093EB001092EC0082E380931B -:10772000ED0010928E0188E08093F00022FF26C0C9 -:1077300083E08093E9008091F200882319F08AE3C6 -:107740008093E80080918C01882351F080918C0116 -:10775000815080938C0180918C01882309F4769A62 -:1077600080918D01882351F080918D01815080930B -:107770008D0180918D01882309F4289A8F913F9182 -:107780002F910F900FBE0F901F90189510928E01A1 -:1077900081E08093D70080EA8093D80082E189BDA0 -:1077A00009B400FEFDCF80E98093D8008CE080937F -:1077B000E2001092E00008950895DF93CF930F92B6 -:1077C000CDB7DEB71982CE010196FEDC898190E04B -:1077D0000F90CF91DF9108951F920F920FB60F92E5 -:1077E0001124EF92FF921F932F933F934F935F9338 -:1077F0006F937F938F939F93AF93BF93EF93FF9379 -:10780000DF93CF93CDB7DEB76197DEBFCDBF1092C8 -:10781000E9008091E80083FFECC0CE01019668E0AA -:10782000FEDD82EF8093E800998197FF05C080918B -:10783000E80080FFFCCF03C08EEF8093E800292F83 -:1078400030E0C90180769070892B09F0B3C08A813D -:10785000882329F41092F1001092F100BFC081300A -:1078600009F4BCC0833009F4B9C0853049F4809173 -:10787000E80080FFFCCF8B8180688093E300AEC07E -:10788000863009F06DC01C81EF80F8841230A9F5B4 -:107890001092E9001092900110928F0110929201C3 -:1078A000109291018ADF99E0FE013996DF01292FBC -:1078B0001D922A95E9F799871A8791E09E8790E8AB -:1078C000988B9AEF998B20918F0130919001275FCF -:1078D0003F4F3C872B878D871092E90010929001D3 -:1078E00010928F01F0929201E092910180E0BF012D -:1078F00049E050E0AFDE61DF71C01092E900109204 -:10790000900110928F01F0929201E092910111305A -:1079100071F488E0E816F10411F41093930180915A -:107920009301882309F062C0E2E5F1E713C0133048 -:1079300009F058C08B81882319F4E4E1F1E70AC00B -:10794000823019F4E8E1F1E705C0813009F04AC05E -:10795000EAE3F1E7449150E080E8BF017BDE3EC0FE -:10796000873009F43FC0883021F481E08093F10032 -:1079700035C0893099F523703070232B99F5E7E7EE -:10798000F1E791E031E026E39093E9003093EB00DA -:1079900084918093EC002093ED009F5F31969430AA -:1079A00099F78EE78093EA001092EA008B8180932A -:1079B0008E0114C08F8198851092E9001092900179 -:1079C00010928F0190939201809391018D81882371 -:1079D00049F4CE01019602DC882321F08EEF8093DA -:1079E000E80007C081E28093EB0003C0E4E6F1E722 -:1079F000B1CF6196DEBFCDBFCF91DF91FF91EF9107 -:107A0000BF91AF919F918F917F916F915F914F91B6 -:107A10003F912F911F91FF90EF900F900FBE0F900D -:107A20001F901895EE0FFF1F0590F491E02D09941B -:047A3000F894FFCFF8 -:087A340000E100000000000069 +:10744000E9008091F2009FBF0895FB019FB7F89477 +:1074500087708093E90034E62BE610C08091E80045 +:1074600085FFFCCF289830938D018091F1008193A6 +:107470008091E80085FD02C02093E8004150504013 +:107480008FEF4F3F580751F79FBF0895282F8091E6 +:107490008E018823C1F057FF1AC015C02898909319 +:1074A0008D018091F1008193E217F307B9F741153F +:1074B000510539F08091F200882319F48BE680930E +:1074C000E800AFBF02C04FEF5FEFCA010895AFB74A +:1074D000F89427702093E9008091F200282F30E083 +:1074E000241735070CF4A901FB019B01240F311D62 +:1074F00094E6DACFDF93CF930F92CDB7DEB7BE011C +:107500006F5F7F4F41E050E0C1DF019719F08FEFCF +:107510009FEF02C0898190E00F90CF91DF91089595 +:107520002FB7F89487708093E9008091E80085FD7B +:1075300002C090E004C08091F20090E4981B2FBF3D +:10754000892F08955F926F927F928F929F92AF9250 +:10755000BF92CF92DF92EF92FF920F931F93CF9340 +:10756000DF93F82E6A0180918E01882319F44FEF82 +:107570005FEF68C08B01EA0157E0E52EEF208F2D09 +:1075800090E040E2842E912C882299223AE3532EF7 +:1075900020E4A22EB12CA822B92280EA682E8FE026 +:1075A000782E43C08F2DBCDF282F882321F4C30100 +:1075B0000197F1F73AC090E0C817D9070CF42C2FC7 +:1075C000C21BD1094FB7F894E092E90081149104ED +:1075D00021F406C01092F10021502223D9F719C0DE +:1075E000F7FC03C0F801922F10C0C801322F06C06B +:1075F000FC010196E491E093F10031503323C1F78F +:1076000006C081918093F10091509923D1F7020F28 +:10761000111D8091E80085FF05C0209729F4A11471 +:10762000B10411F05092E8004FBF209709F0BACF93 +:10763000F6FE03C08AE38093E800769884E68093A0 +:107640008C01A601CA01DF91CF911F910F91FF908C +:10765000EF90DF90CF90BF90AF909F908F907F90F2 +:107660006F905F9008950F931F93182FFB01A091C7 +:107670009101B0919201BA010EEF2AC017FF02C02A +:10768000949101C0908120918F01309190012A172F +:107690003B07ACF48091E8008570E1F38091E8004D +:1076A00082FF03C04FEF5FEF16C09093F100C90156 +:1076B00001968F739070892B11F40093E8002F5F6F +:1076C0003F4F3093900120938F016150704031966D +:1076D0006115710599F6CA011F910F910895CF9315 +:1076E000DF939C01EB018091E80082FFFCCFC90190 +:1076F0006C2F95DE8BEF8093E800CE01DF91CF9168 +:1077000008951F920F920FB60F9211242F933F935B +:107710008F938091E1001092E100282F83FF0FC02A +:107720001092E90081E08093EB001092EC0082E37C +:107730008093ED0010928E0188E08093F00022FF8C +:1077400026C083E08093E9008091F200882319F03D +:107750008AE38093E80080918C01882351F0809126 +:107760008C01815080938C0180918C01882309F4D5 +:10777000769A80918D01882351F080918D018150FE +:1077800080938D0180918D01882309F4289A8F912F +:107790003F912F910F900FBE0F901F901895109250 +:1077A0008E0181E08093D70080EA8093D80082E147 +:1077B00089BD09B400FEFDCF80E98093D8008CE03C +:1077C0008093E2001092E00008950895DF93CF9334 +:1077D0000F92CDB7DEB71982CE010196F5DC898113 +:1077E00090E00F90CF91DF9108951F920F920FB606 +:1077F0000F921124EF92FF921F932F933F934F9379 +:107800005F936F937F938F939F93AF93BF93EF9308 +:10781000FF93DF93CF93CDB7DEB76197DEBFCDBFC8 +:107820001092E9008091E80083FFECC0CE01019640 +:1078300068E0F5DD82EF8093E800998197FF05C04D +:107840008091E80080FFFCCF03C08EEF8093E800BA +:10785000292F30E0C90180769070892B09F0B3C0E0 +:107860008A81882329F41092F1001092F100BFC0A0 +:10787000813009F4BCC0833009F4B9C0853049F4C3 +:107880008091E80080FFFCCF8B8180688093E300CB +:10789000AEC0863009F06DC01C81EF80F8841230D4 +:1078A000A9F51092E9001092900110928F011092A8 +:1078B0009201109291018ADF99E0FE013996DF0171 +:1078C000292F1D922A95E9F799871A8791E09E87BB +:1078D00090E8988B9AEF998B20918F0130919001CD +:1078E000275F3F4F3C872B878D871092E9001092CE +:1078F000900110928F01F0929201E092910180E04C +:10790000BF0149E050E0AFDE61DF71C01092E900D5 +:107910001092900110928F01F0929201E0929101E9 +:10792000113071F488E0E816F10411F4109393011A +:1079300080919301882309F062C0E2E5F1E713C06A +:10794000133009F058C08B81882319F4E4E1F1E782 +:107950000AC0823019F4E8E1F1E705C0813009F08E +:107960004AC0EAE3F1E7449150E080E8BF017BDEE2 +:107970003EC0873009F43FC0883021F481E0809315 +:10798000F10035C0893099F523703070232B99F5BB +:10799000E7E7F1E791E031E026E39093E9003093E7 +:1079A000EB0084918093EC002093ED009F5F319673 +:1079B000943099F78EE78093EA001092EA008B8169 +:1079C00080938E0114C08F8198851092E9001092E7 +:1079D000900110928F0190939201809391018D817B +:1079E000882349F4CE010196F9DB882321F08EEF3C +:1079F0008093E80007C081E28093EB0003C0E4E6D7 +:107A0000F1E7B1CF6196DEBFCDBFCF91DF91FF919E +:107A1000EF91BF91AF919F918F917F916F915F9106 +:107A20004F913F912F911F91FF90EF900F900FBEBC +:107A30000F901F901895EE0FFF1F0590F491E02D09 +:067A40000994F894FFCF49 +:087A460000E100000000000057 :040000030000700089 :00000001FF diff --git a/bootloaders/nuevo_diskloader/Makefile b/bootloaders/nuevo_diskloader/Makefile index dc9172e..88e0cfe 100644 --- a/bootloaders/nuevo_diskloader/Makefile +++ b/bootloaders/nuevo_diskloader/Makefile @@ -40,11 +40,12 @@ ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2 ## Linker flags LDFLAGS = $(COMMON) -LDFLAGS += -Wl,-gc-sections,-Map=DiskLoader.map,--cref -LDFLAGS += -Wl,--section-start=.text=0x7000,--relax -LDFLAGS += -Wl,--gc-sections +#LDFLAGS += -Wl,-gc-sections,-Map=DiskLoader.map,--cref +#LDFLAGS += -Wl,--section-start=.text=0x7000,--relax +#LDFLAGS += -Wl,--gc-sections #LDFLAGS += -nodefaultlibs -nostartfiles #LDFLAGS += -nostartfiles +LDFLAGS += -Wl,-gc-sections,-Map=DiskLoader.map,--section-start=.text=0x7000,--relax ## Intel Hex file production flags diff --git a/bootloaders/nuevo_diskloader/src/DiskLoader.cpp b/bootloaders/nuevo_diskloader/src/DiskLoader.cpp index f611e17..a7ccde6 100644 --- a/bootloaders/nuevo_diskloader/src/DiskLoader.cpp +++ b/bootloaders/nuevo_diskloader/src/DiskLoader.cpp @@ -24,11 +24,12 @@ void entrypoint(void) u8 _flashbuf[128]; u8 _inSync; u8 _ok; +u16 do_reset = 0; volatile u16 _timeout; void Program(u8 ep, u16 page, u8 count) { - u8 write = page < 28*1024; // Don't write over firmware please + u8 write = page < 28*1024; // Don't write over bootloader please if (write) boot_page_erase(page); @@ -94,18 +95,18 @@ const u8 _consts[] = 0x00, // }; -int getch(void) -{ - u16 timeout; - u8 c; - for (timeout = 0; timeout; timeout--) - { - c = USB_Recv(CDC_RX); - if (c != -1) - return c; - } - return -1; -} +//int getch(void) +//{ +// u16 timeout; +// u8 c; +// for (timeout = 0; timeout; timeout--) +// { +// c = USB_Recv(CDC_RX); +// if (c != -1) +// return c; +// } +// return -1; +//} int main(void) __attribute__ ((naked)); @@ -245,8 +246,11 @@ int main() // Send ok USB_Send(CDC_TX|TRANSFER_RELEASE, &_ok, 1); - if ('Q' == cmd) + if ('Q' == cmd) + { + do_reset = 500; break; + } } } } diff --git a/bootloaders/nuevo_diskloader/src/USBCore.cpp b/bootloaders/nuevo_diskloader/src/USBCore.cpp index fffe6f7..453c2ff 100644 --- a/bootloaders/nuevo_diskloader/src/USBCore.cpp +++ b/bootloaders/nuevo_diskloader/src/USBCore.cpp @@ -219,7 +219,8 @@ u8 USB_Available(u8 ep) void USB_Recv_block(u8 ep, u8* dst, int len) { - SetEP(ep); +// SetEP(ep & 7); + LockEP lock(ep); while (len--) { while (!ReadWriteAllowed()) @@ -314,6 +315,9 @@ int USB_Send(u8 ep, const void* d, int len) ReleaseTX(); } } + if (ep & TRANSFER_RELEASE) + ReleaseTX(); + TX_LED_ON(); TxLEDPulse = TX_RX_LED_PULSE_MS; return r; -- cgit v1.2.3-18-g5258