comm: macro to determine size of currently txed frame
Merge branch 'comm-rewrite' into comm-rewrite-serial-rx
serialcomm: change transmitted frame header

header is now 4 bytes: start, destination address, length, checksum.

The "checksum" is a simple xor of the destination and length, with the 1
bit masked out (to ensure that it is never 0xFF, which is the start
byte.)  This should ensure that the receiver is able to synchronize
better
Merge branch 'comm-rewrite' into comm-rewrite-serial-rx
Merge branch 'comm-rewrite' into comm-rewrite-serial-rx
mpc: /always/ send to master
remove annoying compilation warnings.
move serialcomm to include/
pass addr to serialcomm

Make sure serialcomm has the address so RX can match on it.
mpc/phasor: add new comm/mpc code to phasor
comm: macro to determine number of bytes received
mpc/serialcomm/comm: Add serialcomm receiver

Adds serial comm receiver with a [probably really stupid] frame
synchronizer.  The synchronizer runs constantly, and begins trying to
syncrhonize whenever it sees 0xFF.  If a frame is being received while
synchronization is running,  the data is received as normally. When the
syncrhonizer detects a valid 4-byte 'start sequence' (0xff, dest
address, pkt length, check), any active RX is ended, and a new RX is
started.  Since the syncrhonizer restarts whenever 0xFF is received,
none of the bytes in the frame header can be 0xFF - this means the size
is limited to 0xFE and the check must not be 0xFF.  The check is defined
as: ((destination address)^(size))0xFE; it is a simple xor of the
address and size bytes with the 1 bit cleared.