Andrew Tridgell
40af9ab674
AP_HAL_PX4: updates for new API
2013-09-22 12:22:05 +10:00
Andrew Tridgell
05b426c1fc
HAL_PX4: use common printf implementation on UARTs
2013-09-21 14:23:52 +10:00
Andrew Tridgell
2340bb6220
PX4: use a minimum transmit buffer for UARTs of 512 bytes
...
this avoids writes stalling on the GPS port. We can't afford this
memory on APM2, but we can on PX4, and it means that while the GPS is
blocking at startup it doesn't cause any scheduler slips
2013-08-30 13:01:33 +10:00
Andrew Tridgell
0916388ab5
HAL_PX4: retry opening UARTs up to 5 times
...
this seems to help a lot with the USB port on PX4
2013-07-11 13:50:23 +10:00
Andrew Tridgell
8766e86091
HAL_PX4: fixed blocking bulk writes to UARTs
...
this fixes a problem with uBlox initialisation on PX4
2013-03-20 15:41:52 +11:00
Andrew Tridgell
14911eff6c
HAL_PX4: added a (disabled) trick for handling blocking ttyACM0
...
this doesn't work yet, but is worth having for debugging
2013-03-20 11:20:43 +11:00
Andrew Tridgell
c373429a6e
HAL_PX4: fixed a buffer handling bug
...
BUF_SPACE() was badly buggy, which could lead to memory corruption
2013-02-20 18:15:56 +11:00
Andrew Tridgell
54e7bce75e
HAL_PX4: cope with O_NONBLOCK not working in NuttX on ttyACM0
...
writes will block anyway, which clags up APM
2013-02-19 12:02:46 +11:00
Andrew Tridgell
fc8065b50f
HAL_PX4: added UART performance counters
2013-01-24 15:04:57 +11:00
Andrew Tridgell
f72b532405
HAL_PX4: ensure all writes go via buffers
...
this prevents output corruption by direct fd writes
2013-01-23 09:22:51 +11:00
Andrew Tridgell
89cb3fbd61
HAL_PX4: fixed blocking IO in UART driver
2013-01-22 21:52:21 +11:00
Andrew Tridgell
6ffa18fa61
HAL_PX4: rewrite UART driver to be much more efficient
...
this does the IO in the timer thread, and uses buffers in the main
task to avoid system call costs in the flight code.
The cost of PX4 read and write system calls is quite high - about 10
to 15 usec. We can't afford to pay that per byte
2013-01-22 21:22:01 +11:00
Andrew Tridgell
546ed19ffc
HAL_PX4: improved efficiency of serial writes
...
use buffer at a time writes when possible, and use O_NONBLOCKING to
avoid txspace()
2013-01-22 10:50:26 +11:00
Andrew Tridgell
18cfd29f2f
HAL_PX4: added a read buffer to the UART driver
...
this lowers the average cost of reading bytes by a large amount, and
prevents the GPS driver from chewing lots of time.
2013-01-22 10:34:04 +11:00
Andrew Tridgell
76092eb590
AP_HAL: remove unused peek() interface from UART drivers
...
this is a bit tricky to implement on some platforms, and is unused
anyway
2013-01-16 14:43:18 +11:00
Andrew Tridgell
64a8a8e4c9
HAL_PX4: fixed using mavlink on the console
...
this disables the ONLCR termios flag, which was injecting extra
carriage returns in the output
2013-01-14 16:21:27 +11:00
Andrew Tridgell
30447018d5
HAL_PX4: handle %S in format strings
2013-01-05 08:10:07 +11:00
Andrew Tridgell
08d518e07f
HAL_PX4: switch to libc vdprintf()
...
vdprintf has now been added to NuttX
2013-01-05 08:01:10 +11:00
Andrew Tridgell
44837a11f2
HAL_PX4: added baudrate support to UART driver
2013-01-04 19:42:30 +11:00
Andrew Tridgell
155fca8a4b
HAL_PX4: make APM sketches into daemons
...
this also moves uartA onto UART5, allowing ttyS0 for nsh
2013-01-04 11:14:35 +11:00
Andrew Tridgell
d492b72a2c
HAL_PX4: use /dev/ttyS0 for uartA
...
this also changes txspace and available to use FIONWRITE and FIONREAD
2013-01-03 21:12:10 +11:00
Andrew Tridgell
c6c336a6e8
HAL_PX4: implement peek() and available()
...
keep a 1 byte buffer
2013-01-03 17:27:53 +11:00
Andrew Tridgell
d9d5eb52bf
HAL_PX4: use fd IO instead of stdio
...
this allows for hal console output from within timers, which is very
handy for debugging
2013-01-03 13:16:41 +11:00
Andrew Tridgell
9373a4e5b3
HAL_PX4: added a uartA driver
...
uses stdin/stdout for IO
2013-01-03 11:03:05 +11:00