From 0a69d10b37a782db2220b4f98adf6c2725f2d913 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Mon, 31 Oct 2011 21:36:29 -0400 Subject: check to see if a sketch has been loaded before jumping out of bootloader --- bootloaders/diskloader/DiskLoader-Leonardo.hex | 297 +++++++++++++------------ bootloaders/diskloader/src/DiskLoader.cpp | 3 + 2 files changed, 152 insertions(+), 148 deletions(-) (limited to 'bootloaders') diff --git a/bootloaders/diskloader/DiskLoader-Leonardo.hex b/bootloaders/diskloader/DiskLoader-Leonardo.hex index b5b257f..0e2c445 100644 --- a/bootloaders/diskloader/DiskLoader-Leonardo.hex +++ b/bootloaders/diskloader/DiskLoader-Leonardo.hex @@ -1,6 +1,6 @@ :10700000BDC00000E0C00000DEC00000DCC0000029 :10701000DAC00000D8C00000D6C00000D4C0000014 -:10702000D2C00000D0C00000BCC300002EC40000CD +:10702000D2C00000D0C00000C4C3000036C40000BD :10703000CAC00000C8C00000C6C00000C4C0000034 :10704000C2C00000C0C00000BEC00000BCC0000044 :10705000BAC00000B8C00000B6C00000B4C0000054 @@ -9,7 +9,7 @@ :10708000A2C00000A0C000009EC000009CC0000084 :107090009AC0000098C0000096C0000094C0000094 :1070A00092C0000090C000008EC0000011241FBEDE -:1070B000CFEFDAE0DEBFCDBF23C1080B0002020232 +:1070B000CFEFDAE0DEBFCDBF2AC1080B000202022B :1070C0000100090400000102020000052400100173 :1070D0000524010101042402060524060001070518 :1070E000810310004009040100020A0000000705A6 @@ -21,158 +21,159 @@ :107140006400750069006E006F0020004C004C0068 :1071500043001201000200000040412334000001FE :10716000010200011201000202000040412334002C -:1071700000010102000100C18081353C11241FBEC5 -:10718000CFEFDAE0DEBFCDBF11E0A0E0B1E0E6EE88 +:1071700000010102000100C180813D3C11241FBEBD +:10718000CFEFDAE0DEBFCDBF11E0A0E0B1E0E6EF87 :10719000FAE702C005900D92A830B107D9F711E0C7 :1071A000A8E0B1E001C01D92A739B107E1F711E7EE -:1071B000CCE7D1E703C02297FE018FD4CA37D107AD -:1071C000D1F79ED08EC41CCFFC0180818E5F80835E -:1071D00080E86AEB70E742E450E095C2FC018181EF +:1071B000CCE7D1E703C02297FE0197D4CA37D107A5 +:1071C000D1F7A5D096C41CCFFC0180818E5F80834F +:1071D00080E86AEB70E742E450E09DC2FC018181E7 :1071E0009081913A49F48132C1F480E060E071E02D -:1071F00047E050E088D20FC0913279F4803231F408 -:1072000080E091E067E070E0BAD205C0823229F4F4 +:1071F00047E050E090D20FC0913279F4803231F400 +:1072000080E091E067E070E0C2D205C0823229F4EC :1072100082818093070181E0089580E008952091A4 :107220008C0130918D012F5F3F4F30938D01209362 :107230008C01C901892F99278695982F803418F0E1 :107240008FE7891B982F990F921710F4479808958C -:10725000479A08954798289A769AF89401E005BFCE -:1072600000E005BF81E08093E0001092E200EE278D -:10727000FF2709940895FF920F931F93CF93DF93F5 -:10728000982F8B01FF2480E76030780738F4FF24C3 -:10729000F39483E0FB0180935700E895C42FD0E07E -:1072A000892F68E071E0AE0120D1FF2019F107B607 -:1072B00000FCFDCFD595C7954C2FF801A8E0B1E0B3 -:1072C00020E031E009C08D919D910C013093570071 -:1072D000E895112432962F5F2417A8F385E0F80172 -:1072E00080935700E89507B600FCFDCF81E18093BD -:1072F0005700E895DF91CF911F910F91FF9008956E -:1073000088E10FB6F89480936000109260000FBE81 -:107310003F9A209A6E9A90E89093610010926100D3 -:1073200081E885BF95BF01E005BF02E005BF769A01 -:10733000289A479886E991E082D2789484E18093F4 -:10734000880180E180938901CC24DD2470E9A72E97 -:1073500071E0B72E02C0CC24DD2482E0BDD08823AA -:1073600009F492C082E016D1E82E8CEF90E7FC0180 -:1073700024913196029644912E1511F02223B9F7EB -:1073800010928B0110928A0150E082E068E071E077 -:10739000ACD0F1E4EF1679F46091080160586330E5 -:1073A00028F0683111F064E001C063E0062F10E0BE -:1073B000015F1E4809C026E5E21681F480910801AC -:1073C000803329F003E111E7FF24F3942EC080916C -:1073D0000A01082F10E0045F1E48F6CF85E7E81683 -:1073E00029F40CE011E763E0F62E1FC0E5E5EE1688 -:1073F00039F4C0900801D0900901CC0CDD1C0CC000 -:10740000F4E6EF1631F482E0B6014091090133DF72 -:1074100003C024E7E21621F003E111E7FF2405C0D1 -:10742000F09009018601CF0CD11CC8E8D3E1219767 -:10743000C930D10509F43BC082E04ED0882309F061 -:1074400036C0F5CF809709F086CF83E068E871E019 -:1074500041E050E0C7D0FF2029F04F2D50E083E8F5 -:10746000B801C0D083E469E871E041E050E0BAD0EF -:1074700081E5E81609F071CF88EE93E0F5013197C8 -:10748000F1F70197D9F711C0CADEC5010197F1F7ED -:1074900080918A0190918B01019790938B01809349 -:1074A0008A010196019709F058CFD4DE56CF82E0C9 -:1074B00071D0EFEF8F3F9E0709F0C4CFC6CFFC011C -:1074C00004C08091F100819361506623D1F7289820 -:1074D00084E680938F0108959FB7F8948770809316 -:1074E000E9008091F2009FBF0895FB019FB7F894D7 -:1074F00087708093E90034E62BE610C08091E800A5 -:1075000085FFFCCF289830938F018091F100819303 -:107510008091E80085FD02C02093E8004150504072 -:107520008FEF4F3F580751F79FBF0895282F809145 -:1075300090018823C1F057FF1AC015C02898909376 -:107540008F018091F1008193E217F307B9F741159C -:10755000510539F08091F200882319F48BE680936D -:10756000E800AFBF02C04FEF5FEFCA010895AFB7A9 -:10757000F89427702093E9008091F200282F30E0E2 -:10758000241735070CF4A901FB019B01240F311DC1 -:1075900094E6DACFDF93CF930F92CDB7DEB7BE017B -:1075A0006F5F7F4F41E050E0C1DF019719F08FEF2F -:1075B0009FEF02C0898190E00F90CF91DF910895F5 -:1075C0002FB7F89487708093E9008091E80085FDDB -:1075D00002C090E004C08091F20090E4981B2FBF9D -:1075E000892F08955F926F927F928F929F92AF92B0 -:1075F000BF92CF92DF92EF92FF920F931F93CF93A0 -:10760000DF93F82E6A0180919001882319F44FEFDF -:107610005FEF68C08B01EA0157E0E52EEF208F2D68 -:1076200090E040E2842E912C882299223AE3532E56 -:1076300020E4A22EB12CA822B92280EA682E8FE085 -:10764000782E43C08F2DBCDF282F882321F4C3015F -:107650000197F1F73AC090E0C817D9070CF42C2F26 -:10766000C21BD1094FB7F894E092E900811491044C -:1076700021F406C01092F10021502223D9F719C03D -:10768000F7FC03C0F801922F10C0C801322F06C0CA -:10769000FC010196E491E093F10031503323C1F7EE -:1076A00006C081918093F10091509923D1F7020F88 -:1076B000111D8091E80085FF05C0209729F4A114D1 -:1076C000B10411F05092E8004FBF209709F0BACFF3 -:1076D000F6FE03C08AE38093E800769884E6809300 -:1076E0008E01A601CA01DF91CF911F910F91FF90EA -:1076F000EF90DF90CF90BF90AF909F908F907F9052 -:107700006F905F9008950F931F93182FFB01A09126 -:107710009301B0919401BA010EEF2AC017FF02C085 -:10772000949101C0908120919101309192012A178A -:107730003B07ACF48091E8008570E1F38091E800AC -:1077400082FF03C04FEF5FEF16C09093F100C901B5 -:1077500001968F739070892B11F40093E8002F5FCE -:107760003F4F3093920120939101615070403196C8 -:107770006115710599F6CA011F910F910895CF9374 -:10778000DF939C01EB018091E80082FFFCCFC901EF -:107790006C2F95DE8BEF8093E800CE01DF91CF91C7 -:1077A00008951F920F920FB60F9211242F933F93BB -:1077B0008F938091E1001092E100282F83FF0FC08A -:1077C0001092E90081E08093EB001092EC0082E3DC -:1077D0008093ED001092900188E08093F00022FFEA -:1077E00026C083E08093E9008091F200882319F09D -:1077F0008AE38093E80080918E01882351F0809184 -:107800008E01815080938E0180918E01882309F42E -:10781000769A80918F01882351F080918F01815059 -:1078200080938F0180918F01882309F4289A8F918A -:107830003F912F910F900FBE0F901F9018951092AF -:10784000900181E08093D70080EA8093D80082E1A4 -:1078500089BD09B400FEFDCF80E98093D8008CE09B -:107860008093E2001092E00008950895DF93CF9393 -:107870000F92CDB7DEB71982CE010196A5DC8981C2 -:1078800090E00F90CF91DF9108951F920F920FB665 -:107890000F921124EF92FF921F932F933F934F93D8 -:1078A0005F936F937F938F939F93AF93BF93EF9368 -:1078B000FF93DF93CF93CDB7DEB76197DEBFCDBF28 -:1078C0001092E9008091E80083FFECC0CE010196A0 -:1078D00068E0F5DD82EF8093E800998197FF05C0AD -:1078E0008091E80080FFFCCF03C08EEF8093E8001A -:1078F000292F30E0C90180769070892B09F0B3C040 -:107900008A81882329F41092F1001092F100BFC0FF -:10791000813009F4BCC0833009F4B9C0853049F422 -:107920008091E80080FFFCCF8B8180688093E3002A -:10793000AEC0863009F06DC01C81EF80F884123033 -:10794000A9F51092E9001092920110929101109203 -:107950009401109293018ADF99E0FE013996DF01CC -:10796000292F1D922A95E9F799871A8791E09E871A -:1079700090E8988B9AEF998B209191013091920128 -:10798000275F3F4F3C872B878D871092E90010922D -:10799000920110929101F0929401E092930180E0A3 -:1079A000BF0149E050E0AFDE61DF71C01092E90035 -:1079B0001092920110929101F0929401E092930141 -:1079C000113071F488E0E816F10411F41093950178 -:1079D00080919501882309F062C0E2E5F1E713C0C8 -:1079E000133009F058C08B81882319F4E4E1F1E7E2 -:1079F0000AC0823019F4E8E1F1E705C0813009F0EE -:107A00004AC0EAE3F1E7449150E080E8BF017BDE41 -:107A10003EC0873009F43FC0883021F481E0809374 -:107A2000F10035C0893099F523703070232B99F51A -:107A3000E7E7F1E791E031E026E39093E900309346 -:107A4000EB0084918093EC002093ED009F5F3196D2 -:107A5000943099F78EE78093EA001092EA008B81C8 -:107A60008093900114C08F8198851092E900109244 -:107A700092011092910190939401809393018D81D2 -:107A8000882349F4CE010196A9DB882321F08EEFEB -:107A90008093E80007C081E28093EB0003C0E4E636 -:107AA000F1E7B1CF6196DEBFCDBFCF91DF91FF91FE -:107AB000EF91BF91AF919F918F917F916F915F9166 -:107AC0004F913F912F911F91FF90EF900F900FBE1C -:107AD0000F901F901895EE0FFF1F0590F491E02D69 -:067AE0000994F894FFCFA9 -:087AE60000E1000000000000B7 +:10725000479A0895E0E0F0E0859194918F5F9F4F09 +:1072600081F04798289A769AF89401E005BF00E0EB +:1072700005BF81E08093E0001092E200EE27FF2737 +:1072800009940895FF920F931F93CF93DF93982F44 +:107290008B01FF2480E76030780738F4FF24F394F3 +:1072A00083E0FB0180935700E895C42FD0E0892F3D +:1072B00068E071E0AE0121D1FF2019F107B600FCB2 +:1072C000FDCFD595C7954C2FF801A8E0B1E020E09F +:1072D00031E009C08D919D910C0130935700E895E4 +:1072E000112432962F5F2417A8F385E0F8018093CC +:1072F0005700E89507B600FCFDCF81E18093570069 +:10730000E895DF91CF911F910F91FF90089588E14B +:107310000FB6F89480936000109260000FBE3F9A01 +:10732000209A6E9A90E8909361001092610081E833 +:1073300085BF95BF01E005BF02E005BF769A289A98 +:10734000479886E991E083D2789484E1809388011C +:1073500080E180938901CC24DD2470E9A72E71E0BF +:10736000B72E02C0CC24DD2482E0BED0882309F4ED +:1073700093C082E017D1E82E8CEF90E7FC012491B6 +:107380003196029644912E1511F02223B9F71092EE +:107390008B0110928A0150E082E068E071E0ADD08C +:1073A000F1E4EF1679F4609108016058633028F039 +:1073B000683111F064E001C063E0C62FD0E0C15F26 +:1073C000DE4810C026E5E21681F480910801803382 +:1073D00019F0FF24F39428C080910A01C82FD0E04F +:1073E000C45FDE48FF24F39427C085E7E81629F43C +:1073F00063E0F62ECCE0D1E71FC0E5E5EE1639F4E8 +:10740000C0900801D0900901CC0CDD1C0CC0F4E642 +:10741000EF1631F482E0B6014091090133DF03C079 +:1074200024E7E21621F0FF24C3E1D1E705C0F09084 +:107430000901E601CF0CD11C08E813E1015010400E +:107440000930110509F43BC082E04ED0882309F0D1 +:1074500036C0F4CF809709F085CF83E068E871E00B +:1074600041E050E0C7D0FF2029F04F2D50E083E8E5 +:10747000BE01C0D083E469E871E041E050E0BAD0D9 +:1074800081E5E81609F070CF88EE93E0F5013197B9 +:10749000F1F70197D9F711C0C2DEC5010197F1F7E5 +:1074A00080918A0190918B01019790938B01809339 +:1074B0008A010196019709F057CFCCDE55CF82E0C3 +:1074C00071D0EFEF8F3F9E0709F0C4CFC6CFFC010C +:1074D00004C08091F100819361506623D1F7289810 +:1074E00084E680938F0108959FB7F8948770809306 +:1074F000E9008091F2009FBF0895FB019FB7F894C7 +:1075000087708093E90034E62BE610C08091E80094 +:1075100085FFFCCF289830938F018091F1008193F3 +:107520008091E80085FD02C02093E8004150504062 +:107530008FEF4F3F580751F79FBF0895282F809135 +:1075400090018823C1F057FF1AC015C02898909366 +:107550008F018091F1008193E217F307B9F741158C +:10756000510539F08091F200882319F48BE680935D +:10757000E800AFBF02C04FEF5FEFCA010895AFB799 +:10758000F89427702093E9008091F200282F30E0D2 +:10759000241735070CF4A901FB019B01240F311DB1 +:1075A00094E6DACFDF93CF930F92CDB7DEB7BE016B +:1075B0006F5F7F4F41E050E0C1DF019719F08FEF1F +:1075C0009FEF02C0898190E00F90CF91DF910895E5 +:1075D0002FB7F89487708093E9008091E80085FDCB +:1075E00002C090E004C08091F20090E4981B2FBF8D +:1075F000892F08955F926F927F928F929F92AF92A0 +:10760000BF92CF92DF92EF92FF920F931F93CF938F +:10761000DF93F82E6A0180919001882319F44FEFCF +:107620005FEF68C08B01EA0157E0E52EEF208F2D58 +:1076300090E040E2842E912C882299223AE3532E46 +:1076400020E4A22EB12CA822B92280EA682E8FE075 +:10765000782E43C08F2DBCDF282F882321F4C3014F +:107660000197F1F73AC090E0C817D9070CF42C2F16 +:10767000C21BD1094FB7F894E092E900811491043C +:1076800021F406C01092F10021502223D9F719C02D +:10769000F7FC03C0F801922F10C0C801322F06C0BA +:1076A000FC010196E491E093F10031503323C1F7DE +:1076B00006C081918093F10091509923D1F7020F78 +:1076C000111D8091E80085FF05C0209729F4A114C1 +:1076D000B10411F05092E8004FBF209709F0BACFE3 +:1076E000F6FE03C08AE38093E800769884E68093F0 +:1076F0008E01A601CA01DF91CF911F910F91FF90DA +:10770000EF90DF90CF90BF90AF909F908F907F9041 +:107710006F905F9008950F931F93182FFB01A09116 +:107720009301B0919401BA010EEF2AC017FF02C075 +:10773000949101C0908120919101309192012A177A +:107740003B07ACF48091E8008570E1F38091E8009C +:1077500082FF03C04FEF5FEF16C09093F100C901A5 +:1077600001968F739070892B11F40093E8002F5FBE +:107770003F4F3093920120939101615070403196B8 +:107780006115710599F6CA011F910F910895CF9364 +:10779000DF939C01EB018091E80082FFFCCFC901DF +:1077A0006C2F95DE8BEF8093E800CE01DF91CF91B7 +:1077B00008951F920F920FB60F9211242F933F93AB +:1077C0008F938091E1001092E100282F83FF0FC07A +:1077D0001092E90081E08093EB001092EC0082E3CC +:1077E0008093ED001092900188E08093F00022FFDA +:1077F00026C083E08093E9008091F200882319F08D +:107800008AE38093E80080918E01882351F0809173 +:107810008E01815080938E0180918E01882309F41E +:10782000769A80918F01882351F080918F01815049 +:1078300080938F0180918F01882309F4289A8F917A +:107840003F912F910F900FBE0F901F90189510929F +:10785000900181E08093D70080EA8093D80082E194 +:1078600089BD09B400FEFDCF80E98093D8008CE08B +:107870008093E2001092E00008950895DF93CF9383 +:107880000F92CDB7DEB71982CE0101969DDC8981BA +:1078900090E00F90CF91DF9108951F920F920FB655 +:1078A0000F921124EF92FF921F932F933F934F93C8 +:1078B0005F936F937F938F939F93AF93BF93EF9358 +:1078C000FF93DF93CF93CDB7DEB76197DEBFCDBF18 +:1078D0001092E9008091E80083FFECC0CE01019690 +:1078E00068E0F5DD82EF8093E800998197FF05C09D +:1078F0008091E80080FFFCCF03C08EEF8093E8000A +:10790000292F30E0C90180769070892B09F0B3C02F +:107910008A81882329F41092F1001092F100BFC0EF +:10792000813009F4BCC0833009F4B9C0853049F412 +:107930008091E80080FFFCCF8B8180688093E3001A +:10794000AEC0863009F06DC01C81EF80F884123023 +:10795000A9F51092E90010929201109291011092F3 +:107960009401109293018ADF99E0FE013996DF01BC +:10797000292F1D922A95E9F799871A8791E09E870A +:1079800090E8988B9AEF998B209191013091920118 +:10799000275F3F4F3C872B878D871092E90010921D +:1079A000920110929101F0929401E092930180E093 +:1079B000BF0149E050E0AFDE61DF71C01092E90025 +:1079C0001092920110929101F0929401E092930131 +:1079D000113071F488E0E816F10411F41093950168 +:1079E00080919501882309F062C0E2E5F1E713C0B8 +:1079F000133009F058C08B81882319F4E4E1F1E7D2 +:107A00000AC0823019F4E8E1F1E705C0813009F0DD +:107A10004AC0EAE3F1E7449150E080E8BF017BDE31 +:107A20003EC0873009F43FC0883021F481E0809364 +:107A3000F10035C0893099F523703070232B99F50A +:107A4000E7E7F1E791E031E026E39093E900309336 +:107A5000EB0084918093EC002093ED009F5F3196C2 +:107A6000943099F78EE78093EA001092EA008B81B8 +:107A70008093900114C08F8198851092E900109234 +:107A800092011092910190939401809393018D81C2 +:107A9000882349F4CE010196A1DB882321F08EEFE3 +:107AA0008093E80007C081E28093EB0003C0E4E626 +:107AB000F1E7B1CF6196DEBFCDBFCF91DF91FF91EE +:107AC000EF91BF91AF919F918F917F916F915F9156 +:107AD0004F913F912F911F91FF90EF900F900FBE0C +:107AE0000F901F901895EE0FFF1F0590F491E02D59 +:067AF0000994F894FFCF99 +:087AF60000E1000000000000A7 :040000030000700089 :00000001FF diff --git a/bootloaders/diskloader/src/DiskLoader.cpp b/bootloaders/diskloader/src/DiskLoader.cpp index 30ac1b6..2792bc6 100644 --- a/bootloaders/diskloader/src/DiskLoader.cpp +++ b/bootloaders/diskloader/src/DiskLoader.cpp @@ -109,6 +109,9 @@ const u8 _consts[] = void start_sketch() { + if (pgm_read_word(0) == -1) // no sketch has been uploaded yet - stay in bootloader + return; + L_LED_OFF(); RX_LED_OFF(); TX_LED_OFF(); -- cgit v1.2.3-18-g5258