NOTE: We could support instant booting if there was a watchdog reset by checking for that. That way reset is instant but reprogram waits.
Development notes for contributing guide:
NOTE: stk500v2 bootloader only needs avrinterruptname.h and avr_cpunames.h if you want to build the monitor
NOTE: stk500v2 defines the mcu signature bytes with a comment about that at line ~280. But the are defined also in the includes from <avr/io.h>. Look into it.
NOTE: The tablejump instructions use the LPM assembler instruction for access to jump tables. Always use -fno-jump-tables switch, if compiling a bootloader for devices with more than 64 KB of code memory.
(http://www.nongnu.org/avr-libc/user-manual/using_tools.html)
Converting "sketches" to the right format (ELF SPECIFIC INSTRUCTIONS)
The bootloader accepts raw binary images, starting at address 0x0000.
These can be generated using avr-objcopy, part of WinAVR / AVR-GCC, using the
"-O binary" option.
Example: avr-objcopy -j .text -j .data -O binary [app].elf [app].bin
Flash codes:
Rapid blinking: Ethernet bootloader is running.
Slow fading: Test application is running.
The bootloader waits for 5 seconds to be flashed. If the board is programmed
after the 5 seconds the bootloader will timeout and start the user application.
Otherwise it will restart the 5 second timeout.
Debugging:
By default the debug interface is disabled. To enable it uncomment the "_DEBUG"
defines in debug.h for the subsystem you want. For any of them to work the plain
"_DEBUG" should be enabled. After flashing the bootloader, helpful messages
will be outputted to the serial port of the Arduino board at 115200 bps speed.
If debugging is enabled the binary image validations are disabled because the
the test applications do not conform with the validation statements.
This behavior is real: document it
Development notes for contributing guide:
Converting "sketches" to the right format (ELF SPECIFIC INSTRUCTIONS)
The bootloader accepts raw binary images, starting at address 0x0000. These can be generated using avr-objcopy, part of WinAVR / AVR-GCC, using the "-O binary" option. Example: avr-objcopy -j .text -j .data -O binary [app].elf [app].bin
Flash codes:
The bootloader waits for 5 seconds to be flashed. If the board is programmed after the 5 seconds the bootloader will timeout and start the user application. Otherwise it will restart the 5 second timeout.
Debugging:
By default the debug interface is disabled. To enable it uncomment the "_DEBUG" defines in debug.h for the subsystem you want. For any of them to work the plain "_DEBUG" should be enabled. After flashing the bootloader, helpful messages will be outputted to the serial port of the Arduino board at 115200 bps speed. If debugging is enabled the binary image validations are disabled because the the test applications do not conform with the validation statements.