I found that the previous reset code did not work for Leonardo or Micro, nor did any reset code anywhere on the internet.
An examination of the Arduino IDE source code (and the JNI code behind its serial implementation) shows that it holds RTS high and DTR low when doing the 1200 baud open/close. And it turns out that's exactly what's needed!
For instance in the Sparkfun 1.6 core, we have:
promicro16.build.vid.0=0x1B4F
promicro16.build.vid.1=0x1B4F
promicro16.build.vid=0x1B4F
So we end up matching all 3 instead of just the last one.
Adding the = means we're looking for promicro16.build.vid= so
not catching the .0 or .1 version.
existing builds.
E.g. mega1280 and mega2560 previously *both* created a "build-mega" directory,
now they'll create build-mega-mega2560 and build-mega-mega1280
Only applies to 1.5+ of course, and only when BOARD_SUB is used. 1.0 will still
create build-mega2560 and build-mega1280 directories (just BOARD_TAG)
arduino-tiny and damellis' attiny85 cores don't use a vendor, but they
do use the avr architecture (subdirectory) in their 1.5/1.6 branches.
arduino-tiny builds and is auto-detected now, still needs some
work to support sub-cpu's and clocks.
damellis doesn't compile, but that's not our makefile it seems.
Implements two new make rules: 'net_set_fuses' executes a single
ssh command, 'net_upload' pipes hex through ssh connection.
The example also showcases the FORCE_MONITOR_PORT feature.
This is support for https://code.google.com/p/arduino-tiny
The arduino-tiny project provides a boards.txt file and a whole
separate Arduino core modified to work with attinies.
Arduino.mk will now switch to that core if it finds a
'build.core' parameter in boards.txt and a folder in
$(ALTERNATE_CORE_PATH)/cores by that name.
Include files are searched for in the include search path made up
from, among other places, the -I switches given to the gcc compiler.
The . (dot) used for the current directory is not in the search
path when the IDE builds the project and does not seem to be needed
in any reasonable case. Maybe it was included because someone thought
it meant to "search in the same directory as the file being compiled",
but I cannot tell because the switch was already included in the first
commit in this repo. In any case, the current file directory is already
searched by gcc before the search path is consulted, in any case, so
this switch is not needed to cause this behavior.
Including the "-I." switch causes compiles to fail when libraries
include a header which is coincidentally named the same as one of the
user headers. For example, if the user has a Udp.h file in his sketch
folder, the compile will fail if it includes the EthernetUdp.h file.
A simple example is the examples/WebServer code. It fails if you do
this:
touch examples/WebServer/Udp.h
make -C examples/WebServer
But it builds ok from the IDE which does not include "." in the
search path.
Similarly, HelloWorld fails for the same reason if you do this:
touch examples/HelloWorld/Print.h
make -C examples/HelloWorld
Remove the -I. switch from the CPPFLAGS directive altogether to
prevent this include filename confusion and to more closely model
the behavior of the IDE. Fixes#303.
It may also work to move the -I. to the end of the search path,
but this still would compile differently from the IDE and so it
is considered not to be a useful feature to retain in any case.
--
I did not add a test case here because it's not clear to me how it
should be added. Should I modify HelloWorld as described above,
or should I add examples/TestSearchPath/ with the same files
explicitly for this test? It would be clearer for me if there
was an explicit "tests" directory independent from "examples".