mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-10 06:39:25 +08:00
e08064f826
Drops the duplicated ArchPX4IOSerial register-level + custom-DMA transport in favour of device::Serial over NuttX's lower-half UART driver (DMA-backed via CONFIG_UART7_RXDMA/TXDMA=y). Removes the ~600-line parallel transport stack that had to be kept in sync with src/drivers/px4io/. NuttX file descriptors aren't shared across task contexts, so the fd opened during the bridge's init() (caller task) cannot be used from Run() (work queue task). The interface releases the fd at the end of init() and the work queue lazy-opens its own on first use. Read requests now transmit PKT_SIZE bytes (header + count reg slots of padding) so the secondary's CRC accounting matches the response shape — the previous header-only request was rejected by the secondary's PKT_SIZE/CRC validation. Renames the internal class and exposed factory/release symbols and the board macros to drop the misleading PX4IO prefix; the file header points to the original source. Protocol-level PX4IO_* constants stay since this driver speaks the PX4IO register protocol. Signed-off-by: Julian Oes <julian@oes.ch>