This allows the spektrum and sbus receiver drivers to bind
directly to the usart layer using a properly exported API
rather than overriding the interrupt handler.
Bytes are now pushed directly from the usart layer into the
com layer without any buffering. The com layer performs all
of the buffering.
A further benefit from this approach is that we can put all
blocking/non-blocking behaviour into the COM layer and not
in the underlying drivers.
Misc related changes:
- Remove obsolete .handler field from irq configs
- Adapt all users of PIOS_COM_* functions to new API
- Fixup callers of PIOS_USB_HID_Init()
The COM layer now uses 32bit device ids rather than
8bit. All code that stores these ids must now use
uint32_t to hold them.
Since these 32bit numbers are really just opaque
pointers, it is (reasonably) safe to assume that
they won't be 0. The logic around tracking the
*_previous_com_port could probably be cleaned up
to remove that assumption.
Missed this fixup in the recent hwinit changes.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2776 ebee16cc-31ac-478f-84a7-5cbb03baadba