Sat Dec 6 12:55:54 CET 2008

the problem with writing lowlevel code..

I've been doing a full-time C job last 2 months.  The things I loose
most of my time with are not really programming tasks, but getting
hardware to work: using the right initializations, correct order of
operations and a load of workarounds.

The problem is STATE.  Hardware is overall tremendously stateful,
doesn't have clear interfaces that prevent illegal use, and has poor
error handling/reporting.

It does look like there is little to be done about this: the problem
is hardware itself:  problems are pushed to the software level since
they are easier to handle there.  A device driver is then really
mostly a design bugfix layer..

One thing which is tremendously useful in packet-based communication
is a sniffer with a packet parser.  For APIs it's a call trace.

So.. maybe for the USB drivers, I try to route it over ethernet (i
think that exists) to be able to sniff the traffic?