mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-15 12:29:26 +01:00
Increasing bootloader delay and timing out after a certain number of errors in received data.
This commit is contained in:
parent
0761e779b0
commit
b2018df662
@ -78,7 +78,10 @@
|
|||||||
/* 20060803: hacked by DojoCorp */
|
/* 20060803: hacked by DojoCorp */
|
||||||
/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */
|
/* 20070626: hacked by David A. Mellis to decrease waiting time for auto-reset */
|
||||||
/* set the waiting time for the bootloader */
|
/* set the waiting time for the bootloader */
|
||||||
#define MAX_TIME_COUNT (F_CPU>>5)
|
#define MAX_TIME_COUNT (F_CPU>>4)
|
||||||
|
|
||||||
|
/* 20070707: hacked by David A. Mellis - after this many errors give up and launch application */
|
||||||
|
#define MAX_ERROR_COUNT 5
|
||||||
|
|
||||||
/* set the UART baud rate */
|
/* set the UART baud rate */
|
||||||
/* 20060803: hacked by DojoCorp */
|
/* 20060803: hacked by DojoCorp */
|
||||||
@ -236,6 +239,8 @@ uint8_t pagesz=0x80;
|
|||||||
uint8_t i;
|
uint8_t i;
|
||||||
uint8_t bootuart = 0;
|
uint8_t bootuart = 0;
|
||||||
|
|
||||||
|
uint8_t error_count = 0;
|
||||||
|
|
||||||
void (*app_start)(void) = 0x0000;
|
void (*app_start)(void) = 0x0000;
|
||||||
|
|
||||||
|
|
||||||
@ -387,6 +392,9 @@ int main(void)
|
|||||||
putch('S');
|
putch('S');
|
||||||
putch('P');
|
putch('P');
|
||||||
putch(0x10);
|
putch(0x10);
|
||||||
|
} else {
|
||||||
|
if (++error_count == MAX_ERROR_COUNT)
|
||||||
|
app_start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -600,6 +608,9 @@ int main(void)
|
|||||||
}
|
}
|
||||||
putch(0x14);
|
putch(0x14);
|
||||||
putch(0x10);
|
putch(0x10);
|
||||||
|
} else {
|
||||||
|
if (++error_count == MAX_ERROR_COUNT)
|
||||||
|
app_start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -654,6 +665,9 @@ int main(void)
|
|||||||
putch(SIG2);
|
putch(SIG2);
|
||||||
putch(SIG3);
|
putch(SIG3);
|
||||||
putch(0x10);
|
putch(0x10);
|
||||||
|
} else {
|
||||||
|
if (++error_count == MAX_ERROR_COUNT)
|
||||||
|
app_start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -777,8 +791,9 @@ int main(void)
|
|||||||
}
|
}
|
||||||
/* end of monitor */
|
/* end of monitor */
|
||||||
#endif
|
#endif
|
||||||
|
else if (++error_count == MAX_ERROR_COUNT) {
|
||||||
|
app_start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* end of forever loop */
|
/* end of forever loop */
|
||||||
|
|
||||||
@ -919,6 +934,9 @@ void byte_response(uint8_t val)
|
|||||||
putch(0x14);
|
putch(0x14);
|
||||||
putch(val);
|
putch(val);
|
||||||
putch(0x10);
|
putch(0x10);
|
||||||
|
} else {
|
||||||
|
if (++error_count == MAX_ERROR_COUNT)
|
||||||
|
app_start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -928,6 +946,9 @@ void nothing_response(void)
|
|||||||
if (getch() == ' ') {
|
if (getch() == ' ') {
|
||||||
putch(0x14);
|
putch(0x14);
|
||||||
putch(0x10);
|
putch(0x10);
|
||||||
|
} else {
|
||||||
|
if (++error_count == MAX_ERROR_COUNT)
|
||||||
|
app_start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user