Commit Graph

226 Commits

Author SHA1 Message Date
Andrew Tridgell 7497b4dfb1 HAL_Linux: fixed Replay with new AP_InertialSensor library 2014-11-16 12:30:50 +11:00
bugobliterator 9d39c0407e HAL_Linux: added ToneAlarmDriver.h 2014-11-15 21:25:55 +11:00
bugobliterator 329c1f5190 HAL_Linux:create ToneAlarmDriver as a separate class
ToneAlarm is now declared as a separate class instance of which is added as a private member of LinuxUtil
Some minor fixes in this patch include changing return type of tonealarm_init() to bool and use dprintf
2014-11-15 16:59:06 +11:00
bugobliterator f058131140 HAL_Linux Scheduler: reduce the delay inside tonealarm thread
Since the tonealarm is now passthrough the delay inside the thread needs to be reduced for precise tune generation
2014-11-15 16:59:06 +11:00
bugobliterator 3b94cb3072 HAL_Linux: make tonealarm generation a passthrough operation
get rid of all delays and while loops(that may turn into infinite loop)
2014-11-15 16:59:06 +11:00
bugobliterator e254b406d0 HAL_Linux: make rtttl tune and tune repeat flag list static members
instead of initialising them inside constructor
2014-11-15 16:59:06 +11:00
Andrew Tridgell c8c822422a HAL_Linux: give error msg on failure to start toneAlarm 2014-11-15 16:58:58 +11:00
John Williams 57d2fc1dd5 HAL_Linux: RCInput support for Zynq 2014-11-14 14:10:35 +11:00
Staroselskii Georgii a55db1c25d AP_HAL_Linux: fixed LinuxGPIO_RPI::read() 2014-11-14 10:28:34 +11:00
Mikhail Avkhimenia 49d3035ee5 HAL_Linux: fix types, remove printfs in GPIO_RPI 2014-11-14 10:28:34 +11:00
Mikhail Avkhimenia 6f993fe64a HAL_Linux: add prototype RCInput code for Navio 2014-11-14 10:28:34 +11:00
Staroselskii Georgii ef420a2544 AP_HAL_Linux: changed SPI mode for MPU9250 2014-11-14 10:28:34 +11:00
Staroselskii Georgii bf860ee41f AP_HAL_Linux: Ublox SPI stub 2014-11-14 10:28:34 +11:00
Víctor Mayoral Vilches ce4c4c43dc AP_HAL_Linux: Scheduler reboot fix
exit from the autpilot when reboot is commanded.
The software assumes that the code is being
launched in an infinite loop thereby an exit
will make it reboot.
2014-11-14 10:27:19 +11:00
John Williams ae87399919 HAL_Linux: Basic Zynq Linux platform support
Preliminary support for Zynq/Linux on the 'ZyboPilot' HW platform.

see https://github.com/trjw/ZyboPilot-bsp for the PetaLinux / Vivado project
files.

At this stage CPPM/Pulse in and PWM out work, and in CLI mode the passthru
test works correctly.

The platform has passed minimal smoke testing in HIL mode.

ZYNQ IS NOT FLIGHT TESTED YET!  FLY THIS PLATFORM AT YOUR OWN RISK!

Signed-off-by: John Williams <john@whelanwilliams.net>
2014-11-14 10:21:04 +11:00
Andrew Tridgell 00526359b0 HAL_Linux: use dprintf() instead of sprintf and write 2014-11-10 06:51:53 +11:00
bugobliterator af203760bd HAL_Linux: change the return type of AP_HAL::Util::tonealarm_init() to signed int8_t.
This is a part of a set of fixes for the bugs and typos tridge discovered and shared inside earlier commits for setting up tonealarm.
2014-11-10 06:27:48 +11:00
bugobliterator 298b27444a HAL_Linux: Add ToneAlarm Driver to Linux_HAL
ToneAlarm is setup for Beaglebone Black using pwm, toneAlarm thread runs on second last priority.
2014-11-10 06:27:48 +11:00
Andrew Tridgell 02581f4c05 HAL_Linux: re-fix dirty mask bug in Storage
when conversion to a single parent class was done it re-introduced a
bug that was fixed a while ago

See commit d238ff7c5d
2014-11-08 11:55:55 +11:00
Andrew Tridgell 330dab2fe3 HAL_Linux: fixed some warnings 2014-11-08 11:49:09 +11:00
bugobliterator 4908e335d2 HAL_Linux: Add Storage.cpp containing common storage class member definitions 2014-11-08 11:36:12 +11:00
bugobliterator dd6d520385 HAL_Linux:Create subclass to handle FRAM Storage under main Storage Class 2014-11-08 11:36:09 +11:00
Andrew Tridgell 14a6878bcd HAL_Linux: fixed termios settings on BBB initial boot
this should fix the problem of losing the GPS in flight
2014-11-07 22:15:28 +11:00
Andrew Tridgell 8506e8b5fb HAL_Linux: fixed linux build 2014-10-30 17:47:18 +11:00
John Williams b9f0310b82 hal_ap_linux: Make PRU constants private to reduce #define namespace pollution.
Forthcoming Zynq port AP_HAL_Linux uses similar constants with different
values - move these as private member constants to avoid collisions.

Signed-off-by: John Williams <john@whelanwilliams.net>
2014-10-30 13:51:41 +11:00
Mikhail Avkhimenia 81de994fef HAL_Linux: separate RCInput for PRU and Navio 2014-10-30 13:30:07 +11:00
Mikhail Avkhimenia e05151f0e0 HAL_Linux: Initialize i2c before rcoutput (required by i2c pwm chips for initialization) 2014-10-30 13:30:07 +11:00
Mikhail Avkhimenia 2f0900b0a8 HAL_Linux: add GPIO driver for Raspberry Pi 2014-10-30 13:30:07 +11:00
Mikhail Avkhimenia 07ed93cea0 HAL_Linux: add PCA9685 based RCOutput for Navio 2014-10-30 13:30:07 +11:00
Alexander Mergel 14c401c0f4 AP_HAL_Linux: [Bugfix] prevent memory acces violation in process_dsm_pulse
When a S.Bus signal is fed into the rcin-Pin AruPlane on the BBB get's a
Segmentation fault. This patch prevents the memory acces to dsm_state.bytes[16] outside
of the array bounds. The patch should be reviewed by sombody who knows the DSM protocol,
as i don't.
2014-10-30 11:57:35 +11:00
Andrew Tridgell 39fadad7d6 HAL_Linux: fixed build warnings 2014-10-09 16:49:23 +11:00
Andrew Tridgell c834589daa HAL_Linux: reduce the number of times we split up UART reads 2014-10-09 12:29:25 +11:00
Andrew Tridgell 076bb1294e HAL_Linux: improved UDP packetisation and add flow control reporting
report we have flow control on UDP and TCP
2014-10-09 12:29:25 +11:00
Andrew Tridgell cebfef3ead HAL_Linux: don't accept less than 5 input channels 2014-10-09 09:19:35 +11:00
Andrew Tridgell a3fee16604 HAL_Linux: added DSM/Spektrum RCInput support
this decodes DSM using the RCIN pulses from the PRU
2014-10-08 12:50:50 +11:00
Andrew Tridgell 3e3f87188b HAL_Linux: enable DSM power pin 2014-10-08 12:50:50 +11:00
Andrew Tridgell 50e5ae6f7a HAL_Linux: added low level DSM decoder
based on dsm.c from PX4 project
2014-10-08 12:50:50 +11:00
Andrew Tridgell 9b207d029d HAL_Linux: change ring buffer to 300 entries 2014-10-07 14:57:34 +11:00
Andrew Tridgell b1845ed00d HAL_Linux: initial support for parallel SBUS and PPM-SUM decoding 2014-10-07 14:57:34 +11:00
Andrew Tridgell 42e9dc3c31 HAL_Linux: added SBUS decoder from PX4 project
thanks Lorenz!
2014-10-07 14:57:34 +11:00
Andrew Tridgell e0e534628b HAL_Linux: support direct UDP output from UART drivers
this allows safe operation over WiFi links without MAVProxy
2014-10-06 15:13:03 +11:00
Andrew Tridgell d238ff7c5d HAL_Linux: fixed storage bug in Linux too 2014-09-11 18:58:54 +10:00
Andrew Tridgell 46ac52bccc HAL_Linux: removed retry loop on UART open
this was there for HAL_PX4 only, and makes no sense on Linux
2014-08-27 18:31:38 +10:00
Andrew Tridgell 024d3b71e7 HAL_Linux: use a semaphore in suspend_timer_procs()
this is the start of multi-core aware code
2014-08-22 21:13:11 +10:00
Andrew Tridgell ead82ee581 HAL_Linux: implement millis64() and micros64() 2014-08-20 08:00:21 +10:00
Andrew Tridgell b9dc2335ee HAL_Linux: run timer thread at average 1kHz without drift
this avoids drift in the 1kHz timer, to avoid bias in the IMU
filtering
2014-08-19 20:03:34 +10:00
Andrew Tridgell 8f280d212b HAL_Linux: don't use usleep() in suspend_timer_procs()
usleep can cause a large delay with PREEMPT kernel
2014-08-19 20:03:33 +10:00
Andrew Tridgell 94e14f5dcb HAL_Linux: split off RCOutput class to be specific to PXF and ERLE
this fixes the Replay tool
2014-08-19 20:03:33 +10:00
Andrew Tridgell 2ce219aeb8 HAL_Linux: split RCInput class into generic and PRU implementations
this will make it easier for other boards (such as NAVIO) to implement
their own RCInput mechanism
2014-08-19 20:03:33 +10:00
Andrew Tridgell b4be93113c HAL_Linux: prevent read past end of buffer 2014-08-19 10:08:17 +10:00
Andrew Tridgell b40bd479c4 HAL_Linux: moved FRAM vs FS choice into HAL_Linux headers 2014-08-19 10:08:17 +10:00
Andrew Tridgell 9fccb5f5ed HAL_Linux: clear more UART flags
this fixes a major timing issue caused by bad UART flags (I suspect
the echo flags) and the GPS auto detection code
2014-08-19 10:08:17 +10:00
Andrew Tridgell c87b0adc29 HAL_Linux: the MS5611 seems to be a bit happier at higher speed
still getting some bogus data, but less
2014-08-19 10:08:17 +10:00
Andrew Tridgell 6cc304e486 HAL_Linux: RCOutput should default to 50Hz on all boards 2014-08-19 10:08:16 +10:00
Andrew Tridgell 9d948d5a26 HAL_Linux: fixed name space collision in RCOutput 2014-08-19 10:08:16 +10:00
Andrew Tridgell 721d349922 HAL_Linux: fixed build of BusTest 2014-08-19 10:08:16 +10:00
Andrew Tridgell a4ef512f10 SPIDriver: fixed handling of 0 based SPI bus numbers 2014-08-19 10:08:16 +10:00
Andrew Tridgell 5fb2ad0068 HAL_Linux: fixed safety of RCInput code
don't loop forever waiting for pulses
2014-08-19 10:08:16 +10:00
bugobliterator ac11d282b5 HAL_Linux: Add support for PPM input to HAL_Linux
rcin thread continuously scans for values inside ring buffer maintained by pru with rcinpru0 firmware.
2014-08-19 10:08:16 +10:00
bugobliterator 4b2f7cd163 HAL_Linux: Add FRAM HAL driver support for non-volatile storage
Support for File System starage mode is retained, appropriate Storage
mode can be set by defining USE_FS_STORAGE for File System storage
aand US_FRAM_STORAGE for FRAM storage.  Note: FS storage and FRAM
storage are never synced as of now.
2014-08-19 10:08:16 +10:00
Victor Mayoral Vilches 8a71fdf092 HAL_Linux: minor syntax fix in UARTDriver
Typo noticed by @hcervino.
2014-08-19 10:08:16 +10:00
Silvia b6baf78e73 HAL_Linux:duplicate `#include <sys/types<`deleted 2014-08-19 10:08:16 +10:00
Silvia 7fd0e8345d HAL_Linux: Duplicate `#include <unistd.h>`deleted 2014-08-19 10:08:16 +10:00
Andrew Tridgell d40d0f6aec AP_HAL: removed old storage type read/write functions
not needed any more
2014-08-13 18:46:44 +10:00
Mikhail Avkhimenia a09fbb4171 HAL_Linux: Add SPI configuration for Navio
This changes the SPI bus number to be zero based on Linux
2014-08-12 22:13:00 +10:00
Andrew Tridgell 03e8e5f2b9 HAL_Linux: setup for all 6 SPI devices for PXF cape 2014-07-19 13:23:37 +10:00
Andrew Tridgell 05f5d91709 HAL_Linux: fixed BusTest build 2014-07-19 12:22:06 +10:00
Andrew Tridgell 9e921719ca HAL_Linux: added bus scanning test 2014-07-15 19:06:11 +10:00
Andrew Tridgell bcc8768358 HAL_Linux: fixed a build warning 2014-07-15 13:56:50 +10:00
Andrew Tridgell 1b85b12738 HAL_Linux: made I2C driver more portable
this uses a typeof() to cope with different kernel data types for I2C
messages
2014-07-15 13:56:50 +10:00
Andrew Tridgell 224515f3eb HAL_Linux: fixed indexing of device array for SPI 2014-07-14 11:31:55 +10:00
Andrew Tridgell 3292055af2 HAL_Linux: fixed dataflash SPI 2014-07-14 11:07:41 +10:00
Andrew Tridgell 6312b9f8c0 HAL_Linux: allow different SPI and GPIO devices on different boards
this fixes the Replay utility, which uses subtype NONE, and will make
it easier to port to new boards
2014-07-14 09:44:37 +10:00
bugobliterator 003806fcc1 HAL_Linux: pwmpru,HAL_Linux_RCOut code doesn't wait for magic flag to send data
change pwmpru code to remove frequent wrong PWM outputs
Replace pru firmware with new modified pru firmware
2014-07-14 09:44:37 +10:00
bugobliterator 8cf628e780 HAL_Linux_RCoutput:Add handler to catch SIGBUS error 2014-07-14 09:44:37 +10:00
bugobliterator 25e670d0cc HAL_LINUX_RCOutput: Change to reading hilo_read instead of periodhi
use uint instead of int
2014-07-14 09:44:36 +10:00
Andrew Tridgell a46d8dbd51 HAL_Linux: make the spi driver fd part of the manager, not device
it should be one connection to the kernel per bus, not one per device
2014-07-14 09:44:36 +10:00
Andrew Tridgell 9f8f27090a HAL_Linux: MPU9250 is restricted to 1MHz for setup
(see datasheet)
2014-07-14 09:44:36 +10:00
Andrew Tridgell 549e08446a HAL_Linux: use BBB pin names in SPIDriver
easier to find the pins on the board
2014-07-14 09:44:36 +10:00
Andrew Tridgell 8e5915ef7d HAL_Linux: fixed some valgrind errors 2014-07-14 09:44:35 +10:00
Andrew Tridgell 130f831c1c HAL_Linux: use MODE_3 for MPU9250
this fixes the MS5611 (probably due to idle state?)
2014-07-14 09:44:35 +10:00
Andrew Tridgell fc8068adfe HAL_Linux: use board subtypes 2014-07-14 09:44:35 +10:00
Andrew Tridgell 1bf0c4c67d HAL_Linux: cope with different I2C headers for data 2014-07-14 09:44:34 +10:00
Andrew Tridgell fa2a1c495e HAL_Linux: fixed I2C driver build errors 2014-07-14 09:44:34 +10:00
Andrew Tridgell 8c4565c741 HAL_Linux: fixed a build warning 2014-07-14 09:44:34 +10:00
Andrew Tridgell 5b438471a7 HAL_Linux: added set_bus_speed() support to SPI driver
used by MPU6000 driver for setup registers
2014-07-14 09:44:33 +10:00
Andrew Tridgell 0b64d834c3 HAL_Linux: MS5611 and MPU6000 should be MODE3
this doesn't solve the MPU6000 problem, but is correct
2014-07-14 09:44:33 +10:00
Andrew Tridgell 1c89f54934 HAL_Linux: fixed SPI mode handling per-device
the mode must be set per-device, not per bus.
2014-07-14 09:44:33 +10:00
Víctor Mayoral Vilches 145c71c4af HAL_Linux: Storage: Change storage folder in Linux to `/var/APM` 2014-07-14 09:44:33 +10:00
bugobliterator ca163c292c HAL_Linux: PRU: remove obsolete libraries/AP_HAL_Linux/PRU 2014-07-14 09:32:29 +10:00
Andrew Tridgell 72f94444c4 HAL_Linux: added basic support for RC overrides
this allows for easier testing of RC output by allowing
mavproxy to setup fake inputs

Pair-Programmed-With: Sid, Anuj, Victor and Philip
2014-07-14 09:32:29 +10:00
Andrew Tridgell d0b007248f HAL_Linux: fixed SPI semaphore, and panic on CS error
This adds a check for trying to assert two CS pins on the same bus
at the same time. The change involves moving the _device handles into the
DeviceManager class, and accessing via static methods.

This also moves the semaphore to be per-bus rather than per-device,
which fixes the problem with bad MS5611 transfers.

Pair-Programmed-With: Victor, Sid, Anuj and Philip
2014-07-14 09:32:29 +10:00
bugobliterator 5bcdb039e2 HAL_Linux: Make asynchronous PRU write and reduce the size of data exchange
Change to sending Total Period and hi Period, rather than Hi and Lo Period
Change PRU firmware accordingly
2014-07-14 09:32:29 +10:00
Víctor Mayoral Vilches fa6c5ba80e HAL_Linux: Remove the additional portNumber offset
The socket is being launched in (_base_port + portNumber) port
following SITL impl. In order to avoid confusions portNumber has
been set to 0.
2014-07-14 09:32:21 +10:00
Víctor Mayoral Vilches 02c171b19f HAL_Linux: UART-like TCP sockets, check for ":wait" 2014-07-14 09:32:13 +10:00
Víctor Mayoral Vilches ca80c0b8e2 HAL_Linux: config UART file descriptor as non-blocking 2014-07-14 09:31:59 +10:00
Siddharth Bharat Purohit 65fef59dfa HAL_Linux: change initial PWM values to 490Hz, 1000us 2014-07-14 09:31:49 +10:00
Víctor Mayoral Vilches f11f0d9f2a HAL_Linux: Fix FRAM code 2014-07-14 09:31:41 +10:00
Víctor Mayoral Vilches be68de20f1 HAL_Linux: UART-like TCP sockets impl. on AP_HAL_Linux 2014-07-14 09:31:30 +10:00
Víctor Mayoral Vilches b0742fbb5b HAL_Linux: Add FRAM SPI support. 2014-07-14 09:31:18 +10:00