Age | Commit message (Collapse) | Author |
|
Previously, if avrdude skipped the upload step the read while write memory might never be reenabled. This would prevent the bootloader from ending and the sketch from starting - the bootloader just continued to run even after a successful upload. Now enable RWW when we receive the AVR109 "Exit bootloader" 'E' command. Had to disable lock bit changing support in the bootloader to free up flash for the change - will anyone miss it?
|
|
attempt to fix bug reported by Dave Mellis:
"avrdude: ser_close(): can’t reset attributes for device: Invalid argument"
is thrown after attempting an upload in the IDE (though the upload seems to be successful)
|
|
self-programming mode
Earlier approach had bootloader end as soon as it was told to. On Linux this caused problems with avrdude because the microcontroller never had a chance to send an acknowledgement.
|
|
LUFA-based caterina
|
|
|
|
Before the sketch initiates an auto-reset for upload it pokes a magic word into a specific RAM address. On starting the bootloader checks this address. If it finds the magic word it knows the bootloader code should run. If not it jumps straight back to sketch.
Test in a sketch by adding to setup():
wdt_enable(WDTO_2S);
Sketch should upload, start, run for two seconds, WDT, and sketch should restart (not bootloader).
Had to cut out unused descriptor code to make the bootloader still fit in 4k.
|
|
Disconnect programmer after burning bootloader to get the full effect. ICSP and JTAG programmers do a hardware reset after any reset condition, confusing the firmware a little.
|
|
bootloader, 0x0801 for sketch)
|
|
grabbing different COM numbers on Windows
|
|
string, and serial number
|
|
Timer 1 interrupts were trashing self-programming timing. Now disable Timer 1 compare match before doing Flash tasks and reenable afterward.
|
|
|
|
|
|
had to remove TIMER1 operation from bootloader - was interfering with normal sketch operation
|
|
after upload finished.
|
|
if reset was caused by WDT
|
|
|
|
|
|
|
|
unnecessary files
|
|
|
|
|
|
4b05c3fc7529477fb7031d42103c15b50a6b58be)
Windows wants to see both types of device descriptors.
|
|
|
|
|
|
sketch and bootloader will use different PIDs to distinguish one from the other.
|
|
Phillip Torrone)
|
|
done to bring types in line with others in Arduino core
|
|
TX_LED_OFF() instead of TXLED0, etc.
|
|
CDC (is always used). disabled HID by default. also always enumerates as composite now.
the bootloader must always have a CDC interface. HID is optional and not even complete to reduce size.
|
|
Krein, Limor Fried, and Phillip Torrone)
descriptors longer than 255 bytes were being shortened, causing problems with enumeration under Windows
|
|
Done so all IO and other registers are properly reinitialized when a new sketch is uploaded or when an existing sketch is started. Uses a watchdog timeout with a 15 ms period to accomplish the reset. Bootloader checks the reason for reset and only enumerates as bootloader and enters the programming loop if reset was NOT caused by WDT.
|
|
full set of descriptors in sketch fixes driver installation issue on Win7.
|
|
|
|
satisfy Windows' composite device requirements.
|
|
Interrupt-driven version was a dead-end - too many bugs with that approach.
|
|
|
|
|
|
diskloader_reboot"
This reverts commit df9835efafd13685251749bc210c0b96a18a96a5, reversing
changes made to ec45af8bfa9222a807c075dd1db4b5aa798bba03.
Conflicts:
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
|
|
|
|
|
|
bootloader must always have CDC enabled
|
|
|
|
Moved nuevo_diskloader files into diskloader directory. Changed back to real PID for Leonardo
|
|
Conflicts:
app/src/processing/app/Editor.java
app/src/processing/app/Sketch.java
build/shared/examples/4.Communication/SerialCallResponse/SerialCallResponse.pde
build/shared/lib/theme/theme.txt
hardware/arduino/cores/arduino/HardwareSerial.h
hardware/arduino/cores/arduino/Print.cpp
hardware/arduino/cores/arduino/WString.h
hardware/arduino/variants/mega/pins_arduino.h
libraries/Ethernet/examples/PachubeClient/PachubeClient.ino
libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
libraries/Firmata/examples/EchoString/EchoString.ino
libraries/SD/File.cpp
libraries/SoftwareSerial/SoftwareSerial.cpp
libraries/SoftwareSerial/SoftwareSerial.h
libraries/SoftwareSerial/examples/SoftwareSerialExample/SoftwareSerialExample.ino
libraries/SoftwareSerial/keywords.txt
|
|
NOTE: need to have sketch CDC jump to appropriate place for bootloader - 4k from end instead of 2k
|
|
|
|
|
|
|
|
makes it to flash programming address 0400 or so before hanging
|