Commit Graph

220 Commits

Author SHA1 Message Date
WestfW 2a83ee55b3 Add a version number to the optiboot source and binary.
http://code.google.com/p/arduino/issues/detail?id=554

end of flash memory where they can be read (at least in theory) by
device programmers, hex-file examination, or application programs.
This is done by putting the version number in a separate section
(".version"), and using linker/objcopy magic to locate that section as
appropriate for the target chip.  (See
http://lists.gnu.org/archive/html/avr-gcc-list/2011-02/msg00016.html
for some discussion on the details.)

Start the version at 4.1 (the last "packaged" version of optiboot was
called version 3, so the "top of source" would be 4.0, and adding the
version number makes 4.1)

Refactor LDSECTION in the Makefile to LDSECTIONS so that multiple
section start addresses can be defined.

Change the _isp makefile definitions to make the bootloader section
readable (but not writable) by the application section.  (This would
need to be done elsewhere as well to handle all bootloader programming
techniques.  Notably Arduino's boards.txt

Note that this change does not change the "code" portion of optiboot
at all.  The only diffs in the .hex files are the added version word
at the end of flash memory.
2011-06-10 17:47:47 -07:00
WestfW 64be388f3e Update shell script makeall 2011-06-10 16:29:34 -07:00
WestfW 4f44d2893a This is a relatively significant edit that brings the Arduino copy of
optiboot up-to-date with the optiboot source repository as of Jun-2011
(the last changes made in the optiboot repository were in Oct-2010)

This adds support for several plaforms, fixes the "30k bug", and
refactors the source to have separate stk500.h, boot.h, and pin_defs.h

These are the arduino opticode issues fixed:
http://code.google.com/p/arduino/issues/detail?id=380
    optiboot has problems upload sketches bigger than 30 KB
http://code.google.com/p/arduino/issues/detail?id=556
    update optiboot to the point of the latest optiboot project sources.

These are issues that had been solved in the optiboot source aready:
http://code.google.com/p/arduino/issues/detail?id=364
   optiboot leaves timer1 configured when starting app, breaks PWM on
   pin 9 and 10.  (fixed with a workaround in arduino core.)
   aka http://code.google.com/p/optiboot/source/detail?r=c778fbe72df6ac13ef730c25283358c3c970f73e
   Support for ATmega8 and mega88.
   Fix fuse settings for mega168 _ISP targets
   Additional new platforms (mega, sanguino)

http://code.google.com/p/optiboot/issues/detail?id=26
   Set R1 to 0  (already in arduino code)
http://code.google.com/p/optiboot/issues/detail?id=36&can=1
   Fails to build correctly for mega88

After this commit, the only differences between the Arduino optiboot.c
and the optiboot repository optiboot.c are cosmetic.
2011-06-10 16:17:13 -07:00
WestfW e115bd8643 http://code.google.com/p/arduino/issues/detail?id=517
Remove the trailing comments when setting fuse values for the various
*_isp targets, so that they won't cause avrdude errors.

This was done the same way as in the optiboot source tree:
http://code.google.com/p/optiboot/issues/detail?id=17
http://code.google.com/p/optiboot/source/detail?r=005fb033fc08c551b2f86f7c90c5db21549b3f20
2011-06-09 22:57:27 -07:00
WestfW bac72096b3 Makefile modification to allow building optiboot in more environments.
Allows building within the Arduino Source tree, and within the Arduino
IDE tree, as well as using CrossPack on Mac.

Adds README.TXT to track arduino-specific changes (and documents the
new build options.)

This addresses Arduino issue:

  http://code.google.com/p/arduino/issues/detail?id=487

And optiboot issue

  http://code.google.com/p/optiboot/issues/detail?id=1

(which can be thought of as a subset of the Arduno issue.)

Note that the binaries produced after these Makefile changes (using any
of the compile environments) are identical to those produced by the
crosspack-20100115 environment on a Mac.
2011-06-09 22:36:05 -07:00
David A. Mellis f25e71c3c1 Fixing 300 baud communication for serial.
Because UBBR is only 12 bits, we were overflowing it at 300 baud because of the use of the U2X bit.  Now we turn off U2X if it would yield a UBBR value that would overflow.

Note that this breaks 300 baud communication with the computer on the Uno and Mega 2560 because the 8U2 USB-serial firmware has this same bug (and previously they cancelled each other out).  Since, however, it seems more likely that people will need to use 300 baud to communicate with other (legacy) hardware than with the computer, I'm making this change.  Issue for 8U2 firmware bug: http://code.google.com/p/arduino/issues/detail?id=542

http://code.google.com/p/arduino/issues/detail?id=522
2011-05-14 12:25:39 -04:00
David A. Mellis 5e721df32a Fixing warnings (David H. Lynch Jr). 2011-03-03 22:56:20 -05:00
David A. Mellis 5515442dbb Small optimization in HardwareSerial.
begin(long) -> begin(unsigned long)
2011-02-25 18:36:46 -05:00
David A. Mellis 7a66c18e70 Fix to optiboot infinite loop problem.
Explicitly setting R1 to 0 so that the watchdog timer is properly initializing, preventing it from timing out and resetting the processor.

http://code.google.com/p/optiboot/issues/detail?id=26
http://code.google.com/p/arduino/issues/detail?id=446
2011-01-15 13:29:08 +00:00
David A. Mellis 11dd06436d Changing String append to use realloc(); thanks to Paul Stoffregen.
http://code.google.com/p/arduino/issues/detail?id=332
2010-12-11 15:22:07 -05:00
David A. Mellis 31fc07f33e Minor ATmega8U2 firmware update and new .hex files.
Adding LUFA_OPTS += -D DEVICE_STATE_AS_GPIOR=0 to makefile to save space, updating release number to 0x0001.
2010-12-04 14:28:56 -05:00
David A. Mellis 0f0ed6b45f Minor bug fixes to the 8U2 USB-to-serial firmware. 2010-12-04 13:50:27 -05:00
David A. Mellis 053ec1b989 Replacing custom String.toInt() function with a call to atol(). 2010-12-03 23:12:41 -05:00
David A. Mellis 4fefe032a5 Fixing Linux UNO serial bug (thanks to Dean Camera).
Enabling INTERRUPT_CONTROL_ENDPOINT in the makefile so we don't miss control messages from Linux.  Also deleted two unused USB events to save a few bytes of space (the Mega 2560 .hex is now exactly 4096 bytes).
2010-11-29 23:26:54 -05:00
David A. Mellis 4a90c4bd40 Redoing 448222e4b65e0cf44dfc0c494f7f76901f1fabea without all the extra files.
Adds toInt() to String, WCharacter.h (from Wiring), and an SD Datalogger example.
2010-11-29 15:20:30 -05:00
David A. Mellis 80c5173bfd Revert "added toInt() function to WString".
This reverts commit 448222e4b65e0cf44dfc0c494f7f76901f1fabea.
2010-11-29 15:14:10 -05:00
Tom Igoe 15f51fc1f8 added toInt() function to WString 2010-11-29 11:31:00 -05:00
David A. Mellis eb9c51d43c pulseIn() now times out while measuring the pulse, not just while waiting for it to start. 2010-11-22 23:33:59 -05:00
David A. Mellis 6ac63fbadf SD File object implements Stream.
Added peak() and available() using a single byte buffer.
Added flush().
2010-11-20 11:45:05 -05:00
David A. Mellis e46c6f46af Fixing bug w/ subsequent calls to tone().
http://code.google.com/p/arduino/issues/detail?id=397
2010-11-11 23:57:12 -05:00
David A. Mellis 407d6bbc6f Cast to encourage optimization of Serial ring buffer index calculations.
http://code.google.com/p/arduino/issues/detail?id=391
2010-11-11 23:29:21 -05:00
David A. Mellis 08102b6370 Changing baud rate calculation to always use double speed mode except for 57600 baud at 16 MHz.
http://code.google.com/p/arduino/issues/detail?id=394
2010-11-11 23:28:21 -05:00
David A. Mellis cba4789840 Modifying Tone.cpp to use register-based (not CPU-based) #ifdefs. 2010-11-08 23:09:29 -05:00
David A. Mellis a4afb42b08 Modifying basic functions (digital and analog, read and write) to use register-based ifdefs, not cpu-based.
http://code.google.com/p/arduino/issues/detail?id=307
http://code.google.com/p/arduino/issues/detail?id=316
http://code.google.com/p/arduino/issues/detail?id=323
http://code.google.com/p/arduino/issues/detail?id=324
2010-10-17 17:55:53 -04:00
David A. Mellis b861fe903f Making attachInterrupt() check registers, not CPUs.
Patch by Mark Sproul, via Christian Maglie.
http://code.google.com/p/arduino/issues/detail?id=340
2010-10-17 14:05:46 -04:00
David A. Mellis 8b09b6be80 Making HardwareSerial tests register-based, not CPU-based.
Mark Sproul's patches, via Christian Maglie.
http://code.google.com/p/arduino/issues/detail?id=315
2010-10-17 13:36:02 -04:00
David A. Mellis 152a913571 Changing #include <> to #include "" in Tone.cpp. 2010-10-09 17:08:19 -04:00
David A. Mellis 6106779cc1 Fixing PWM on pins 9 & 10 on the Uno.
Resetting TCCR1B to 0 after it's configured by optiboot.

http://code.google.com/p/arduino/issues/detail?id=364
2010-10-02 13:38:10 -04:00
David A. Mellis 7e23fae1a4 More information on USB VID/PIDs. 2010-09-28 17:19:07 -04:00
David A. Mellis 9cd68e69d3 Replacing Arduino VID / PID with the Atmel-supplied ones. 2010-09-28 09:31:10 -04:00
David A. Mellis 0785eebdad Adding note about Arduino VID and PIDs. 2010-09-27 12:20:38 -04:00
David A. Mellis 7bc34012a2 Adding readme about the firmwares. 2010-09-24 10:40:37 -04:00
David A. Mellis b0e6e58efb Adding usbserial and usbdfu firmwares (and combined compiled .hex files). 2010-09-24 10:35:54 -04:00
David A. Mellis 2055e9ece2 Adding Arduino Mega 2560 board entry. 2010-09-24 10:17:01 -04:00
David A. Mellis e511065c6a Adding the Mega 2560 bootloader and boards.txt / boards menu entry. 2010-09-24 10:10:57 -04:00
David A. Mellis 8980259e0d Adding optiboot and Arduino Uno boards menu entry. 2010-09-22 09:04:33 -04:00
David A. Mellis f9a3b5cfa9 1280 -> 1280/2560. 2010-09-08 22:33:33 +00:00
David A. Mellis 4bbd4f7448 Changing String::toCharArray() and getBytes() to accept a buffer, rather than return one. That way they don't expose the internal representation of the String class, allowing future optimization. Thanks to Paul Stoffregen. 2010-08-28 10:23:54 +00:00
David A. Mellis 1362ca26c1 Returning a reference to a dummy character for indices beyond the string length (in operator[]). 2010-08-28 09:55:26 +00:00
David A. Mellis 14831247bc Adding some basic error checking to the String class (i.e. checking for a non-null buffer before modifying its contents). 2010-08-18 21:39:28 +00:00
David A. Mellis 1f9520e226 Now including stdlib.h from wiring.h so our abs() #define comes after the stdlib abs() definition (and therefore doesn't break it). 2010-08-17 21:50:41 +00:00
David A. Mellis 6b6d46c3e1 Adding shiftIn() from Wiring (no count or delaytime though). 2010-08-11 22:59:00 +00:00
David A. Mellis 8dca3d5ad3 Making Client inherit from Stream, which unforunately means taking peek() out of Stream for now, since there's no immediate implementation for Client. 2010-08-11 18:19:01 +00:00
David A. Mellis 2753f3f5d8 Adding Arduino BT w/ ATmega328 to the boards menu. 2010-08-07 19:56:14 +00:00
David A. Mellis 8a2387e805 Adding ATmega328 version of the Arduino BT bootloader, along with a Makefile for building it. 2010-08-07 19:48:59 +00:00
David A. Mellis fddeda1717 No longer requiring WProgram.h for Print / Stream classes (replaced Arduino-specific type names in String). 2010-08-06 01:23:19 +00:00
David A. Mellis 853439667e Moving SPI pin definitions into core (from SPI library): SS, MISO, MOSI, and SCK. 2010-08-02 22:33:11 +00:00
David A. Mellis 2b1c9aea35 changing available() to return an int (because the Ethernet Client class or another stream might need more than 255 bytes). 2010-08-02 22:23:48 +00:00
Tom Igoe 58f043e0f3 added more String examples 2010-07-27 22:59:18 +00:00
David A. Mellis e871ae5236 Reverting changes to String class and modifying to allow + and += to work on more types. 2010-07-27 14:20:56 +00:00