Sometimes the PC or Mac drivers are not actually ready to begin receiving data immediately after they cause DTR or RTS to assert. This delay allows the PC to become ready before we tell sketches the Serial device is true (ready).
Those that specify a NO_ARDUINO environment variable before using
the teensy3/Makefile, will be completely Arduino independent. Note
however that if ARDUINOPATH is set, the NO_ARDUINO behaviour will
be overridden. With NO_ARDUINO set and ARDUINOPATH unset, the
cross-compiler tool path (COMPILERPATH) will be set to /usr/bin.
Setting the COMPILERPATH environment variable before using the
teensy3/Makefile, will override the default.
Some path-variables in the teens3/Makefile passes though abspath
every time before they get used. Do this only once, when they get
set. This makes things more readable and less error-prone.
Define MCU in one place at the top of the file. Also allow it to be
overridden by the command line to compile for a different MCU without
changing the Makefile.
Reduce confusion, remove -nostdlib as it isn't obvious that it is
only being passed when compiling (which isn't linking so doesn't use
it), and isn't being passed to the linker (where it would fail if it
was, because routines from the library are used).
In case the desired frequency is too low to be obtained with F_TIMER
because prescale and mod were at their limits, switch automatically to
the alternative clock source (31250Hz) before determining prescale and
mod with the same algorithm as before.
or, alternativly one could write size_t strlen(const char *s) {return __builtin_strlen(s);} to use the gcc-builtin function.
I think, both are faster than the bytewise search.