mirror of
https://github.com/arduino/Arduino.git
synced 2024-12-03 14:24:15 +01:00
e81c1123b6
Optiboot does not support ArduinoasISP programmer. When avrdude runs and talks to an arduino running ArduinoISP, it needs the optiboot (entered due to auto-reset) to abort and start the ArduinoISP "application" when it sees communications at the wrong serial speed. Unfortunately, optiboot treats all unrecognized command characters as "no-ops" and responds/loops for more commands, leading to a nice loop that never gets to the sketch. This patch causes characters received with Framing errors (the most likely error for speed mis-matches) to NOT reset the watchdog timer (normally done in getch()), which will cause the application to start if it continues for "a while." (tested. Works! Running ArduinoISP at speeds as high as 57600 still causes the bootloader to start the sketch (although it fails later on for other reasons.))
81 lines
1.9 KiB
C
81 lines
1.9 KiB
C
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__) || defined(__AVR_ATmega88) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega88__)
|
|
/* Onboard LED is connected to pin PB5 in Arduino NG, Diecimila, and Duemilanove */
|
|
#define LED_DDR DDRB
|
|
#define LED_PORT PORTB
|
|
#define LED_PIN PINB
|
|
#define LED PINB5
|
|
|
|
/* Ports for soft UART */
|
|
#ifdef SOFT_UART
|
|
#define UART_PORT PORTD
|
|
#define UART_PIN PIND
|
|
#define UART_DDR DDRD
|
|
#define UART_TX_BIT 1
|
|
#define UART_RX_BIT 0
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__AVR_ATmega8__)
|
|
//Name conversion R.Wiersma
|
|
#define UCSR0A UCSRA
|
|
#define UDR0 UDR
|
|
#define UDRE0 UDRE
|
|
#define RXC0 RXC
|
|
#define FE0 FE
|
|
#define TIFR1 TIFR
|
|
#define WDTCSR WDTCR
|
|
#endif
|
|
|
|
/* Luminet support */
|
|
#if defined(__AVR_ATtiny84__)
|
|
/* Red LED is connected to pin PA4 */
|
|
#define LED_DDR DDRA
|
|
#define LED_PORT PORTA
|
|
#define LED_PIN PINA
|
|
#define LED PINA4
|
|
/* Ports for soft UART - left port only for now. TX/RX on PA2/PA3 */
|
|
#ifdef SOFT_UART
|
|
#define UART_PORT PORTA
|
|
#define UART_PIN PINA
|
|
#define UART_DDR DDRA
|
|
#define UART_TX_BIT 2
|
|
#define UART_RX_BIT 3
|
|
#endif
|
|
#endif
|
|
|
|
/* Sanguino support */
|
|
#if defined(__AVR_ATmega644P__)
|
|
/* Onboard LED is connected to pin PB0 on Sanguino */
|
|
#define LED_DDR DDRB
|
|
#define LED_PORT PORTB
|
|
#define LED_PIN PINB
|
|
#define LED PINB0
|
|
|
|
/* Ports for soft UART */
|
|
#ifdef SOFT_UART
|
|
#define UART_PORT PORTD
|
|
#define UART_PIN PIND
|
|
#define UART_DDR DDRD
|
|
#define UART_TX_BIT 1
|
|
#define UART_RX_BIT 0
|
|
#endif
|
|
#endif
|
|
|
|
/* Mega support */
|
|
#if defined(__AVR_ATmega1280__)
|
|
/* Onboard LED is connected to pin PB7 on Arduino Mega */
|
|
#define LED_DDR DDRB
|
|
#define LED_PORT PORTB
|
|
#define LED_PIN PINB
|
|
#define LED PINB7
|
|
|
|
/* Ports for soft UART */
|
|
#ifdef SOFT_UART
|
|
#define UART_PORT PORTE
|
|
#define UART_PIN PINE
|
|
#define UART_DDR DDRE
|
|
#define UART_TX_BIT 1
|
|
#define UART_RX_BIT 0
|
|
#endif
|
|
#endif
|