1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-10 21:24:12 +01:00
Commit Graph

864 Commits

Author SHA1 Message Date
Cristian Maglie
3f4cbe887d Merge branch 'master' into arduino-1.0.1-merged
Included latest fixes
2012-05-25 15:16:34 +02:00
Cristian Maglie
aa7559f87c Bugfix: IDE now works if installed on a folder path containing spaces 2012-05-25 11:47:22 +02:00
Cristian Maglie
33083d84b3 Merge of arduino-1.0.1. Work in progress... 2012-05-23 09:22:52 +02:00
Cristian Maglie
b276a75d13 Pre-merge upstream Arduino 2012-05-22 11:23:47 +02:00
David A. Mellis
2cbde219c1 Merge remote-tracking branch 'upstream/master' 2012-05-21 09:31:54 -07:00
David A. Mellis
81edb9064a Updating SoftwareSerial pin mapping (pin change interrupts) for Leonardo. 2012-05-20 15:56:49 -07:00
Cristian Maglie
38973dc916 [sam] temporary fix for UARTS 2012-05-21 00:30:54 +02:00
Cristian Maglie
50912585ab [sam] fixed bytes available of flash memory 2012-05-20 23:54:36 +02:00
Cristian Maglie
adeaf8ae43 [sam] renamed 'sam' core folder into 'arduino' 2012-05-20 23:45:56 +02:00
Zach Eveland
5c77b0ee3b added pin change interrupt defines for Leonardo. fix for broken software serial on Leonardo 2012-05-19 22:05:46 -04:00
Cristian Maglie
9a5be09f06 [sam] Refactoring API for SPI library 2012-05-18 01:30:54 +02:00
David A. Mellis
39eed5acc2 Adding readString() and readStringUntil() to Stream (Adrian McEwen).
This isn't necessarily a particularly efficient implementation (it
allocates memory one character at a time and so may lead to
fragmentation) but it seems to work.

http://code.google.com/p/arduino/issues/detail?id=454
2012-05-16 15:39:34 -04:00
Zach Eveland
b29ae7a249 Mouse.isPressed() now checks only for left button by default
if no argument is given now checks left button by default to be consistent with press() and release() (thanks, David Mellis)
2012-05-15 15:48:51 -04:00
Thibault RICHARD
fa3136b469 [SAM] GIT clean up. 2012-05-10 19:28:35 +02:00
Thibault RICHARD
0da190fb3e Merge branch 'platforms-arm' of https://github.com/arduino/ARM into platforms-arm 2012-05-10 19:19:05 +02:00
Thibault RICHARD
bf32c2c490 [SAM] CDC+HID working. INF file added. Updated PID to 0x003E. Tested on
WinXP32.
2012-05-10 19:12:14 +02:00
Cristian Maglie
bb23ef2e3b [sam] Fixed IDE compiling process 2012-05-09 15:34:00 +02:00
Thibault RICHARD
4d59afcc64 [SAM] CDC working. (workaround implemented for Windows previous issue) 2012-05-09 12:45:14 +02:00
Thibault RICHARD
d6d23c530a [SAM] HID and CDC verified okay on Linux/Mac by Cristian. Fixed OTG clock
init issue. CDC is not working correctly under Windows (possible inf
issue).
2012-05-07 20:12:00 +02:00
Thibault RICHARD
84e887003d [SAM] CDC working. Need to check inf file. 2012-05-04 18:58:24 +02:00
Thibault RICHARD
2315728358 [SAM] HID working. 2012-05-03 17:12:46 +02:00
Thibault RICHARD
56c7e2fdb8 Merge branch 'platforms-arm' of https://github.com/arduino/ARM into platforms-arm 2012-05-03 14:34:12 +02:00
Thibault RICHARD
b2c35a4e68 [SAM] HID is working. Printf issue in UDD_Send8 function. 2012-05-03 14:32:24 +02:00
Thibaut VIARD
a2c2d4b174 [sam] adding libsam archives into git 2012-05-03 10:04:43 +02:00
Cristian Maglie
3979a4b1c9 [sam] Removed warning for aggregate values in function call 2012-05-02 19:51:45 +02:00
Cristian Maglie
fe63430cb7 [sam] removed unuseful new.cpp module 2012-05-02 19:21:52 +02:00
Cristian Maglie
348c307539 [sam] HardwareSerial is now a pure virtual class 2012-05-02 19:21:12 +02:00
Thibaut VIARD
4af0a4abc2 Merge branch 'platforms-arm' of https://github.com/arduino/ARM into platforms-arm 2012-05-02 17:01:43 +02:00
Thibaut VIARD
16de9dc13c [sam] adding google adk2 support on whole build system and makefiles
cleanup
2012-05-02 17:00:55 +02:00
Zach Eveland
9520a531de renamed Leonardo USB_ class to USBDevice_ to be unambiguous. renamed "USB" object to "USBDevice" to prevent conflict with USB Host library (thanks Massimo) 2012-05-01 11:18:15 -04:00
Thibault RICHARD
45a1d32e71 [SAM] enumeration is now okay. Device still not working. 2012-04-30 20:17:40 +02:00
Thibault RICHARD
8dfa9f8459 [SAM] USB device stack updated. Failing at configuration descriptor stage. 2012-04-30 19:34:27 +02:00
Thibault RICHARD
4658ab7468 [SAM] added missing interrupt files for libsam 2012-04-30 13:45:53 +02:00
Thibault RICHARD
8c1f9af9f5 [SAM] uotghs first implementation, compilation is okay. Code untested. 2012-04-30 13:42:04 +02:00
Thibaut VIARD
41ef57b963 [sam] intermediate step 2012-04-29 00:54:05 +02:00
Thibaut VIARD
dc95506b06 Merge branch 'platforms-arm' of https://github.com/arduino/ARM into platforms-arm 2012-04-29 00:51:47 +02:00
Thibaut VIARD
46b9f96d4a [sam] intermediate commit 2012-04-28 20:15:23 +02:00
Thibault RICHARD
1d99429752 [SAM] Test app working on SAM3X-EK 2012-04-28 19:59:24 +02:00
Thibault RICHARD
fc82f1e556 [SAM] Fixing SysTick handler issue 2012-04-28 19:58:40 +02:00
Thibault RICHARD
373c0096c3 [SAM] Updating debug scripts 2012-04-28 19:56:36 +02:00
Thibault RICHARD
e034de5ea9 [SAM] Added SAM3X_EK support for USB debug 2012-04-28 17:36:57 +02:00
Cristian Maglie
7e14a0d2fb [sam] updated boards.txt from upstream 2012-04-28 15:47:19 +02:00
Thibaut VIARD
86533a5e8f [sam] first USB with Init/Attach/Detach 2012-04-28 15:16:13 +02:00
Cristian Maglie
08b614048d [sam] fixed compiling on wiring_analog.c 2012-04-28 12:45:30 +02:00
Cristian Maglie
4da2833a81 [sam] updated Print class and all derivated classes. 2012-04-28 12:44:49 +02:00
Thibaut VIARD
f09771258e [sam] fixing analog according to updated pmc api 2012-04-28 12:11:40 +02:00
Thibaut VIARD
c0a5eb38e2 [sam] adding USB updates 2012-04-28 11:49:28 +02:00
Thibaut VIARD
ed0be7c1b8 [sam] USB device cleanup 2012-04-28 10:14:04 +02:00
Thibaut VIARD
5f0a03c86c [sam] adding validation app for usb device stack 2012-04-28 09:56:53 +02:00
Thibaut VIARD
fbf65ab217 [sam] updating makefiles: test app now builds all needed libs 2012-04-28 09:51:54 +02:00
Cristian Maglie
afaeee22ac [sam] Fixed pinout for Serial4. Fixed keywords. Recompiled shipped libsam binary 2012-04-27 14:25:57 +02:00
Thibaut VIARD
a4b61c7b1b [SAM] fixing header includes 2012-04-26 20:22:15 +02:00
Thibaut VIARD
88c10ba1e2 [SAM] fixing make clean 2012-04-26 20:21:33 +02:00
Thibaut VIARD
d0d41ba673 Merge branch 'platforms-arm' of https://github.com/arduino/ARM into platforms-arm 2012-04-26 20:20:13 +02:00
Thibaut VIARD
4a50ae7f9c [SAM] Updating CMSIS to fix devices package IT handlers issue 2012-04-26 20:17:47 +02:00
Zach Eveland
2e575db249 changed PID values for Leonardo bootloader and sketch
done to avoid driver problems for users who installed the pre-release bootloader and driver
2012-04-25 15:56:18 -04:00
Cristian Maglie
45619b4336 [sam] SPI Fixed modes constants 2012-04-24 18:43:33 +02:00
Cristian Maglie
33870d3aae [sam] bugfix for SPI on SAM3*. Extended API for SPI master devices is in ALPHA, to be validated. 2012-04-24 09:31:50 +02:00
Cristian Maglie
d6c57415a3 [sam] fixed compilation problem with temporary USB driver 2012-04-23 15:51:03 +02:00
Cristian Maglie
00ceed55d2 [sam] Fixed compilation problem on SPI class. SPI device is now called SPI_0 to avoid name clashes. 2012-04-23 15:50:30 +02:00
Zach Eveland
4fb17c47cd bugfix for configuring PWM on D6 and D13 too early. (thanks to Limor Fried)
was starting PWM on these pins too soon - in init() instead of when analogWrite() was called.  as a result doing output on port registers directly failed.
2012-04-19 15:52:16 -04:00
Zach Eveland
9904a6f497 bugfix for boards with a timer 4 but no channel D
compilation failed for Mega because the COM4D1 and OCR4D registers are defined for 32U4 but not for Mega
2012-04-19 15:46:32 -04:00
Cristian Maglie
95738df9bf [sam] update USB device API 2012-04-19 17:37:13 +02:00
Cristian Maglie
0b5e66af37 [sam] Moved USB stuff inside a folder 2012-04-18 14:52:30 +02:00
Cristian Maglie
008df0430c [sam] added AndroidAccesory class from ADK 2012-04-18 14:34:51 +02:00
Cristian Maglie
761d472f23 [sam] temporarily removed asserts from PMC_* functions 2012-04-12 10:37:02 +02:00
Zach Eveland
bb9a4f89cc merged Caterina with Blink 2012-04-11 23:24:04 -04:00
Zach Eveland
7e235dbff8 fixed logic bug in Caterina that could stop the bootloader from entering self-programming mode 2012-04-11 23:19:05 -04:00
Thibault RICHARD
9aaf61327b [sam] added ADC test in validation app (makefile based) 2012-04-11 19:32:29 +02:00
Thibault RICHARD
6ae6a0eaf2 [sam] fixing ADC, taken from ASF, checked and tested verified 2012-04-11 19:30:13 +02:00
Thibault RICHARD
0832334a71 [sam] fixing makefiles for toolchain path containing spaces 2012-04-11 19:26:06 +02:00
Thibaut VIARD
431f3ea5fe [sam] preliminary update for analog 2012-04-10 18:27:43 +02:00
Zach Eveland
d3a8e450ee Micro I hardly knew ye 2012-04-09 10:12:14 -04:00
Zach Eveland
3f6342e9bb Micro and Leonardo bootloaders for distribution are now merged with Blink sketch 2012-04-09 08:08:34 -04:00
Zach Eveland
caeaa4571c sketch USB VID and PID values are passed in from boards.txt at compile time now. changed sketch PIDs to final values. also uncommented Micro section in boards.txt 2012-04-09 08:06:35 -04:00
Zach Eveland
d02e4481d3 PID and VID are no longer hard-coded in bootloader. instead they are passed in at compile-time from makefile. also added and renamed built bootloader images for Micro and Leonardo 2012-04-09 08:03:56 -04:00
Zach Eveland
437025c6ee Revert "Revert "added a short delay and comment to boolean operator in CDC""
This reverts commit 200eefb4e2.
2012-04-06 21:23:17 -04:00
Federico Vanzati
200eefb4e2 Revert "added a short delay and comment to boolean operator in CDC"
This reverts commit ade4893f58.
2012-04-06 17:36:09 +02:00
Cristian Maglie
650d2e9a1a Added USBHost lib from Arduino ADK 2012-04-06 17:18:55 +02:00
Thibaut VIARD
be1ded6c86 [sam] adding -fdata-sections to makefiles 2012-04-05 20:14:21 +02:00
Thibaut VIARD
e10cabc054 [sam] fixing linker files and adding a compiler option 2012-04-05 18:23:19 +02:00
Thibaut VIARD
5e3faa6d5d [sam] putting temporary USBCore as disabled to allow compilation 2012-04-05 18:00:45 +02:00
Thibaut VIARD
ba47ad6b8d [sam] fixing badly the SAM3U UDPHS driver 2012-04-05 12:13:48 +02:00
Zach Eveland
ade4893f58 added a short delay and comment to boolean operator in CDC
Delay fixes problem where the port has been configured but not quite opened.  Federico found that 10 ms was the minimum time needed to avoid problems.
2012-04-03 10:52:38 -04:00
Cristian Maglie
b7c8b3ea74 Fixed compiling on windows 2012-04-02 18:30:53 +02:00
Zach Eveland
b685aef6ec added Boolean operators to HardwareSerial and CDC to test whether the port is ready to send data.
Mostly useful for Leonardo - simple way to test whether the port is actually opened by an application and ready to receive data.  For Serial objects attached to real UARTs always returns true.
2012-04-01 12:54:35 -04:00
Thibaut VIARD
f83cd2f3e7 [sam] prelimanary work on USB Device stack 2012-03-29 21:11:05 +02:00
Thibaut VIARD
5b3580fe36 [sam] fixing boards definitions 2012-03-29 17:16:37 +02:00
Thibaut VIARD
009bc1b722 [sam] adding prototypes to USB_driver.h 2012-03-29 11:37:35 +02:00
Thibaut VIARD
d7ae25360a [sam] removing usb driver from API core 2012-03-29 11:00:47 +02:00
Thibaut VIARD
1b591962f1 [sam] separating usb driver from core part 2012-03-29 10:59:24 +02:00
Thibaut VIARD
f865dde7ee [sam] moving ATMEL boards to dedicated place 2012-03-29 10:48:24 +02:00
Zach Eveland
97d9ce93ca fixed logic error in Keyboard.release() - now removes every occurrence of a key if it's present more than once 2012-03-28 19:46:32 -04:00
Zach Eveland
b86ec2723a removed horrible multi-key Keyboard.press() and Keyboard.release() methods
Saves 924 bytes of Flash
2012-03-28 18:46:10 -04:00
Zach Eveland
3d15f3781a eliminated Keyboard.type() - unnecessary duplication of Keyboard.write() (David Mellis). Also edit KeyboardReprogram example which was the only example using type() 2012-03-28 18:35:26 -04:00
Thibaut VIARD
dd8a20ad20 [sam] harmonizing building and source between variants (SAM EK need
rework)
2012-03-27 13:16:27 +02:00
Thibaut VIARD
d77dbe24ef Merge branch 'platforms-arm' of https://github.com/arduino/ARM into platforms-arm 2012-03-27 12:22:32 +02:00
Thibaut VIARD
e84859656a [sam] fixing int handlers prototypes and build files cleanup 2012-03-27 12:20:47 +02:00
Thibaut VIARD
baf2b2cc07 [sam] adding c99 and c++98 std options 2012-03-27 12:13:51 +02:00
Thibaut VIARD
3f1cdbaf5a [sam] fixing warning and doing cleanup of libsam build 2012-03-27 12:03:40 +02:00
Zach Eveland
259a2f18b3 added methods to Keyboard to handle multiple simultaneous key presses or releases (up to six each) 2012-03-26 17:28:02 -04:00
Zach Eveland
63fdb8ef7a Keyboard.type() now just presses and releases the key indicated - doesn't releaseAll() 2012-03-26 17:00:16 -04:00
Zach Eveland
2e140e4950 added stub methods for begin() and end() to Mouse and Keyboard 2012-03-26 16:02:40 -04:00
Cristian Maglie
21c661c9d4 [sam] fixed basic IDE compilation for sam3x 2012-03-26 19:27:45 +02:00
Thibaut VIARD
042149a9b1 [sam] Fixing arduino_due_x variant 2012-03-26 18:09:10 +02:00
Thibaut VIARD
2aa1f3ea34 [sam] removing useless DAC datasheet 2012-03-26 17:18:40 +02:00
Thibaut VIARD
02f620c1d3 [sam] switching to CMSIS Atmel package 2012-03-26 16:50:47 +02:00
Thibaut VIARD
62f3181008 [sam] removing current CMSIS package, better to use Atmel one 2012-03-26 13:46:46 +02:00
Thibaut VIARD
d1c8c5db3a [sam] fixing variants names following Cristian renaming 2012-03-26 13:26:19 +02:00
Zach Eveland
a0f1f1a930 Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-03-24 09:30:17 -04:00
unknown
aa3dde0973 [sam] fixing libsam and adding support of due_x 2012-03-23 16:24:17 +01:00
unknown
33d4e07315 [sam] fixing wrong function header 2012-03-23 16:10:35 +01:00
unknown
47a37049eb [sam] Fixing cmsis system_sam3xa.c call to header 2012-03-23 16:03:41 +01:00
unknown
bdb4e991aa [sam] renaming cmsis system files to be consistent with the series naming 2012-03-23 16:02:00 +01:00
Cristian Maglie
d32541353e ARM: Added sam3x variant 2012-03-20 13:48:44 +01:00
David A. Mellis
13e0b9335c Putting ArduinoISP back to 19200 baud.
From 9600.  And lowering the delay in the heartbeat from 40 to 20,
which seems to fix things again.
2012-03-15 19:02:08 -04:00
Zach Eveland
067cca7baa reduced delay before starting the Leonardo bootloader
Since we use a magic RAM flag to signal to the bootloader there's a risk of the sketch overwriting the magic RAM location before the bootloader starts.  By reducing the watchdog timeout we reduce the chance of this happening.
2012-03-14 18:17:22 -04:00
Zach Eveland
a05a0d531b bugfix for Caterina not starting sketch if "verify upload" turned off in IDE.
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?
2012-03-14 17:48:11 -04:00
Zach Eveland
2a19c327bb changed Caterina timeout after self-programming to 500 ms (from 250 ms)
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)
2012-03-14 17:07:14 -04:00
Zach Eveland
30421143f9 give Leonardo bootloader 250 ms to finish housekeeping before leaving 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.
2012-03-08 14:20:12 -05:00
Zach Eveland
33116711b0 removed old version of Leonardo's caterina bootloader, replaced with LUFA-based caterina 2012-03-08 13:47:42 -05:00
Cristian Maglie
177746aa7f Fix for some strange behaviours during board reset 2012-03-07 16:21:04 +01:00
Zach Eveland
18f08bc7d4 Added Keyboard support for all modifier and all common non-printing keys. 2012-03-03 23:37:39 -05:00
Zach Eveland
aec3752e52 Removed support for key mapping in Keyboard.
Was no longer being used and would be damn near impossible to support with the new scheme for handling modifiers and non-printing keyboard characters.
2012-03-03 23:06:44 -05:00
Zach Eveland
db82ab90eb added Keyboard methods press(), release(), and releaseAll()
Changes mean that a single, persistent key report must be used so keys can be added or removed.  Also reimplemented type() using the new methods.
2012-03-03 22:54:45 -05:00
Zach Eveland
8a35793794 Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader
Conflicts:
	.gitignore
2012-03-03 13:28:39 -05:00
Zach Eveland
7387db0673 fixed minor compilation warnings for Leonardo 2012-03-03 13:26:57 -05:00
David A. Mellis
f4f62f9a12 Small changes for the ATmega1284.
http://code.google.com/p/arduino/issues/detail?id=736
2012-03-02 18:58:53 -05:00
Zach Eveland
09aa8bd678 reduced Caterina timeout to 8 seconds from 16 2012-03-01 08:51:47 -05:00
Zach Eveland
93a47f884d changed auto-reset logic for Leonardo. only do WDT manipulation if the port is opened at 1200 bps. (Dave Mellis) 2012-03-01 08:51:16 -05:00
Zach Eveland
f505a3da4c Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-03-01 08:32:21 -05:00
David A. Mellis
7ab140700b Switching Mini w/ ATmega328 upload protocol from stk500 to arduino. 2012-02-29 17:25:46 -05:00
Cristian Maglie
5eef4ca79c Autoreset 1200 bps fix. 2012-02-27 17:41:38 +01:00
Zach Eveland
ae23ed0570 shortened the watchdog period for resetting Leonardo from 2 s to 250 ms. Reset into bootloader is much snappier. 2012-02-22 22:33:44 -05:00
Zach Eveland
65ddc6c43b Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-02-22 15:19:32 -05:00
Zach Eveland
4c3aa52258 Leonardo now checks whether bootloader should be run after a WDT event.
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.
2012-02-14 12:17:30 -05:00
Zach Eveland
94c09c2618 Changed Leonardo fuses to select longer clock startup time.
Done with the aim of discriminating more reliably between reset sources.
2012-02-14 10:00:55 -05:00
Zach Eveland
52b0c7214b Leonardo bootloader jumps straight to sketch for a power-on reset.
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.
2012-02-14 09:59:48 -05:00
Cristian Maglie
9d4cb18f05 ARM: Fixed some compiling issues 2012-02-13 18:00:10 +01:00
Cristian Maglie
1479b2b4cf ARM: updated package preferences 2012-02-13 17:58:30 +01:00
Zach Eveland
bab3c5eade Leonardo auto-reset-and-upload changes for Windows (explanation below)
On Windows COM port changes when board switched between bootloader and sketch.  No way to prevent this so now Windows users have to select the upload port separate from the comm port.  Also, handling of reset into bootloader was broken on Windows.  Would occasionally leave the original COM port completely unusable.  Changed the way this reset is initiated.
Finally, had to add upload.disable.flushing=true flag to boards.txt so IDE wouldn't try to flush the original COM port after it disappeared.
2012-02-13 00:56:06 -05:00
Zach Eveland
25a4fe8607 changed Leonardo bootloader and sketch PID values again (now 0x0701 for bootloader, 0x0801 for sketch) 2012-02-13 00:10:16 -05:00
David A. Mellis
0acebeeff4 prog_char -> char PROGMEM in Print.cpp
http://code.google.com/p/arduino/issues/detail?id=795
2012-02-12 19:52:03 -05:00
Zach Eveland
c39793001c adjusting descriptors - trying to prevent sketch and bootloader from grabbing different COM numbers on Windows 2012-02-08 01:16:56 -05:00
Zach Eveland
4ee57f12e9 changed Caterina descriptors - Arduino LLC VID, new PID, manufacturer string, and serial number 2012-02-07 23:52:55 -05:00
Zach Eveland
5d53eed01a fixed bug in Caterina which caused some programming instructions to fail
Timer 1 interrupts were trashing self-programming timing.  Now disable Timer 1 compare match before doing Flash tasks and reenable afterward.
2012-02-07 23:46:31 -05:00
Zach Eveland
f2d5ea87ad increased Leonardo bootloader timeout to 16 seconds 2012-02-06 15:23:41 -05:00
Cristian Maglie
043c190876 Upload size computation is now parametric 2012-02-06 00:51:24 +01:00
Cristian Maglie
a141a1dc1e Upload/Program with configurable generic command line tools (wip) 2012-02-05 23:17:15 +01:00
Zach Eveland
5483adf8fe proper bootloader timeout and LED control in Leonardo bootloader 2012-02-03 23:15:04 -05:00
Zach Eveland
1e0700b536 fixed starting Leonardo bootloader from sketch
AvrdudeUploader class opens and closes Leonardo port at the magic baudrate before starting avrdude; reduced reset timeout from 250 ms to 15 ms
2012-02-03 21:42:46 -05:00
Zach Eveland
086ed6382c modify boards.txt with new settings for Caterina_LUFA 2012-02-03 20:24:24 -05:00
Zach Eveland
5eb7ad154b Merge branch 'master' of github.com:arduino/Arduino into LUFA_bootloader 2012-02-03 19:54:33 -05:00
David A. Mellis
915e4889e4 Making head and tail unsigned to avoid division in serial ISR.
http://code.google.com/p/arduino/issues/detail?id=776
2012-02-03 17:24:29 -05:00
Cristian Maglie
30ec90aca3 First attemp to generalize upload for mutiplatform IDE 2012-02-01 14:34:29 +01:00
Zach Eveland
1303b6fbba Caterina now cleanly hands off operation to the sketch
had to remove TIMER1 operation from bootloader - was interfering with normal sketch operation
2012-01-24 18:04:10 -05:00
Zach Eveland
6498b66059 move interrupt vector table to application section before jumping to it after upload finished. 2012-01-21 16:51:55 -05:00
Zach Eveland
73f6f2edd5 Leonardo bootloader checks reason for reset and jumps immediately to sketch if reset was caused by WDT 2012-01-21 16:39:06 -05:00
Zach Eveland
371b72c681 stripped all LUFA LED control. from LUFA-based Caterina 2012-01-19 21:31:51 -05:00
Zach Eveland
83c9f21667 changed fuses to select 4k bootloader for LUFA-based Caterina 2012-01-19 21:18:07 -05:00
Zach Eveland
db397d5b35 added Board/LEDs.h to LUFA-based Caterina 2012-01-19 21:17:12 -05:00
Zach Eveland
98b0491fbd superficial changes to stock LUFA CDC bootloader - renamed project, removed unnecessary files 2012-01-19 20:31:35 -05:00
Zach Eveland
9c0352b22a initial checkin of LUFA 111009 CDC bootloader 2012-01-19 20:04:55 -05:00
Cristian Maglie
861aa9308b [arm] other refinements to platform.txt for sam3u 2012-01-13 20:41:01 +01:00
Cristian Maglie
fe001fdaba Factored out some common build variables 2012-01-13 20:39:48 +01:00
Cristian Maglie
160fa18adb Fixed platforms.txt and corrected some paths for multiplatform IDE 2012-01-13 19:09:07 +01:00
Cristian Maglie
34d9004db7 disabled test projects (should be moved in another folder) 2012-01-13 18:14:58 +01:00
Cristian Maglie
47e8a813c8 Merge refinements 2012-01-11 13:59:16 +01:00
Cristian Maglie
1a92ce8fdb Moved 'sam' platform inside arduino package. 2012-01-11 13:46:51 +01:00
Zach Eveland
0fc76a6b87 made Leonardo and Micro bootloader PIDs same as sketch PIDs 2012-01-10 21:23:01 -05:00
Zach Eveland
2dfb0dce2c restored composite and non-composite device descriptors (removed in 4b05c3fc75)
Windows wants to see both types of device descriptors.
2012-01-10 20:52:57 -05:00
Zach Eveland
77b40e6bba reenabled HID to force Leonardo bootloader to enumerate as a composite device 2012-01-10 17:04:32 -05:00
Zach Eveland
932afb8428 renamed DiskLoader to Caterina (after Leonardo's mom) 2012-01-10 16:29:47 -05:00
Zach Eveland
99fea13f84 changed USB PID for Leonardo and Micro bootloaders
sketch and bootloader will use different PIDs to distinguish one from the other.
2012-01-10 16:09:56 -05:00
Zach Eveland
48ed974834 fixed warning when comparing pgm_read_word(0) to -1 (thanks, Limor Fried and Phillip Torrone) 2012-01-10 16:00:46 -05:00
Zach Eveland
e3b89d178d got rid of u8, u16, u32 typedefs in Diskloader
done to bring types in line with others in Arduino core
2012-01-10 15:51:44 -05:00
Zach Eveland
f403b001a2 made the bootloader's LED control macro names less offensive
TX_LED_OFF() instead of TXLED0, etc.
2012-01-10 15:38:26 -05:00
Zach Eveland
4b05c3fc75 added conditional compilation for HID, removed conditional compilation for 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.
2012-01-10 15:31:56 -05:00
Zach Eveland
015044add5 fix bug in handling of long descriptors for bootloader USB (thank you, Todd Krein, Limor Fried, and Phillip Torrone)
descriptors longer than 255 bytes were being shortened, causing problems with enumeration under Windows
2012-01-10 14:25:40 -05:00
Zach Eveland
2622ad5580 Merge branch 'master' of github.com:arduino/Arduino into new-extension 2012-01-10 12:02:27 -05:00
Cristian Maglie
c2d1de3844 Removed unused/unuseful defines from platform.txt 2012-01-09 18:51:51 +01:00
David A. Mellis
11281ec77e Adding links to documentation of boards.txt and programmers.txt files. 2012-01-04 16:01:52 -05:00
Cristian Maglie
57b8713cab Moved libraries folder inside platform folder. Now libraries and examples are searched per board/platform 2012-01-04 15:14:51 +01:00
David A. Mellis
76c964d32b Adding INPUT_PULLUP option pinMode(). (Paul Stoffregen).
This also changes pinMode(pin, INPUT); to explicitly disable the pull-up resistor, even if it was previously set.

http://code.google.com/p/arduino/issues/detail?id=246
2012-01-02 14:20:28 -05:00
David A. Mellis
5088b09f2d Fixing findUntil() problem with repeated initial characters. (Jeffery.zksun)
http://code.google.com/p/arduino/issues/detail?id=768
2012-01-02 13:49:59 -05:00
Cristian Maglie
387e6b63c7 Renamed platforms.txt to platform.txt 2012-01-02 19:11:57 +01:00
David A. Mellis
cce4ef7c69 Fixing warnings (unsigned comparisons to 0). (maniacbug) 2012-01-02 12:57:23 -05:00
David A. Mellis
c441bc1a0d Fixing static is not at beginning of declaration warnings (maniacbug). 2012-01-02 12:38:23 -05:00
Cristian Maglie
06b6d060db Removed implicit xxxx.platform=avr from boards.txt 2012-01-02 17:02:04 +01:00
Zach Eveland
f39ec37722 reset the Leonardo board when leaving the bootloader, before starting the sketch
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.
2011-12-31 12:19:08 -05:00
Cristian Maglie
5ad4422fc7 Merge remote-tracking branch 'arduino/master' into platforms-b 2011-12-31 17:29:36 +01:00
Zach Eveland
8f9ec88f57 Merge branch 'master' of github.com:arduino/Arduino into new-extension 2011-12-31 11:21:44 -05:00
Cristian Maglie
abe41d805d platforms.txt recipes now have symbolic variables instead of indexes ({0},{1},etc.)
Recipes arguments are splitted with spaces instead of |. Single argument containing spaces
should be placed between "double quotes".
Refactored and formatted Compiler class, removed all unused code in comments.
2011-12-31 14:32:48 +01:00
David A. Mellis
f520bb5051 Simplifying microseconds <-> clock cycles conversions. (Rob Tillaart)
This should fix problems with overflows in pulseIn().  It may make millis() slightly less precise for clock speeds that aren't multiple of 1 million, but we don't really support those anyway.

http://code.google.com/p/arduino/issues/detail?id=675
2011-12-30 18:05:12 -05:00
Cristian Maglie
1b3ae5fa63 Created second level in hardware folder: hardware/PACKAGE/PLATFORM/...
Made some helper class for files filtering.
platforms.txt now contains only one platform at a time.
Some cleanup in Compiler and AvrDudeUploader classes.
2011-12-30 15:46:04 +01:00
David A. Mellis
80a2154279 Fixing ArduinoISP sketch by lowering baud rate to 9600 (from 19200).
http://code.google.com/p/arduino/issues/detail?id=661
2011-12-28 18:43:36 -05:00
Zach Eveland
bdf7107507 bootloader merged with blink sketch
full set of descriptors in sketch fixes driver installation issue on Win7.
2011-12-26 17:19:48 -05:00
Cristian Maglie
e63c2d1429 Various post-merge refinements. 2011-12-22 13:07:39 +01:00
Cristian Maglie
65c15d93eb Merge commit 'fcbbf8f4b4960bae1091c0cd9dc58b4a1885baf6' into platforms-b
Conflicts:
	app/src/processing/app/Base.java
	app/src/processing/app/debug/Compiler.java
	build/build.xml
	hardware/arduino/boards.txt
2011-12-22 00:35:33 +01:00
Zach Eveland
20e7f2d354 changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream. 2011-12-20 17:09:44 -05:00
Zach Eveland
20564fb1d0 Revert "changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream."
This reverts commit de1d5fc0cb.
2011-12-20 17:08:07 -05:00
Zach Eveland
de1d5fc0cb changed Keyboard write() method to type(). Made write() an alias for type() to allow subclassing by Stream. 2011-12-20 17:00:19 -05:00
Zach Eveland
d874bc9832 fixed attachInterrupt() on Leonardo
had to define a separate block for the 32U4 since it looks like a Mega-series board based on a simple register trick.  Only two useable HW interrupts though, compared to the Megas' 8, and numbering differs.
2011-12-19 15:40:12 -05:00
Zach Eveland
fd28193336 added asynchronous buffering of received CDC characters
This fixes the issue Federico reported where bytes written by host but not read by sketch would cause serial connection to lock up.  Ring buffer implementation is based on HardwareSerial.cpp.

Adds public accept() method to CDC.
2011-12-18 17:52:35 -05:00
Zach Eveland
6a44faedbb fixed digitalWrite on timer 4 pins (D6 and D13) 2011-12-18 14:18:38 -05:00
Zach Eveland
4b358f21d9 fix bootloader size in boards.txt - 2 kB instead of 4 kB 2011-12-18 12:52:30 -05:00
Zach Eveland
699315c359 fixed TIMER4 use on Leonardo
ATMEGA32U4 has major differences in TIMER4 registers compared to ATMEGA1280 and 2560.  turnOffPWM, analogWrite, and initialize routines had wrong registers, bit names, etc.
2011-12-11 19:56:50 -05:00
David A. Mellis
eb380de972 Updated reference voltage defines for ATmega1284P.
http://code.google.com/p/arduino/issues/detail?id=728
2011-12-02 17:18:15 -05:00
David A. Mellis
d7d0e304d5 Support 3rd external interrupt on ATmega1284P (maniacbug)
http://code.google.com/p/arduino/issues/detail?id=728
2011-12-02 17:17:27 -05:00
David A. Mellis
0d70c7272e Fixing delayMicroseconds() timing for 20 MHz clocks. (Erdem U. Altinyurt)
http://code.google.com/p/arduino/issues/detail?id=306
2011-12-02 17:04:20 -05:00
David A. Mellis
dca1dc429a Removing Leonardo (and Mouse/Keyboard examples) for Arduino 1.0 release.
These will return, but the code isn't finished yet so I don't want to include it.
2011-11-28 18:47:45 -05:00
David A. Mellis
3df132aea9 Correcting Arduino Mini w/ ATmega328 bootloader file and fuses (untested). 2011-11-25 19:26:01 -06:00
David A. Mellis
ed48d17e20 readBytes() and readBytesUntil() handle zero bytes and return # of bytes read.
http://code.google.com/p/arduino/issues/detail?id=586
2011-11-19 16:23:19 -05:00
David A. Mellis
4119b9089b Adding Arduino Mini w/ ATmega328.
http://code.google.com/p/arduino/issues/detail?id=710
2011-11-19 16:22:46 -05:00
Zach Eveland
75eb722759 Leonardo bootloader now sends iSerial string during enumeration. Seems to satisfy Windows' composite device requirements. 2011-11-16 16:38:22 -05:00
Zach Eveland
9b58072423 Fixed size of const array mapping digital pin number to bit mask. 2011-11-16 12:15:57 -05:00
Zach Eveland
21ee685489 Updated digital pin and port mapping constants in pins_arduino.h for Leonardo.
Changed digital_pin_to_port_PGM[] and digital_pin_to_bit_mask_PGM[] to reflect changes to constants for SPI and analog pins
2011-11-16 11:20:38 -05:00
Zach Eveland
5f574b3634 Swapped Dx assignment for MISO and SS to make numbering more sane (Dave Mellis). Also updated comments on pin numbers. 2011-11-16 11:00:21 -05:00
Zach Eveland
ba5d66c26f Fixed handling of Ax constants on Leonardo
Fixed mistake in assignment and handling of A6-A11 constants.  Renumbered constants for all Ax channels.
2011-11-16 10:49:41 -05:00
Zach Eveland
3ee847c8e2 updated pins_arduino.h for Leonardo to reflect final mapping of A6-A11 2011-11-15 09:48:09 -05:00
Zach Eveland
56d06e15ed Merge branch 'new-extension' of github.com:arduino/Arduino into new-extension 2011-11-15 09:33:11 -05:00
Cristian Maglie
6ceb9a19de Added latest firmware for usbserial (not combined with DFU) 2011-11-12 12:57:30 +01:00
Cristian Maglie
17adbbcfc5 Added latest firmware for atmega16u2 on R3 boards 2011-11-11 11:38:04 -05:00
Zach Eveland
cd6aa2b1f3 restored original non-interrupt-driven DiskLoader
Interrupt-driven version was a dead-end - too many bugs with that approach.
2011-11-09 14:04:59 -05:00
Zach Eveland
f0801e61e6 updated analog pin assignments and declared TWI/I2C pins
Fixed analog pin to ADC channel mapping to match new scheme.  Changed mapping of analog pins to digital channels so that A6-A11 point back to the correct digital pins.  Declared SDA and SCL pins.
(All from Federico Vanzati's comments)
2011-11-08 22:06:15 -05:00
Zach Eveland
42fadb6f6d added 12th ADC channel for Leonardo. cleaned up and corrected comments for pin functions. 2011-11-02 07:37:39 -04:00
Zach Eveland
c8f495ba7f changed Leonardo PID to 0x0032 for Diskloader testing. updated .inf to match. 2011-10-31 23:44:32 -04:00
Zach Eveland
76ed870de8 Merge branch 'new-extension' of github.com:arduino/Arduino into diskloader_reboot 2011-10-31 21:42:09 -04:00
Zach Eveland
4a77aea4e5 check to see if a sketch has been loaded before jumping out of bootloader 2011-10-31 21:36:29 -04:00
David A. Mellis
10001866e6 Protecting the version of parseInt() and parseFloat(). (Paul Stoffregen)
This should allow us more flexibility in determining how to handle these functions later.  For example, in specifying that initial characters shouldn't be skipped.

http://code.google.com/p/arduino/issues/detail?id=698
2011-10-29 17:40:23 -04:00
Zach Eveland
a6381bb564 renamed bootloader file 2011-10-27 11:52:10 -04:00
Zach Eveland
a6a59f1783 Revert "Merge branch 'master' of github.com:arduino/Arduino into diskloader_reboot"
This reverts commit df9835efaf, reversing
changes made to ec45af8bfa.

Conflicts:

	hardware/arduino/variants/mega/pins_arduino.h
	libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
2011-10-27 11:45:13 -04:00
Zach Eveland
f2bd8a5394 Merge branch 'new-extension' of github.com:arduino/Arduino into diskloader_reboot
Conflicts:
	hardware/arduino/variants/mega/pins_arduino.h
	libraries/Ethernet/examples/PachubeClient/PachubeClient.ino
	libraries/Ethernet/examples/PachubeClientString/PachubeClientString.ino
2011-10-27 11:41:02 -04:00
Zach Eveland
03e1515a51 changes in core and boards.txt to support new bootloader
old bootloader could fit in only 2 kB of flash.  new version has to have a 4 kB block - jump-to address and boards.txt must reflect this.
2011-10-27 11:36:10 -04:00
Zach Eveland
be51da6b0d bootloader runs sketch after timeout, added bootloader LED breathing 2011-10-27 11:27:24 -04:00
Zach Eveland
b70f79ea2c cosmetic changes - remove old comments, unused code 2011-10-27 10:54:21 -04:00
Zach Eveland
040a469f79 removed conditional compilation checks for CDC_ENABLED
bootloader must always have CDC enabled
2011-10-27 10:48:26 -04:00
Zach Eveland
9dc9e60704 removed old comments and unused USB core code 2011-10-27 10:45:13 -04:00
Zach Eveland
3d848a5b9a brought nuevo_diskloader changes over to diskloader
Moved nuevo_diskloader files into diskloader directory.  Changed back to real PID for Leonardo
2011-10-27 10:23:06 -04:00
Zach Eveland
df9835efaf Merge branch 'master' of github.com:arduino/Arduino into diskloader_reboot
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
2011-10-27 09:32:27 -04:00
Zach Eveland
ec45af8bfa working bootloader. had to move interrupts back to application section. NOTE: need to have sketch CDC jump to appropriate place for bootloader - 4k from end instead of 2k 2011-10-26 16:51:42 -04:00
Zach Eveland
32614bf841 working (?!?!?!) bootloader. doesn't yet restart chip after upload completes. 2011-10-26 12:53:57 -04:00
Zach Eveland
e806be8c2a uploading now completes using RC2 on Win7 2011-10-26 11:28:07 -04:00
Zach Eveland
9e72b06a75 closer still - now up to 4680 2011-10-25 19:04:31 -04:00
Zach Eveland
d50b95eac1 progress on bootloader bug - have implemented blocking USB_Recv. avrdude makes it to flash programming address 0400 or so before hanging 2011-10-25 18:56:10 -04:00
David A. Mellis
d9f9676d23 Bug fix in replace().
http://code.google.com/p/arduino/issues/detail?id=694
2011-10-25 11:15:14 -04:00
Zach Eveland
cca9401589 fixed logic bug in waiting for synch. stripped out all Serial stuff 2011-10-24 22:12:45 -04:00
Zach Eveland
55178d9b8d removed old comments 2011-10-24 21:36:06 -04:00
David A. Mellis
f729e0321b Moving ARDUINO_MAIN from main.cpp to wiring_digital.c and hiding PA, PB, etc.
http://code.google.com/p/arduino/issues/detail?id=677
http://code.google.com/p/arduino/issues/detail?id=691
2011-10-24 16:50:15 -04:00
David A. Mellis
18838fb44a Renaming LED to LED_BUILTIN.
http://code.google.com/p/arduino/issues/detail?id=651
2011-10-24 16:45:44 -04:00
David A. Mellis
8336c88211 Correcting analogReference() constants for ATtiny24/44/84 and 25/45/85.
DEFAULT, EXTERNAL, and INTERNAL have different values on those processors.
2011-10-24 15:44:01 -04:00
Zach Eveland
3e775af6d8 bootloader responds properly now. nearly there - still have an issue with it falling out of sync after completing most operations 2011-10-23 16:49:36 -04:00
Zach Eveland
fa26e288a5 more attempts to get parameter sending to work 2011-10-21 20:30:55 -04:00
Zach Eveland
44b90b9f6a some progress on responding to parameter requests 2011-10-21 20:06:17 -04:00
Zach Eveland
79dbae2eb7 avrdude communication starting to work - responds to sync, fails when trying to respond to STK_GET_PARAMETER 2011-10-21 19:36:53 -04:00
Zach Eveland
e12b578462 continuing to port programming code. temporarily changed PID to test on Windows (it works) 2011-10-21 18:21:04 -04:00
Zach Eveland
6ca5bf3acb starting to port bootloader programming code - testing as I go 2011-10-21 18:03:34 -04:00
Zach Eveland
2d8ced65d1 added and modified Program() routine 2011-10-21 17:51:04 -04:00
Zach Eveland
0dc5f19ea9 cleaning up code and comments in main - getting rid of leftover stuff from experiments 2011-10-21 17:25:59 -04:00
Zach Eveland
f59451b04d Enumerates! used inline ASM for operation which moves interrupts to boot section 2011-10-21 17:16:48 -04:00
Zach Eveland
2f46c2a6e6 can now enable interrupts but EORSTE or SOFE in USB_::attach() still cause bootloader to hang 2011-10-21 16:51:25 -04:00
Zach Eveland
bc669c14f8 added more USB source adapted from sketch core. still not enumerating. 2011-10-21 16:33:52 -04:00
David A. Mellis
ec09ead6ac Lowering timer 1 prescale factor (to 8 from 64) for F_CPU less than 8 MHz.
Otherwise, you can see flicker on an LED.
2011-10-21 11:54:11 -04:00
Zach Eveland
b86ce43044 initial commit of new Diskloader-based bootloader experiment 2011-10-21 08:02:17 -04:00
David A. Mellis
e7ff928762 Putting the Uno lock bits back. 2011-10-10 12:28:09 -04:00
WestfW
8efc3920f9 Explicitly set the SHELL variable when OS=windows, so that we'll use
the same shell regardless of whether other shells are installed
(different shells have different behavior WRT directory component
separators, so this matters.

http://code.google.com/p/arduino/issues/detail?id=667 )
(cherry picked from commit fc8cacb9a3)
2011-10-10 12:11:18 -04:00
WestfW
de4d73511d Oops. Add atmega8.lst/hex and atmega168.lst/hex to controlled files.
(cherry picked from commit c56a1293d7)
2011-10-10 12:11:18 -04:00
WestfW
b2c43c2e55 Allow the READ PARAMETER command to return our version number.
(significant size impact: 14 bytes!)

Initialized "address" to eliminate compiler warning (4 bytes!)

Add "atmega168" as a more accurate target name than "diecimila"
(keep diecimila as well for backward compatibility)

Reduce the .hex and .lst targets that are stored in source control
to the three basics: atmega8, atmega168, atmega328.  The other
targets remain in the makefile and makeall, but will need to be
built from source if wanted.  Which should be less of a problem
now that the source is buildable without installing crosspack.
(cherry picked from commit 7b1ee0f1b0)
2011-10-10 12:11:17 -04:00
WestfW
61e4d16675 Modify Uno "lock" bits in boards.txt to make bootloader readable by
sketches.  Part of http://code.google.com/p/arduino/issues/detail?id=554
(cherry picked from commit 39a496616f)
2011-10-10 12:11:17 -04:00
WestfW
a57d315e4b http://code.google.com/p/arduino/issues/detail?id=368
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.))
(cherry picked from commit e81c1123b6)
2011-10-10 12:11:16 -04:00
WestfW
1bbded4f34 (make sure .hex and .lst are updated as well.)
(cherry picked from commit ece29c3805)
2011-10-10 12:11:16 -04:00
WestfW
091dc9a7f9 Fix errors in LDSECTIONS refactoring
(found during atmega8 testing.)
(cherry picked from commit 422398e08c)
2011-10-10 12:11:16 -04:00
WestfW
93f7515ecf Update version to reflect previous edit. Sigh.
(cherry picked from commit e28b716f88)
2011-10-10 12:11:15 -04:00
WestfW
07a88dc998 Shrink code by using registers for variables "length" and "address"
http://code.google.com/p/optiboot/issues/detail?id=33

Fix high-value watchdog timeouts on ATmega8
http://code.google.com/p/optiboot/issues/detail?id=38

Change "start app on bad commands" code to start the app via the
watchdog timer, so that the app is always started with the chip
in fully reset state.
http://code.google.com/p/optiboot/issues/detail?id=37
(cherry picked from commit 6f7687b0f9)
2011-10-10 12:11:15 -04:00
WestfW
10019bb0df 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.
(cherry picked from commit 00706284de)
2011-10-10 12:11:15 -04:00
WestfW
287aae6b42 Update shell script makeall
(cherry picked from commit d4632cb095)
2011-10-10 12:11:14 -04:00
WestfW
92e746d0a5 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.
(cherry picked from commit e2812ef91c)
2011-10-10 12:11:14 -04:00
WestfW
72e425a41d 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
(cherry picked from commit 6840b77643)
2011-10-10 12:11:14 -04:00
WestfW
11b2d86ff1 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.
(cherry picked from commit 2d2ed324b4)
2011-10-10 12:11:13 -04:00
David A. Mellis
f093cc6970 Merge pull request #30 from WestfW/master
Significant optiboot upgrade.
2011-10-10 09:01:56 -07:00
David A. Mellis
a08657b350 Moving USBasp in programmers menu. 2011-10-10 11:58:38 -04:00
David A. Mellis
2ffad50619 Merge pull request #41 from chiva/patch-1
Added USBasp to programmers list
2011-10-10 08:56:15 -07:00
David A. Mellis
ca671fdc05 Fixing more warnings (Paul Stoffregen). 2011-10-10 11:28:44 -04:00
WestfW
fc8cacb9a3 Explicitly set the SHELL variable when OS=windows, so that we'll use
the same shell regardless of whether other shells are installed
(different shells have different behavior WRT directory component
separators, so this matters.

http://code.google.com/p/arduino/issues/detail?id=667 )
2011-10-05 01:41:03 -07:00
David A. Mellis
85c109f255 Fixing warnings in Stream (Paul Stoffregen)
http://code.google.com/p/arduino/issues/detail?id=208
2011-10-02 09:44:21 -04:00
David A. Mellis
6554ae653c Using alternate timer 0 overflow interrupt signal name for ATtiny24/44/84. 2011-09-30 11:24:44 -04:00
David A. Mellis
bd823bf201 Changing Ethernet upload protocol from stk500 to arduino.
http://code.google.com/p/arduino/issues/detail?id=649
2011-09-28 23:26:37 -04:00
David A. Mellis
de22990133 Updating bootloader comments. 2011-09-16 20:31:41 -04:00
David A. Mellis
df2270d4d5 Commenting out micro board for now since it's not being released yet. 2011-09-16 20:26:43 -04:00
David A. Mellis
19d7d4b066 Updating Micro bootloader (previous one was identical to Leonardo). 2011-09-16 18:25:59 -04:00
Zach Eveland
d532d85059 added Mouse.isPressed() method 2011-09-16 16:59:14 -04:00
Zach Eveland
00c3631467 made some Keyboard methods private 2011-09-16 16:43:07 -04:00
Zach Eveland
30fc9919e1 added support for TIMER4D used for PWM on Leonardo and Micro D6 2011-09-16 16:36:42 -04:00
Zach Eveland
b898a35f76 new bootloader binaries for Micro and Leonardo - uses new assignment for TXLED pin 2011-09-16 16:24:21 -04:00
Zach Eveland
a4ccf47ec7 updated pin assignment again based on design files for Leonardo 2011-09-16 16:12:39 -04:00
Zach Eveland
23d0d05844 updated pin mappings for bootloader and pins_arduino.h in anticipation of final hardware. 2011-09-16 15:46:51 -04:00
Zach Eveland
8638d5b4e9 restored accidentally-deleted Leonardo type in boards.txt 2011-09-16 14:54:42 -04:00
Zach Eveland
75cfefcd0a restored Micro entry in boards.txt, made separate bootloader images for Leonardo and Micro. 2011-09-16 14:47:42 -04:00
Zach Eveland
cd5ecfff1c Merge https://github.com/arduino/32U4 into new-extension 2011-09-16 14:34:55 -04:00
Zach Eveland
667da698d7 added automatic one-shot TX and RX LED control for sketch USB 2011-09-16 14:32:25 -04:00
David A. Mellis
5ec35fc68c Moving Leonardo after Uno. 2011-09-16 14:24:11 -04:00
Zach Eveland
6b7d24edb0 added to sketch iProduct and iManufacturer strings identifying board as either an "Arduino Leonardo" or "Arduino Micro" manufactured by "Arduino LLC" 2011-09-16 12:29:47 -04:00
Zach Eveland
4452de6eaa bootloader iProduct definition changed to "Arduino Leonardo Bootloader" or "Arduino Micro Bootloader". selection depends on PID passed in at compile time 2011-09-16 12:09:51 -04:00
Zach Eveland
66b484e53e added to the bootloader iProduct and iManufacturer strings identifying board as an "Arduino Leonardo" manufactured by "Arduino LLC" 2011-09-16 11:56:33 -04:00
Zach Eveland
6bbc7b2db7 faster LED breathing animation in bootloader 2011-09-16 11:18:39 -04:00
Zach Eveland
ab8fc5aab7 Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension 2011-09-16 10:27:11 -04:00
Santiago Reig
90f285ae9c Added USBasp to programmers list 2011-09-16 01:56:22 +03:00
Zach Eveland
d4e9db463b fixed analog pin mapping for 32u4 2011-09-13 23:52:26 -04:00
Zach Eveland
18d76057fe fixed Mouse button assignments 2011-09-13 21:37:46 -04:00
Zach Eveland
e3fa1ed039 made Mouse.buttons() private. removed MOUSE_ALL macro 2011-09-12 08:14:13 -04:00
David A. Mellis
f3d8628c5e Don't consume trailing char in parseInt() and parseFloat (Paul Stoffregen).
http://code.google.com/p/arduino/issues/detail?id=624
2011-09-09 16:24:47 -04:00
Zach Eveland
6f65578b99 updated Leonardo INF with correct PID and created new Micro INF. 2011-09-08 20:45:10 -04:00
Zach Eveland
b1c8d0be34 in bootloader reduced delay between receiving stk500 'Q' and jumping to application 2011-09-08 20:38:23 -04:00
Zach Eveland
94879d3ac6 Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
Conflicts:
	build/linux/dist/tools/avrdude.conf
2011-09-08 20:26:47 -04:00
Zach Eveland
db7013f95c fixed bug where sketches over 28k caused subsequent auto-reset-and-upload attempts to fail. fixed bug in reboot routine, changed fuses to select 1024-word bootloader size, disabled hardware boot enable. 2011-09-08 19:31:18 -04:00
Zach Eveland
c0b45364b8 disabling watchdog in bootloader 2011-09-08 18:12:11 -04:00
Zach Eveland
11e3921c81 misc. bootloader fixes: increased wait time after receiving avrdude 'Q', increased bootloader timeout, and fixed LED one-shot timing 2011-09-08 16:23:29 -04:00
Zach Eveland
e870f070db added compile-time definition of sketch PID. PID is pulled from variants/leonardo or the new variants/micro as appropriate. 2011-09-08 15:52:05 -04:00
Zach Eveland
508eb9b72f removed leftover pins/ directory 2011-09-08 15:43:16 -04:00
Zach Eveland
301f1b8552 Revert "added Micro section to boards.txt. specified different bootloader hex files for Leonardo and Micro (differ only by PID). added PID entries to boards.txt"
This reverts commit 3b5122e138.
2011-09-08 15:40:41 -04:00
Zach Eveland
c295917fad Revert "support compile-time passing of PID to Leonardo/Micro sketches. PID comes from boards.txt - different for Micro and Leonardo"
This reverts commit 3e0d195492.
2011-09-08 15:39:17 -04:00
Zach Eveland
3e0d195492 support compile-time passing of PID to Leonardo/Micro sketches. PID comes from boards.txt - different for Micro and Leonardo 2011-09-08 11:23:55 -04:00
Zach Eveland
3b5122e138 added Micro section to boards.txt. specified different bootloader hex files for Leonardo and Micro (differ only by PID). added PID entries to boards.txt 2011-09-08 11:00:40 -04:00
Zach Eveland
48212b11fd changed PIDs for Leonardo and Micro. PIDs are now defined in the Makefile 2011-09-08 09:47:17 -04:00
Zach Eveland
4db174e67b removed all bootloader mass storage and MSC references 2011-09-08 09:12:30 -04:00
David A. Mellis
7d8d20894c Making Print::write(char *) non-virtual.
http://code.google.com/p/arduino/issues/detail?id=607
2011-09-07 18:41:05 -04:00
David A. Mellis
ab36bd5dbb Changing to a simpler mental model for serialEvent (Paul Stoffregen).
http://code.google.com/p/arduino/issues/detail?id=626
2011-09-07 17:47:17 -04:00
Zach Eveland
fa901e2ba4 changed auto-reset trigger condition to fix auto-reset-and-upload for Windows. now reboots when a port, opened at 1200 bps, is closed. 2011-09-06 20:58:00 -04:00
Zach Eveland
5e058a8aa3 changed baudrate for auto-reset-and-upload back to 1200 bps. specified arduino protocol for Leonardo avrdude upload. 2011-09-05 13:08:05 -04:00
Zach Eveland
e24e9499cf Merge branch 'new-extension' of https://github.com/arduino/Arduino into new-extension
Conflicts:
	build/macosx/dist/tools-universal.zip
	build/windows/avr_tools.zip
	hardware/arduino/cores/arduino/HardwareSerial.cpp
2011-09-05 12:53:45 -04:00
David Mellis
83da177280 Merge branch 'new-extension' of github.com:arduino/Arduino into new-extension 2011-09-02 19:58:39 -04:00
David Mellis
85bf4252f0 Updating to avrdude 5.11 (Windows). stk500 -> arduino in boards.txt.
http://code.google.com/p/arduino/issues/detail?id=606
2011-09-02 19:57:29 -04:00
David A. Mellis
bf5e928e4c Adding Arduino Ethernet and Arduino Mega ADK (joint w/ Mega 2560) to boards menu.
http://code.google.com/p/arduino/issues/detail?id=594
2011-08-31 16:48:06 -04:00
David A. Mellis
1278144d50 Moving serialEvent() calls from RX interrupts to main for() loop (after loop()).
http://code.google.com/p/arduino/issues/detail?id=584
2011-08-31 15:52:56 -04:00
David A. Mellis
61b33f11ce Renaming writeError() to getWriteError() in Print (and Stream and friends).
http://code.google.com/p/arduino/issues/detail?id=608
2011-08-31 15:39:20 -04:00
Zach Eveland
3389d28e20 added Mouse press() and release() 2011-08-30 20:23:06 -04:00
Zach Eveland
7d26163b16 on a CDC or HID write() error, call setWriteError(). better handling of USB_Send errors in CDC. 2011-08-30 17:25:35 -04:00
amcewen
a6093a8d91 Created an abstract base class UDP to match the Client and Server classes, and reworked the Ethernet library to use it and derive EthernetUDP. 2011-08-30 21:27:31 +01:00
Zach Eveland
6049e4455a support for non-Leonardo boards is back! 2011-08-30 11:50:08 -04:00
Zach Eveland
0b3acaea21 CDC and HID write() routines now return non-void - brought in line with new write behavior 2011-08-30 11:04:34 -04:00
Zach Eveland
0a34c0f35e brought leonardo folder in line with new variants scheme 2011-08-30 10:45:41 -04:00
Zach Eveland
91f89da73a Merge branch 'mainline' into new-extension 2011-08-30 08:38:06 -04:00
amcewen
ad5dead85a Changed names of the Ethernet classes: Client -> EthernetClient, NetClient -> Client, and basic testing performed 2011-08-29 22:36:28 +01:00
amcewen
b7533c1839 Final changes to integrate latest core updates to WiFly branch 2011-08-28 22:26:07 +01:00
amcewen
e1748e79d7 Merge branch 'master' into wifly_integration 2011-08-28 20:28:53 +01:00
Zach Eveland
6345e2942a auto-upload-and-reset works now at 300 bps. patched avrdude for Mac to support 300 bps connection, changed core and boards.txt to match 2011-08-27 20:32:34 -04:00
amcewen
4588120106 Merge branch 'new-extension' of https://github.com/arduino/Arduino 2011-08-27 23:53:42 +01:00
Zach Eveland
bef7d736d2 bootloader ends as soon as sketch upload finishes. restored pulsing of LED while bootloader running. 2011-08-27 07:00:07 -04:00
David A. Mellis
b73cf39d94 Moving write errors out of return value into separate API methods.
write(), print(), println() now return size_t (and don't use negative values to signal errors).
Print adds writeError() for checking for write errors, clearWriteError() to reset the flag to false, and a protected setWriteError() for signalling errors.

http://code.google.com/p/arduino/issues/detail?id=598
2011-08-26 16:08:14 -04:00
David A. Mellis
929597375b Changing from long to ssize_t (int) for write(), print(), println() return. 2011-08-26 14:20:41 -04:00
Zach Eveland
eebe997dce bugfix - Serial.write() would try to send even if no CDC connection was open. 2011-08-24 21:04:30 -04:00
Zach Eveland
ff5fe87864 changed auto-reset method for upload: now triggered by opening port at 1200 bps 2011-08-24 17:12:28 -04:00
David A. Mellis
8059abe581 write(), print(), and println() now return number of bytes written.
The type is long, and negative values indicate errors.  Needs more testing.
http://code.google.com/p/arduino/issues/detail?id=551
2011-08-23 19:12:03 -04:00
David A. Mellis
b788ad593f Distinguishing those boards with eight analog inputs (Fio, BT, Nano, Mini).
http://code.google.com/p/arduino/issues/detail?id=499
2011-08-23 17:29:20 -04:00
David A. Mellis
d00f0949ed Renaming pins/ directory to the more generic variants/
http://code.google.com/p/arduino/issues/detail?id=588
2011-08-23 17:07:39 -04:00
Zach Eveland
dd539bacf8 USB microcontrollers will call USB.attach() after init(), before setup() 2011-08-18 19:59:35 -04:00
Zach Eveland
5b989d13b3 HW Serial on pins 0 and 1 works. Accessed by Serial1.* methods 2011-08-18 19:40:04 -04:00
David A. Mellis
4b0a87b405 Stream.readBytesUntil() now writes null terminator within length. 2011-08-18 15:13:47 -04:00
David A. Mellis
cb39ad9739 A few API changes to new Stream parsing functions.
Renamed readChars() -> readBytes(), readCharsUntil() -> readBytesUntil().
Changed timeouts to milliseconds from seconds; default from 5 to 1 seconds.
Removed readCharsBetween().
2011-08-17 14:16:47 -04:00
David A. Mellis
682b58e577 Integrating Stream searching & parsing (Michael Margolis)
This from Michael's TextFinder library, incorporated into the Stream class: find(), findUntil(), parseInt(), parseFloat(), readChars(), readCharsUntil(), readCharsBetween(), setTimeout().
2011-08-17 13:53:49 -04:00
Zach Eveland
e3848670a7 Temporary fix for auto-reset from IDE. Will reset chip when DTR is asserted, no matter what CDC baud rate is selected. 2011-08-16 13:43:55 -04:00
Zach Eveland
3f6df054ee Serial via USB works
Integrated rest of Peter's USB implementation
2011-08-14 16:59:34 -04:00
Zach Eveland
e254d2989d LEDs for D13, TX, and RX are more in line with Uno-like behavior during sketch uploading.
D13 flashes on reboot, TX and RX flash with USB data transfer.
2011-08-14 16:02:16 -04:00
Zach Eveland
c149be22f7 rebuilt Diskloader, added LED control macros for Leonardo, removed Microtouch defines 2011-08-14 15:11:23 -04:00
Zach Eveland
13a269df2e increased bootloader delay to approx. 3.5 s 2011-08-14 14:29:44 -04:00
David A. Mellis
d338f22bde Adding basic macros for analog + digital pin information.
http://code.google.com/p/arduino/issues/detail?id=495
2011-08-12 18:27:00 -04:00
David A. Mellis
f179794a45 Adding pin-change interrupt pin mapping macros to pins_arduino.h.
http://code.google.com/p/arduino/issues/detail?id=490
2011-08-12 17:31:22 -04:00
David A. Mellis
f14fd94d0e Adding SCL, SDA, and LED #defines. 2011-08-12 16:59:24 -04:00
Zach Eveland
213091f487 cleaned up types. set D5 as not a PWM pin for now. 2011-08-11 14:16:13 -04:00
Zach Eveland
9b954df303 committed USB API, initial HardwareSerial-USBSerial integration 2011-08-11 14:08:38 -04:00
Zach Eveland
0ecdd723cf diskloader source and binary for 32u4 2011-08-11 10:31:39 -04:00
Zach Eveland
cdf887b10b support for 32u4 and Leonardo pins, uploading, and bootloader programming 2011-08-10 23:36:36 -04:00
David A. Mellis
c93fd746c4 Disabling terminal / monitor. 2011-06-29 22:48:07 -04:00
David A. Mellis
486e14aae3 Fixing linker command line argument. 2011-06-25 11:50:52 -04:00
David A. Mellis
7e1e9bfea2 Merge branch 'new-extension' into platforms 2011-06-25 11:40:12 -04:00
ricklon
dacfa86223 Addtional debuggin. Trying to find the pins compile issue. 2011-06-22 21:20:45 -06:00
ricklon
aa01546b55 Switched to a nonconflicting delimeter |. Compile process is working. Need to make sure that it matches 1.0 process exactly. 2011-06-17 22:12:21 -04:00
ricklon
67c9dfc667 A bit of cleanup. Delimeter not figured out yet. 2011-06-17 00:54:58 -04:00
ricklon
b0556c2e74 Changed :: to , for platforms.txt. Also, changes to compile process to support execAsynchronously changed to Stringp[] 2011-06-15 23:04:38 -04:00
WestfW
c56a1293d7 Oops. Add atmega8.lst/hex and atmega168.lst/hex to controlled files. 2011-06-14 23:57:41 -07:00
WestfW
7b1ee0f1b0 Allow the READ PARAMETER command to return our version number.
(significant size impact: 14 bytes!)

Initialized "address" to eliminate compiler warning (4 bytes!)

Add "atmega168" as a more accurate target name than "diecimila"
(keep diecimila as well for backward compatibility)

Reduce the .hex and .lst targets that are stored in source control
to the three basics: atmega8, atmega168, atmega328.  The other
targets remain in the makefile and makeall, but will need to be
built from source if wanted.  Which should be less of a problem
now that the source is buildable without installing crosspack.
2011-06-14 10:24:27 -07:00
WestfW
39a496616f Modify Uno "lock" bits in boards.txt to make bootloader readable by
sketches.  Part of http://code.google.com/p/arduino/issues/detail?id=554
2011-06-14 01:13:41 -07:00
WestfW
e81c1123b6 http://code.google.com/p/arduino/issues/detail?id=368
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.))
2011-06-13 19:07:07 -07:00
amcewen
8dfee1fb74 Merge remote branch 'upstream/new-extension'
Moved my fork to the Arduino 1.0 codebase
2011-06-11 21:27:18 +01:00
WestfW
ece29c3805 (make sure .hex and .lst are updated as well.) 2011-06-11 03:17:38 -07:00
WestfW
422398e08c Fix errors in LDSECTIONS refactoring
(found during atmega8 testing.)
2011-06-11 03:15:33 -07:00
WestfW
e28b716f88 Update version to reflect previous edit. Sigh. 2011-06-10 23:16:21 -07:00
WestfW
6f7687b0f9 Shrink code by using registers for variables "length" and "address"
http://code.google.com/p/optiboot/issues/detail?id=33

Fix high-value watchdog timeouts on ATmega8
http://code.google.com/p/optiboot/issues/detail?id=38

Change "start app on bad commands" code to start the app via the
watchdog timer, so that the app is always started with the chip
in fully reset state.
http://code.google.com/p/optiboot/issues/detail?id=37
2011-06-10 23:02:25 -07:00
WestfW
00706284de 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
d4632cb095 Update shell script makeall 2011-06-10 16:29:34 -07:00
WestfW
e2812ef91c 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
6840b77643 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
2d2ed324b4 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
ricklon
58de95a905 Added platforms.txt, and update boards.txt with platform=avr 2011-06-06 21:57:11 -04:00
David A. Mellis
87a04fc064 Added Printable interface class to allow printing of classes such as IPAddress 2011-06-04 09:19:17 -04:00
David A. Mellis
2711c9910b 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-20 13:29:13 -04:00
David A. Mellis
db64d2fc32 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
8c0fdf1e43 Small optimization in HardwareSerial.
begin(long) -> begin(unsigned long)

Conflicts:

	hardware/arduino/cores/arduino/HardwareSerial.h
2011-05-12 16:58:56 -04:00
David A. Mellis
1747292711 Optimizing printing of numbers (writing a single buffer).
Fix from Bill Greiman via Limor.
2011-05-07 18:17:32 -04:00
David A. Mellis
cf044cd236 Adding serialEvent(), serialEvent1(), etc.
Called from within the serial receive interrupt.  These are implemented as an empty weak function in the core that be overridden by the user's sketch.

http://code.google.com/p/arduino/issues/detail?id=263
2011-05-07 13:04:13 -04:00