Incorporating ladyada's watchdog timer changes into the bootloader source, but only compiling them in for the Pro and Pro Mini (since Nathan includes them in the bootloader he burns to the board). Added a WATCHDOG_MODS flag to the Makefile to specify that they should be included. Recompiled the pro .hex file to include them.

This commit is contained in:
David A. Mellis 2008-09-06 22:17:58 +00:00
parent c8aff1e34f
commit 0f3400fbae
3 changed files with 100 additions and 81 deletions

View File

@ -251,7 +251,19 @@ int main(void)
uint8_t ch,ch2;
uint16_t w;
#ifdef WATCHDOG_MODS
ch = MCUSR;
MCUSR = 0;
WDTCSR |= _BV(WDCE) | _BV(WDE);
WDTCSR = 0;
// Check if the WDT was used to reset, in which case we dont bootload and skip straight to the code. woot.
if (! (ch & _BV(EXTRF))) // if its a not an external reset...
app_start(); // skip bootloader
#else
asm volatile("nop\n\t");
#endif
/* set pin direction for bootloader pin and enable pullup */
/* for ATmega128, two pins need to be initialized */
@ -445,6 +457,11 @@ int main(void)
/* Leave programming mode */
else if(ch=='Q') {
nothing_response();
#ifdef WATCHDOG_MODS
// autoreset via watchdog (sneaky!)
WDTCSR = _BV(WDE);
while (1); // 16 ms
#endif
}

View File

@ -5,7 +5,7 @@
:103840000C944F1C0C944F1C0C944F1C0C944F1C4C
:103850000C944F1C0C944F1C0C944F1C0C944F1C3C
:103860000C944F1C0C944F1C11241FBECFEFD4E0BE
:10387000DEBFCDBF11E0A0E0B1E0E8E1FFE302C0B0
:10387000DEBFCDBF11E0A0E0B1E0ECE3FFE302C0AA
:1038800005900D92A230B107D9F712E0A2E0B1E0A5
:1038900001C01D92AD30B107E1F70C94311D0C94BD
:1038A000001CCF93DF93CDB7DEB724970FB6F89403
@ -36,82 +36,84 @@
:103A300084E10E94E41C812F0E94E41C80E10E942A
:103A4000E41C1F910895282F882351F090E0809165
:103A5000C00087FFFCCF8091C6009F5F2917B9F790
:103A60000895CFEFD4E0DEBFCDBF000089E18093A1
:103A7000C4001092C50088E18093C10086E0809365
:103A8000C2005098589A259A81E00E94511C0E94C9
:103A9000B81C8033B1F18133B9F1803409F454C0DA
:103AA000813409F45AC0823409F469C0853409F4B8
:103AB0006CC0803531F1813521F1823511F18535C8
:103AC00009F4B2C0863509F4BAC0843609F463C07B
:103AD000843709F4BBC0853709F40EC1863709F471
:103AE0004AC0809104018F5F80930401853079F68C
:103AF000E0910201F091030109950E94B81C803306
:103B000051F60E94EC1CC3CF0E94B81C803249F7CA
:103B100084E10E94E41C81E40E94E41C86E50E948A
:103B2000E41C82E50E94E41C80E20E94E41C89E41B
:103B30000E94E41C83E50E94E41C80E50E94E41CD2
:103B400080E10E94E41CA3CF0E94B81C8638C8F212
:103B50000E94B81C0E94EC1C9ACF0E94B81C8038AE
:103B600009F4F7C0813809F4F8C0823809F4F9C0C3
:103B7000883909F4BDC080E00E94051D88CF84E12A
:103B80000E94231D0E94EC1C82CF85E00E94231D11
:103B90000E94EC1C7CCF0E94B81C809309020E94FA
:103BA000B81C8093080280910C028E7F80930C02D7
:103BB0000E94B81C853409F4C6C080910802909117
:103BC0000902892B09F0ADC00E94B81C803209F0AF
:103BD00088CF80910C0280FFC8C08091080290912C
:103BE00009020097D1F02091060130910701E8E029
:103BF000F1E0AC014E0F5F1FF999FECF32BD21BD40
:103C0000819180BDFA9AF99A2F5F3F4F4E175F0757
:103C100099F7309307012093060184E10E94E41C88
:103C200080E10E94E41C33CF0E94B81C80930601FF
:103C30000E94B81C809307010E94EC1C28CF84E0EE
:103C40000E94231D80E00E94051D21CF0E94B81C08
:103C5000809309020E94B81C809308020E94B81C3D
:103C6000853409F4F4C080910C028E7F80930C029D
:103C70008091060190910701880F991F9093070189
:103C8000809306010E94B81C803209F000CF84E1C5
:103C90000E94E41C2091080230910902211531058F
:103CA00019F1C0E0D0E0E0910601F09107018091A8
:103CB0000C0280FFC4C0F999FECFF2BDE1BDF89AB5
:103CC00080B50E94E41CE0910601F0910701319655
:103CD000F0930701E0930601209108023091090258
:103CE0002196C217D30718F380E10E94E41CCFCEBF
:103CF00083E00E94051DCBCE0E94B81C803209F0E3
:103D0000F0CE84E10E94E41C8EE10E94E41C84E970
:103D10000E94E41C86E00E94E41C80E10E94E41CF6
:103D2000B6CEC0E0D0E008E011E00E94B81CF80177
:103D300081938F0121968091080290910902C81702
:103D4000D90798F341CF80910C02816080930C02D7
:103D500034CF82E00E94051D9ACE81E00E94051DAD
:103D600096CE80E10E94051D92CE8091070187FDCD
:103D700080C010920B028091060190910701880F7C
:103D8000991F90930701809306018091080280FF9C
:103D900009C080910802909109020196909309024E
:103DA00080930802F894F999FECF1127E09106015B
:103DB000F0910701C8E0D1E08091080290910902DA
:103DC000103091F40091570001700130D9F303E0F5
:103DD00000935700E8950091570001700130D9F326
:103DE00001E100935700E895099019900091570060
:103DF00001700130D9F301E000935700E895139565
:103E0000103498F011270091570001700130D9F358
:103E100005E000935700E8950091570001700130CC
:103E2000D9F301E100935700E8953296029709F023
:103E3000C7CF103011F00296E5CF1124EECE81FFEE
:103E40000CC03196F0930701E093060149CF8091B1
:103E50000C02816080930C0215CF84910E94E41CB7
:103E60002091080230910902E0910601F0910701CA
:103E7000E8CF81E080930B027ECF0F931F930E94C7
:103E8000B81C182F0E94E41C0E94B81C082F0E9426
:103E9000E41C11362CF0175501363CF0075508C0CC
:103EA0001033D4F310530136CCF700330CF0005329
:103EB0001295107F100F812F992787FD90951F91E4
:103EC0000F9108951F93282F992787FD9095807F44
:103ED00090709595879595958795959587959595E6
:103EE00087958A304CF0982F995A822F8F708A309C
:103EF0004CF0182F195A08C0982F905D822F8F70A0
:103F00008A30BCF7182F105D892F0E94E41C812F86
:083F10000E94E41C1F910895BA
:023F1800800027
:103A60000895CFEFD4E0DEBFCDBF94B714BE8091F0
:103A700060008861809360001092600091FFEFC148
:103A800089E18093C4001092C50088E18093C10051
:103A900086E08093C2005098589A259A81E00E944F
:103AA000511C0E94B81C8033B9F18133C1F18034BC
:103AB00009F455C0813409F45BC0823409F46AC04A
:103AC000853409F46DC0803539F1813509F404C1BC
:103AD000823511F1853509F4BDC0863509F4B3C0CE
:103AE000843609F463C0843709F4FCC0853709F4CF
:103AF000CEC0863709F44AC0809104018F5F80935D
:103B00000401853071F6E0910201F09103010995FD
:103B10000E94B81C803349F60E94EC1CC2CF0E9460
:103B2000B81C803249F784E10E94E41C81E40E94C1
:103B3000E41C86E50E94E41C82E50E94E41C80E20D
:103B40000E94E41C89E40E94E41C83E50E94E41CBA
:103B500080E50E94E41C80E10E94E41CA2CF0E9448
:103B6000B81C8638C8F20E94B81C0E94EC1C99CF81
:103B70000E94B81C803809F4ABC0813809F4A4C095
:103B8000823809F49DC0883909F496C080E00E940B
:103B9000051D87CF84E10E94231D0E94EC1C81CF6C
:103BA00085E00E94231D0E94EC1C7BCF0E94B81C64
:103BB000809309020E94B81C8093080280910C0235
:103BC0008E7F80930C020E94B81C853429F480916A
:103BD0000C02816080930C0280910802909109028E
:103BE000892B09F042C00E94B81C803209F084CFB2
:103BF00080910C0280FFC5C080910802909109025B
:103C00000097D1F02091060130910701E8E0F1E042
:103C1000AC014E0F5F1FF999FECF32BD21BD8191DE
:103C200080BDFA9AF99A2F5F3F4FE417F50799F78D
:103C3000309307012093060184E10E94E41C80E197
:103C40000E94E41C2ECF84E00E94231D80E00E948D
:103C5000051D27CF0E94B81C809306010E94B81C46
:103C6000809307010E94EC1C1CCFC0E0D0E008E06C
:103C700011E00E94B81CF80181938F012196809178
:103C8000080290910902C817D90798F3ACCF0E9497
:103C9000B81C803209F030CF84E10E94E41C8EE130
:103CA0000E94E41C84E90E94E41C86E00E94E41C5B
:103CB00080E10E94E41CF5CE83E00E94051DF1CE58
:103CC00080E10E94051DEDCE81E00E94051DE9CE38
:103CD00082E00E94051DE5CE0E94EC1C88E08093E6
:103CE0006000FFCF0E94B81C809309020E94B81C9C
:103CF000809308020E94B81C853409F4BEC08091EC
:103D00000C028E7F80930C02809106019091070136
:103D1000880F991F90930701809306010E94B81C99
:103D2000803209F0BECE84E10E94E41C809108023A
:103D300090910902009709F4BBCFC0E0D0E0E09178
:103D40000601F091070120910C0220FF8EC0F99925
:103D5000FECFF2BDE1BDF89A80B50E94E41CE0916F
:103D60000601F09107013196F0930701E0930601F7
:103D700080910802909109022196C817D90718F37B
:103D800097CF8091070187FD66C010920B0280914A
:103D9000060190910701880F991F90930701809366
:103DA00006018091080280FF09C08091080290916D
:103DB000090201969093090280930802F894F999F8
:103DC000FECF1127E0910601F0910701C8E0D1E094
:103DD0008091080290910902103091F400915700EF
:103DE00001700130D9F303E000935700E89500918A
:103DF000570001700130D9F301E100935700E895B5
:103E0000099019900091570001700130D9F301E039
:103E100000935700E8951395103498F011270091FE
:103E2000570001700130D9F305E000935700E89581
:103E30000091570001700130D9F301E10093570060
:103E4000E8953296029709F0C7CF103011F002962C
:103E5000E5CF1124F1CE81E080930B0298CFE09161
:103E60000201F091030109950BCE21FF0CC03196A0
:103E7000F0930701E09306017FCF80910C028160EF
:103E800080930C024BCF84910E94E41C8091080225
:103E900090910902E0910601F0910701E8CF0F939C
:103EA0001F930E94B81C182F0E94E41C0E94B81C8B
:103EB000082F0E94E41C11362CF0175501363CF0F7
:103EC000075508C01033D4F310530136CCF7003334
:103ED0000CF000531295107F100F812F992787FD4A
:103EE00090951F910F9108951F93282F992787FD73
:103EF0009095807F907095958795959587959595E8
:103F00008795959587958A304CF0982F995A822FEE
:103F10008F708A304CF0182F195A08C0982F905D76
:103F2000822F8F708A30BCF7182F105D892F0E9466
:0C3F3000E41C812F0E94E41C1F910895E6
:023F3C00800003
:0400000300003800C1
:00000001FF

View File

@ -81,21 +81,21 @@ lilypad_resonator: HFUSE = DD
lilypad_resonator: LFUSE = C6
pro8: TARGET = pro_8MHz
pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1'
pro8: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS'
pro8: $(PROGRAM)_pro_8MHz.hex
pro8: AVR_FREQ = 8000000L
pro8: HFUSE = DD
pro8: LFUSE = C6
pro16: TARGET = pro_16MHz
pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1'
pro16: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS'
pro16: $(PROGRAM)_pro_16MHz.hex
pro16: AVR_FREQ = 16000000L
pro16: HFUSE = DD
pro16: LFUSE = C6
pro20: TARGET = pro_20mhz
pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1'
pro20: CFLAGS += '-DMAX_TIME_COUNT=F_CPU>>4' '-DNUM_LED_FLASHES=1' '-DWATCHDOG_MODS'
pro20: $(PROGRAM)_pro_20mhz.hex
pro20: AVR_FREQ = 20000000L
pro20: HFUSE = DD