diff options
author | Matthijs Kooijman <matthijs@stdin.nl> | 2014-04-22 20:52:09 +0200 |
---|---|---|
committer | Matthijs Kooijman <matthijs@stdin.nl> | 2015-01-26 17:03:25 +0100 |
commit | c69c0b52aa66714a501544175215fd9723532dc2 (patch) | |
tree | 3abb20dfad43de62d277454f8aae20dace0c109d /drivers/FTDI USB Drivers | |
parent | fe390c3cc8e8b908d8207be80aaa34f804d82c79 (diff) |
Further optimize SoftwareSerial::write
This change restructures the loop, to help the compiler generate shorter
code (because now only the LSB of the data byte is checked and
subsequent bytes are shifted down one by one, it can use th "skip if bit
set" instruction).
Furthermore, it puts most attributes in local variables, which causes
the compiler to put them into registers. This makes the timing-critical
part of the code smaller, making it easier to provide accurate timings.
On an Arduino uno using gcc 4.3, this saves 58 bytes. On gcc 4.8, this
saves 14 bytes.
Diffstat (limited to 'drivers/FTDI USB Drivers')
0 files changed, 0 insertions, 0 deletions