Fabio Mello
c0caed1b64
AP_HAL_Linux: RCOutput_Navio: allow to use internal clock
...
It's possible to use the internal clock in PCA96895 if we account for
the drift it contains. This is a bit different from solutions in other
projects like the Adafruit library and the PX4 firmware: instead of
applying a correction to the final frequency we apply the correction to
the clock since this is the source of the error.
With this fix we arrived to much better results across different lots of
sensors.
The Navio board continues to use the external clock and should have no
difference behavior.
2015-09-03 18:43:21 +10:00
Lucas De Marchi
6c042b6666
AP_HAL_Linux: RCOutput_Navio: allow to have other offset
2015-09-03 18:43:21 +10:00
Lucas De Marchi
3beaf34aa1
AP_HAL_Linux: RCOutput_Navio: allow to have other OE pin
...
While at it also rename enable_pin to follow the convention of starting
with underscore for private members.
2015-09-03 18:43:21 +10:00
Gustavo Jose de Sousa
4af2a9a9cc
AP_HAL_Linux: SPI: adapt to the new signature of transaction()
2015-09-01 20:26:05 +10:00
Lucas De Marchi
dabfeff440
AP_HAL_Linux: standardize inclusion of libaries headers
...
Do the missing header changes due to changing the code before the pr
getting accepted.
2015-08-18 17:12:51 +10:00
Gustavo Jose de Sousa
124b750c10
AP_HAL_Linux: standardize inclusion of libaries headers
...
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
2015-08-11 16:28:43 +10:00
Andrew Tridgell
45a7c37734
HAL_Linux: added bcast flag for udp broadcast
2015-07-29 16:46:53 +10:00
Andrew Tridgell
b99740cb93
HAL_Linux: sped up UDP transfers by about 25x
...
allow more than 1 packetised transfer per tick
2015-07-29 14:19:46 +10:00
Andrew Tridgell
a5c7aa1b19
HAL_Linux: allow startup before network bringup
...
this makes it possible to bootup ardupilot before the desired network
interface is available. This is very useful for when using 3G dongles
in aircraft
2015-07-29 09:55:47 +10:00
Andrew Tridgell
55fc66ec65
HAL_Linux: implemented TCP server as a single driver
...
the wait flag just changes startup behaviour. The TCP server should
always be a server with listen and accept. We don't need two drivers
2015-07-29 09:37:57 +10:00
Andrew Tridgell
f72d9c6393
HAL_Linux: replace recvfrom with recv
2015-07-29 08:39:29 +10:00
Andrew Tridgell
3f3aaa3c50
HAL_Linux: removed 0 timeout from sendto call
2015-07-29 08:36:50 +10:00
Staroselskii Georgii
aa3efecef3
AP_HAL_Linux: fixed _parseDevicePath() in LinuxUARTDRiver
...
The current implementation doesn't throw an error on a malformed path string.
i.e. udp:192.168.1.1.14550 instead of udp:192.168.1.1:14550 may result in a memory leak or whatsoever.
The commit fixes the issue and outputs a nice error message if anything's wrong.
2015-07-29 08:36:09 +10:00
Staroselskii Georgii
0362128265
AP_HAL_Linux: renamed TCPClientDevice
2015-07-29 08:36:09 +10:00
Staroselskii Georgii
211acbec9c
AP_HAL_Linux: renamed TCPServerDevice
...
A more appropriate name for the class.
2015-07-29 08:36:08 +10:00
Staroselskii Georgii
a3f47878a2
AP_HAL_Linux: made UARTDriver use TCPServerDevice
2015-07-29 08:36:08 +10:00
Staroselskii Georgii
56f760f022
AP_HAL_Linux: added TCPServerDevice
2015-07-29 08:36:08 +10:00
Staroselskii Georgii
eacc085289
AP_HAL_Linux: made UARTDriver use TCPClientDevice
2015-07-29 08:36:07 +10:00
Staroselskii Georgii
a5ef931f5c
AP_HAL_Linux: added TCPClientDevice
2015-07-29 08:36:07 +10:00
Staroselskii Georgii
6e34dd9669
AP_HAL_Linux: got rid of TCP connection
2015-07-29 08:36:07 +10:00
Staroselskii Georgii
de6b2b4bce
AP_HAL_Linux: made UARTDriver use ConsoleDevice
2015-07-29 08:36:07 +10:00
Staroselskii Georgii
a9c9d91f09
AP_HAL_Linux: added ConsoleDevice
2015-07-29 08:36:06 +10:00
Staroselskii Georgii
6ec67a9bfd
AP_HAL_Linux: made UARTDriver use UDPDevice
2015-07-29 08:36:06 +10:00
Staroselskii Georgii
1881878c3a
AP_HAL_Linux: added UDPDevice
2015-07-29 08:36:06 +10:00
Staroselskii Georgii
656399541f
AP_HAL_Linux: encapsulated LinuxUARTDriver::_deallocate_buffers
2015-07-29 08:36:06 +10:00
Staroselskii Georgii
f117134443
AP_HAL_Linux: made UARTDriver use UARTDevice
2015-07-29 08:36:05 +10:00
Staroselskii Georgii
acd180ae96
AP_HAL_Linux: added UARTDevice
2015-07-29 08:36:05 +10:00
Staroselskii Georgii
6b94fd7603
AP_HAL_Linux: added SerialDevice interface
...
Adds the interface that will be used for encapsulating various mediums
that can be used in the Linux port.
2015-07-29 08:36:05 +10:00
Staroselskii Georgii
dacbdb57c4
AP_HAL_Linux: added _serial_start_connection
2015-07-29 08:36:05 +10:00
Staroselskii Georgii
44198bd4eb
AP_HAL_Linux: encapsulated LinuxUARTDriver::allocate_buffers
2015-07-29 08:36:04 +10:00
Staroselskii Georgii
94de9416fe
AP_HAL_Linux: use defines instead of hardcoding fd numbers in UARTDriver
2015-07-29 08:36:04 +10:00
Jean-Baptiste Dubois
f6aba6c952
HAL_Linux: add read_obs_data to RCOutput_Bebop
2015-07-23 21:49:28 +09:00
Staroselskii Georgii
d7ac725a64
AP_HAL_Linux: fixed signal handler in RCInput_Navio
...
DMA is getting stopped in the separate method now. This is the best we
can get at the current time. It does yield slightly better experience
and works in the majority of cases.
The patch is a no bulletproof solution, though.
There's a possibility of corruption in case of e.g. a SIGKILL. There's
no signal framework at the time and the commit doesn't add one. That's
why all signals are handled in the same erroneous way. This is not a
good nor a final solution to the issue.
For the issue at hand a better fix might be porting the code to kernel
space but it's a rather tediuos task that we cannot undertake in the
couple of weeks.
2015-07-23 08:51:38 +10:00
Staroselskii Georgii
8528a7d159
AP_HAL_Linux: added deinit logic for RCInput_Navio
...
DMA needs to be stopped if a panic occurs.
2015-07-23 08:51:37 +10:00
Staroselskii Georgii
f4d14f73ba
AP_HAL_Linux: extended panic handling with RCInput deinitialization
...
The issue has already come up. There's no deinitialization mechanisms at the moment. As APM is rather software than firmware on Linux, there're some clean-up work that needs to be done. This commit triggers deinitialization of RCInput on a panic.
2015-07-23 08:51:37 +10:00
Lucas De Marchi
cfc2972e51
AP_HAL_Linux: use ARRAY_SIZE macro
2015-07-21 14:24:58 +09:00
Jean-Baptiste Dubois
7dcfe1c667
RCOutput_Bebop: group channels write
2015-07-20 09:23:13 +10:00
Jean-Baptiste Dubois
9e5d13c1de
RCOutput_Bebop: use CLOCK_MONOTONIC instead of CLOCK_REALTIME
...
CLOCK_MONOTONIC is not affected by discontinuous jumps in the system time.
2015-07-15 12:08:44 +02:00
Staroselskii Georgii
72820303d4
AP_HAL_Linux: set higher SPI speed for Navio
...
We can set a higher speed on newer Linux kernels since
52469b2a38
.
The older ones will just floor the value.
2015-07-10 18:59:18 +10:00
Julien BERAUD
954ec71630
HAL_Linux: added rcout implementation for bebop
2015-07-10 16:46:30 +10:00
Julien BERAUD
7275e33e79
AP_HAL: add the possibility to have more than 1 i2c
...
Bebop drone has 3 i2c
2015-07-10 14:23:17 +10:00
Daniel Frenzel
c49e44d02c
HAL_LInux: RCInput for Navio
...
Cleaned the code a bit
Signed-off-by: Daniel Frenzel <dgdanielf@gmail.com>
2015-07-06 11:19:33 +10:00
Lucas De Marchi
fde43a77b3
AP_HAL_Linux: allow to change spi device state
...
Allowing to change the SPI device state allows us to save the
information whether the device was already initialized and avoid 2
separate drivers to initialize it.
2015-07-06 10:48:06 +10:00
mirkix
e6363ea95d
AP_HAL_Linux: BBBMINI uses /dev/i2c-2
2015-07-06 10:09:21 +10:00
Lucas De Marchi
b211b86204
AP_HAL_Linux: don't manually define number of spi devices
...
It's error-prone, let's make the compiler define it for us.
2015-07-06 10:07:22 +10:00
Andrew Tridgell
5f0302ed9f
HAL_Linux: fixed chaining of getopt calls
2015-07-01 20:44:07 +10:00
Andrew Tridgell
355575f793
HAL_Linux: fixed chaining of getopt instances
2015-07-01 15:42:07 +10:00
Andrew Tridgell
c8a6a02be1
HAL_Linux: don't do chardev test on subtype NONE
...
otherwise replay is broken
2015-07-01 15:36:34 +10:00
Andrew Tridgell
281f6d9caa
HAL_Linux: cope with expansion of storage from 4096 to 16k
2015-06-30 16:45:49 +10:00
Gustavo Jose de Sousa
87776d8a4b
Storage: define LINUX_STORAGE_SIZE correctly
...
The value for LINUX_STORAGE_SIZE was defined inconsistently against the one
defined for Linux boards in HAL_STORAGE_SIZE. That led to some values not
being written to the storage when running the test binary built at
libraries/StorageManager/examples/StorageTest.
2015-06-30 16:37:08 +10:00
Andrew Tridgell
761b39be03
HAL_Linux: removed extra include
2015-06-30 15:09:52 +10:00
Andrew Tridgell
a3c7297d8e
HAL_Linux: fixed setting of custom directories
2015-06-30 15:08:10 +10:00
Víctor Mayoral Vilches
2e7a4aa1e6
HAL_Linux: Implement custom dir. methods
2015-06-30 14:36:42 +10:00
Víctor Mayoral Vilches
5c4ae15deb
HAL_Linux: Make use of GetOptLong
...
Use GetOptLong to process long args, support
custom terrain and log directories and update
_usage().
2015-06-30 14:36:00 +10:00
Víctor Mayoral Vilches
309511dc08
HAL_Linux: UARTDriver, const device_path
...
Class member set to const and set_device_path
accepts a const char* now.
2015-06-30 14:36:00 +10:00
Víctor Mayoral Vilches
790f4ec56c
HAL_Linux: Util fix indentation
2015-06-30 14:35:59 +10:00
Lucas De Marchi
623c5f0713
AP_HAL_Linux: check if I2C device is chardev
2015-06-30 09:10:54 +10:00
Lucas De Marchi
acc571c2c5
AP_HAL_Linux: add function to check if path is chardev
...
Utility function to allow checking if a certain path is a character
device.
2015-06-30 09:10:54 +10:00
Lucas De Marchi
a4c1b0d75f
AP_HAL_Linux: add constructor to find I2C bus reliably
...
The device number in /dev may not be reliable from one boot to another
due to the initialization order of each bus.
For example, in Minnow Board Max, the exposed I2C buses may be i2c-7 and
i2c-8 or i2c-8 and i2c-9 depending if the platform driver in the kernel
is initialized before or after the PCI.
It also may change with different version and configuration of the DT or
UEFI used making another kernel driver to bind to the device. This means that
for Minnow Board Max we need to use something like below to pass to the
constructor:
static const char * const i2c_devpaths[] = {
/* UEFI with lpss set to ACPI */
"/devices/platform/80860F41:05",
/* UEFI with lpss set to PCI */
"/devices/pci0000:00/0000:00:18.6",
NULL
};
The devpath here is the one returned by udev with the following command:
udevadm info -q path /dev/<i2c-device>
In contrary to the device number in /dev/i2c-N, this path in sysfs is
stable across reboots and can only change if there's a change in the
UEFI firmware or the board's device tree.
This patch assumes the currently supported boards don't have this
problem so it's not touching them.
2015-06-30 09:10:54 +10:00
Lucas De Marchi
ec5d0b6c08
AP_HAL_Linux: reorder members and methods and use C++ initializer
2015-06-30 09:10:53 +10:00
Vladislav Zakharov
be4b6033e4
AP_HAL_Linux: Navio RCInput reimplemented.
2015-06-29 16:45:43 +10:00
Vladislav Zakharov
e505eb2cd8
AP_HAL_Linux: Changes in Scheduler: Added defines for delays, RCIN_RERIOD changed
2015-06-29 16:45:42 +10:00
Víctor Mayoral Vilches
ab5f1b3a24
BusTest: Fix compilation error with AP_ADC
2015-06-26 21:59:22 +10:00
mirkix
7c55689aad
AP_HAL_Linux: Fix loading Firmware
2015-06-18 10:13:49 +10:00
Andrew Tridgell
c44ab01be8
AP_HAL: use noreturn attribute on panic
...
should reduce coverity warnings
2015-06-08 21:09:08 +10:00
Andrew Tridgell
dbff6cab43
HAL_Linux: added udp example to help
2015-06-03 21:47:01 +10:00
Andrew Tridgell
dd10cbc976
AP_HAL_Linux: convert example from .pde to .cpp
2015-06-01 17:03:44 +10:00
Andrew Tridgell
7e264b44df
HAL_Linux: fixed functor comparison
2015-05-26 15:14:50 +10:00
Lucas De Marchi
4c97d92982
AP_HAL_Linux: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Andrew Tridgell
0619247992
HAL_Linux: don't advance time in delay() and delay_microseconds()
...
this could cause time to go backwards in Replay. Thanks to Peter for
finding this
2015-05-19 13:17:15 +10:00
Andrew Tridgell
b09fcfc20e
HAL_Linux: cope with systems without I2C_RDRW_IOCTL_MAX_MSGS
...
such as my ubuntu 14.04 laptop :-)
2015-05-05 21:42:46 +10:00
Lucas De Marchi
d640bc8345
AP_HAL_Linux: use kernel's limit of msgs per I2C transaction
...
Instead of hardcoding 8 as the limit for I2C msgs, use whatever the
kernel exported to us. In upstream this is 42 so it means we can group
together 21 addr/data pair instead of only 8.
2015-05-05 09:56:44 +10:00
Andrew Tridgell
179e47c618
HAL_Linux: prevent time from going backwards in Replay
2015-04-20 15:12:51 +10:00
Staroselskii Georgii
dff430e136
AP_HAL_Linux: added UART port for second GPS
2015-04-14 15:59:34 +10:00
Staroselskii Georgii
da6316ed4c
AP_HAL_Linux: fixed TCP client connection in LinuxUARTDriver
2015-04-14 15:59:33 +10:00
Staroselskii Georgii
716fd56c62
AP_HAL_Linux: added support for dynamic speed configration in LinuxSPIUARTDriver
2015-04-14 10:45:49 +10:00
Staroselskii Georgii
baf2b4da4e
AP_HAL_Linux: renamed AnalogIn_Navio
2015-04-14 10:16:26 +10:00
Staroselskii Georgii
930aeaf556
AP_HAL_Linux: add RPi version runtime detection
2015-04-14 10:16:25 +10:00
Mikhail Avkhimenia
c11304ba7a
AP_HAL_Linux: change GPIO register address for Raspberry Pi 2
2015-04-14 10:16:25 +10:00
Staroselskii Georgii
641fa05028
AP_HAL_Linux: added buffering in RCOutput_Navio
2015-04-14 10:16:25 +10:00
Staroselskii Georgii
e6c2977da2
AP_HAL_Linux: fixed style in RCOutput_Navio
2015-04-14 10:16:25 +10:00
Staroselskii Georgii
024825f95a
AP_HAL_Linux: fixed PCA9685 initialization for RCOutput_Navio
2015-04-14 10:16:25 +10:00
Staroselskii Georgii
2a137b6ea9
AP_HAL_Linux: fixed RCInput initialization on NavIO
2015-04-14 10:16:24 +10:00
Andrew Tridgell
7f7d92913e
HAL_Linux: allow running as non-root
...
this is needed for Replay, plus is very useful for debugging
2015-04-14 09:25:35 +10:00
Lucas De Marchi
f049c8e4c5
AP_HAL_Linux: remove needless call to mlockall()
...
All threads share the same address space and have the same pages locked
into memory so it's not necessary to call mlockall() for each of them.
Grepping /proc/<tid>/status gives the same VmLck for all of them, even
when only the main thread locks the memory:
# for i in `seq 477 482`; do \
name=$(cat /proc/$i/comm); \
vm=$(cat /proc/$i/status |grep VmLck); \
echo -e "$name\t$vm"; \
done
ArduCopter.elf VmLck: 57868 kB
sched-timer VmLck: 57868 kB
sched-uart VmLck: 57868 kB
sched-rcin VmLck: 57868 kB
sched-tonealarm VmLck: 57868 kB
sched-io VmLck: 57868 kB
2015-04-14 09:17:21 +10:00
Lucas De Marchi
b7355dc62b
AP_HAL_Linux: set thread name for ease debug
...
Use pthread_setname_np() to set thread name so it's easier to debug
what't going on with each of them. This is the example output of the
relevant par of "ps -Leo class,rtprio,wchan,comm":
FF 12 futex_ ArduCopter.elf
FF 15 usleep sched-timer
FF 14 hrtime sched-uart
FF 13 poll_s sched-rcin
FF 11 hrtime sched-tonealarm
FF 10 hrtime sched-io
2015-04-14 09:17:21 +10:00
Lucas De Marchi
2c48434110
AP_HAL_Linux: use a table to initialize threads
...
Refactor function calls into a table and pass in the name so it can be
used in error message.
2015-04-14 09:17:21 +10:00
Lucas De Marchi
e3d78b8960
AP_HAL_Linux: fix passing callback to member function
...
It's undefined behavior to pass the callback to pthread to a class
member like we were doing. Refactor the code so the callbacks are static
members.
This fixes the following warnings:
libraries/AP_HAL_Linux/Scheduler.cpp: In member function 'virtual void Linux::LinuxScheduler::init(void*)':
/home/lucas/p/dronecode/ardupilot/libraries/AP_HAL_Linux/Scheduler.cpp:61:76: warning: converting from 'void* (Linux::LinuxScheduler::*)()' to 'Linux::LinuxScheduler::pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
(pthread_startroutine_t)&Linux::LinuxScheduler::_timer_thread);
^
libraries/AP_HAL_Linux/Scheduler.cpp:65:76: warning: converting from 'void* (Linux::LinuxScheduler::*)()' to 'Linux::LinuxScheduler::pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
(pthread_startroutine_t)&Linux::LinuxScheduler::_uart_thread);
^
libraries/AP_HAL_Linux/Scheduler.cpp:69:76: warning: converting from 'void* (Linux::LinuxScheduler::*)()' to 'Linux::LinuxScheduler::pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
(pthread_startroutine_t)&Linux::LinuxScheduler::_rcin_thread);
^
libraries/AP_HAL_Linux/Scheduler.cpp:73:76: warning: converting from 'void* (Linux::LinuxScheduler::*)()' to 'Linux::LinuxScheduler::pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
(pthread_startroutine_t)&Linux::LinuxScheduler::_tonealarm_thread);
^
libraries/AP_HAL_Linux/Scheduler.cpp:77:76: warning: converting from 'void* (Linux::LinuxScheduler::*)()' to 'Linux::LinuxScheduler::pthread_startroutine_t {aka void* (*)(void*)}' [-Wpmf-conversions]
(pthread_startroutine_t)&Linux::LinuxScheduler::_io_thread);
2015-04-14 09:17:20 +10:00
Lucas De Marchi
62c2f737d5
AP_HAL_Linux: fix setting RT priorities
...
LinuxScheduler::init() was not really working as it should. This was the
result of "ps -Leo class,rtprio,wchan,comm | grep ArduCopter":
FF 12 futex_ ArduCopter.elf
FF 12 usleep ArduCopter.elf
FF 12 hrtime ArduCopter.elf
FF 12 poll_s ArduCopter.elf
FF 12 hrtime ArduCopter.elf
FF 12 hrtime ArduCopter.elf
As can be seen all the threads run with the same priority, the one of the main
thread. There were basically 2 mistakes:
1) pthread_attr_setschedpolicy() needs to be called before
pthread_attr_setschedparam(). Otherwise the latter will just return
an error and not set the priority
2) pthread_create() defaults to ignore the priority and inherit the
it from the parent thread. pthread_attr_setinheritsched() needs to
be called to change the behavior to PTHREAD_EXPLICIT_SCHED. See
pthread_attr_setinheritsched(3) for an example program to test the
behaviors.
Also, it's undefined behavior to call pthread_attr_init() several times on the
same pthread_attr_t. Although we could reutilize the same attribute without
calling pthread_attr_init() again, lets refactor the code a little bit, so all
the pthread calls are in a single place. Then also call pthread_attr_destroy()
when we are done.
2015-04-14 09:17:20 +10:00
Lucas De Marchi
29b667efdf
AP_HAL_Linux: remove useless mlock of stack
...
In Linux the default stack size is always greater than 32k, either 2MB
or 8MB depending on the architecture. There's no point in creating a
function to lock 32k.
2015-04-14 09:17:20 +10:00
mirkix
445f358839
AP_HAL_Linux: Fix compiler warning of MAX_PWMS redefinition (previously defined)
2015-04-06 15:34:50 -07:00
mirkix
d4d42599b0
AP_HAL_Linux: Add RcInput and RcOutput with only one PRU when using a BBB. BBBMINI use the RC AIO PRU firmware already
2015-03-16 09:33:54 +11:00
mirkix
a6b018eab9
AP_HAL_Linux: BBBMINI use kernel CS now
2015-03-16 09:15:06 +11:00
Staroselskii Georgii
75cd41a7c1
AP_HAL_Linux: added NavioAnalogIn
2015-02-12 12:57:45 +11:00
Staroselskii Georgii
195aa5fc6b
AP_HAL_Linux: take the semaphore in SPIUARTDriver for shorter periods of time
2015-02-12 12:52:56 +11:00
Staroselskii Georgii
64da7f0360
AP_HAL_Linux: fix macro that defines number of I/O callbacks
2015-02-12 12:52:56 +11:00
Staroselskii Georgii
5b21bd2f1d
AP_HAL_Linux: make Ublox transactions shorter
2015-02-12 12:52:56 +11:00
Staroselskii Georgii
4034004194
AP_HAL_Linux: switch NavIO to kernel CS handling
2015-02-12 12:52:56 +11:00
Andrew Tridgell
33a3254d8b
HAL_Linux: accept a smaller sync pulse width
2015-02-08 21:47:28 +11:00
Andrew Tridgell
61be4ce2d2
HAL_Linux: fixed #if for linux builds
2015-01-22 15:58:20 +11:00
Víctor Mayoral Vilches
2b74d018fe
HAL_Linux: Adjust set_system_clock
...
Do nothing for HAL_BOARD_SUBTYPE_NONE.
2015-01-22 15:43:16 +11:00
Víctor Mayoral Vilches
974f243c7e
HAL_Linux: Add set_system_clock
2015-01-22 15:43:16 +11:00
mirkix
c58a022111
AP_HAL_Linux: add support for BBBMINI, simple ArduPilot DIY Cape for the BeagleBone Black
2015-01-12 21:36:40 +13:00
Mikhail Avkhimenia
954b0795d4
HAL_Linux: Enable PCA9685 output after its setup
2015-01-09 06:38:21 +11:00
Andrew Tridgell
4da0a24887
HAL_Linux: use common RingBuffer.h
2015-01-07 08:41:14 +11:00
Staroselskii Georgii
e4a21f291d
AP_HAL_Linux: added LinuxSPIUARTDriver that can handle SPI-driven Ublox
2015-01-07 08:41:12 +11:00
Staroselskii Georgii
2b589d4604
AP_HAL_Linux: enable output for PCA9685 PWM in NavioRCOuput
2015-01-07 08:41:12 +11:00
Andrew Tridgell
193bda068c
HAL_Linux: run IO processes when we do a stop_clock()
...
this has the effect of allowing logging to progress in Replay where we
are running at much more than realtime speeds
2014-12-08 11:24:39 +11:00
John Williams
d0e467aea0
AP_HAL_Linux: Bypass manual CS assertion for SPI_CS_KERNEL mode
...
Missed from initial patch series
Signed-off-by: John Williams <john@whelanwilliams.net>
2014-11-27 15:57:12 +11:00
Mikhail Avkhimenia
955753f3f0
HAL_Linux: Optimize bandwidth for RCOutput_Navio
...
40% less bytes in I2C transactions for PCA9685.
2014-11-26 11:14:44 +11:00
Mikhail Avkhimenia
50459bdca0
HAL_Linux: Enable external clk for RCOutput_Navio
...
That should fix PWM value drifts.
2014-11-26 11:14:44 +11:00
Andrew Tridgell
22cb1c8525
HAL_Linux: tidy up SPI debugging a bit
2014-11-26 10:16:39 +11:00
John Williams
0fe3959d7e
AP_HAL_Linux: Add support for in-kernel SPI CS handling
...
Add support for /dev/spidev<bus>.<cs> in-kernel SPI CS handling, and convert
existing SPI devices over.
* Add a new member _subdev to the LinuxSPIDeviceDriver class, and initialiser
in LinuxSPIDevice constructor. Use subdev 0 for GPIO-managed CS
* Extend the _cs_pin to signed 16 bits and define SPI_CS_KERNEL (-1) for
kernel-managed CS
* Move to per-device file descriptors (required for in-kernel CS)
* Extend spidev filenames to include bus and subdevice numbers, possibly
longer than 1 digit each
* Allow support for platforms enumerating /dev/spidevNNN from non-zero bases
* Convert existing users over to the new API
Signed-off-by: John Williams <john@whelanwilliams.net>
2014-11-26 09:55:09 +11:00
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
Siddharth Bharat Purohit
0422695e5e
HAL_Linux: Correct error inside read method in RCOutput
2014-07-14 09:31:05 +10:00
bugobliterator
092bda9c37
HAL_Linux: Replace PRU1 firmware with a new one to support new way of controllong PRU PWM
2014-07-14 09:31:05 +10:00
bugobliterator
63560e8122
HAL_Linux: change to directly accessing shared_mem of pru in RCOutput
2014-07-14 09:30:54 +10:00
Siddharth Bharat Purohit
9999e77a74
HAL_Linux: add close(_fd) to some functions in RCOutput
2014-07-14 09:30:42 +10:00
Víctor Mayoral Vilches
95e0803880
HAL_Linux: Remove panic when invalid pin in GPIO
...
When a invalid pin is passed as a parameter
the methods return without performing anything
insted of raising a panic.
2014-07-14 09:30:25 +10:00
Víctor Mayoral Vilches
245618e298
HAL_Linux: Improve error handling SPIDriver
2014-07-14 09:30:16 +10:00
Víctor Mayoral Vilches
d330cbecb3
HAL_Linux: Make the CS variables more readable in SPIDriver
2014-07-14 09:30:06 +10:00
Víctor Mayoral Vilches
665bf4a247
HAL_Linux: BUS_SPEED selected individually in SPIDriver
2014-07-14 09:29:53 +10:00
Siddharth Bharat Purohit
d2b5a1cfac
HAL_Linux: add HAL_ prefix to GPIO_INPUT
2014-07-14 09:29:45 +10:00
bugobliterator
1f1af0b0ea
HAL_Linux: make GPIO code compact and readable
...
add hal instance to generate scheduler
change gpio/export write method
add gpio struct to LinuxDigitalSource class
change individual gpio banks to one gpio_bank array
2014-07-14 09:29:45 +10:00
Víctor Mayoral Vilches
651cb58ebc
HAL_Linux: Add CS capabilities to the SPI driver.
2014-07-14 09:29:45 +10:00
Víctor Mayoral Vilches
763c075497
HAL_Linux: spidev1.0 to SPI0 and spidev2.0 to SPI1
2014-07-14 09:29:28 +10:00
bugobliterator
fd0685cc01
HAL_Linux: change to mem access method from sysfs access method
...
This step is taken to reduce the time for gpio access substantially
2014-07-14 09:29:18 +10:00
bugobliterator
96bbe17bd3
HAL_Linux: add support for LinuxDigitalSource in AP_HAL_Linux
2014-07-14 09:29:18 +10:00
Víctor Mayoral Vilches
7652d47e6e
HAL_Linux: Add GPIO pinmux mappings
...
This will allow to request channels using the
name of the BBB headers (e.g. P8_12, P9_42).
2014-07-14 09:29:08 +10:00
bugobliterator
18d7438240
HAL_Linux: increase size of sysfs_path variables inside LinuxRCOutput's methods
...
to avoid stack smashing error
2014-07-14 09:29:08 +10:00
bugobliterator
85d10e2ce3
HAL_Linux: add export gpio during direction set if not exported during initialisation
2014-07-14 09:29:08 +10:00
bugobliterator
a7ead42f52
HAL_Linux: added initial gpio library
2014-07-14 09:29:08 +10:00
Víctor Mayoral Vilches
c4b6026d53
HAL_Linux: include readRegistersMultiple in I2CDriver
...
AP_HAL_Linux implemments this new method.
2014-07-14 09:28:42 +10:00
Víctor Mayoral Vilches
ea7dcc188b
AP_HAL_Linux: Correct SPIDriver devs
2014-07-14 09:10:23 +10:00
Víctor Mayoral Vilches
8af1b6faa7
AP_HAL_Linux: Add support for SPIDevice_LSM9DS0
...
The LSM9DS0 SPI device is connected to
SPI0, thereby SPIDriver class should return the
corresponding device.
2014-07-14 09:10:23 +10:00
bugobliterator
79fb10d9e8
HAL_Linux: correct AP_HAL_Linux::RCOutput::enable_ch method
...
change the mode of file open which was set as RDONLY mistakenly
2014-07-14 09:10:23 +10:00
bugobliterator
eb35c94a43
HAL_Linux: add rcout->init method to HAL_Linux_Class::init
2014-07-14 09:10:23 +10:00
bugobliterator
e9f5e0d6cc
HAL_Linux: add rcout->init method to HAL_Linux_Class::init method
2014-07-14 09:10:23 +10:00
bugobliterator
34ba77e048
HAL_Linux: Correct faulty RCOutput driver
...
solve compiler not looking ahead of RCOutput class for read and write methods
2014-07-14 09:10:23 +10:00
bugobliterator
26cd4ad237
HAL_Linux: Correct indentation
2014-07-14 09:10:23 +10:00
Siddharth Bharat Purohit
69a4b7d632
HAL_Linux: Correct Indentation issue
2014-07-14 09:10:23 +10:00
Siddharth Bharat Purohit
731d80e6c5
HAL_Linux: Add Steps to Manually test pwm channels
2014-07-14 09:10:13 +10:00
Siddharth Bharat Purohit
b53b3f415a
HAL_Linux: Create Readme.md adding details on manually testing pru pwm
2014-07-14 09:10:03 +10:00
bugobliterator
a7de5e3d0f
HAL_Linux: Add initial RCOutput driver
...
The functions in RCOutput.cpp are defined to access PWM over PRU sysfs
device from userspace using open, read, write and close methods.
2014-07-14 09:09:53 +10:00
Víctor Mayoral Vilches
3354fa9fc8
AP_HAL_Linux: Add support for SPIDevice_MS5611
2014-07-14 09:02:47 +10:00
Víctor Mayoral Vilches
9f5b4ffca4
AP_HAL_Linux_Class: Correct deadlock, and infinite loop in setup()
...
(credit to Mitch Miers <mmiers@mmiers.com>):
setup() is attempting to initialize the hardware, and while doing so
is attempting to output some text via the console (and maybe mavlink
data). The problem is, the output isn't going to complete once a
write buffer is full, because LinuxUARTDriver::_timer_tick() doesn't
perform work until _initialized is true. So, what happens is,
setup() (and subroutines) call LinuxUARTDriver::_write(uint8_t c),
which loops waiting for buffer space to become available (once the
write buffer is full). The buffer never gets space, because the
UART thread is waiting for initialization to complete before it
will write out data and drain the buffer, but that doesn't happen
until setup() returns (see AP_HAL_Linux_main.h).
Refer to https://groups.google.com/forum/#!topic/beaglepilot/dQlxse11JNI
2014-07-14 09:02:47 +10:00
Víctor Mayoral Vilches
27ebf790e2
AP_HAL_Linux: Add support for SPIDevice_MPU9250
...
The Invensense MPU9250 SPI device is connected to
SPI1, thereby SPIDriver class should return the
corresponding device.
2014-07-14 09:02:46 +10:00
Víctor Mayoral Vilches
815c2df2d0
AP_HAL_Linux: SPIDriver, add MPU6000 support
2014-07-14 08:52:51 +10:00
Andrew Tridgell
74ee70d463
HAL_Linux: updates for ERLE board type
2014-07-14 08:52:27 +10:00
Andrew Tridgell
b99ae63cbb
HAL_Linux: more generic fix for scheduler issues in example sketches
...
this ensures drivers can run
2014-05-16 22:40:38 +10:00
Andrew Tridgell
6eee2421cc
AP_HAL: removed RCInput valid_channels() and added new_input() and num_channels()
...
the valid_channels() method was inconsistently implemented between
boards, and served two quite different purposes. It is clearer as two
functions
2014-03-25 14:39:41 +11:00
Andrew Tridgell
3fa2207a2d
AP_HAL: allow for microsecond resolution in scheduler->stop_clock()
...
this makes 400Hz in the replay code possible
2014-02-26 19:33:39 +11:00
Andrew Tridgell
bf2dd141e9
HAL_PX4: support uartE for 2nd GPS
2014-02-26 08:18:11 +11:00
Andrew Tridgell
a273951f70
HAL_Linux: added missing Util.cpp
2014-02-24 11:59:24 +11:00
Andrew Tridgell
735c6449a1
AP_HAL: added support for commandline arguments
...
useful for log replay, specifying log file
2014-02-23 08:15:39 +11:00
Andrew Tridgell
78ff078988
HAL_Linux: fixed stopped clock delay
2014-02-15 05:48:18 +11:00
Andrew Tridgell
117b77460e
HAL_Linux: added stop_clock hack!
2014-02-15 05:28:08 +11:00
Andrew Tridgell
1849db7074
AP_HAL: added board_voltage AnalogIn method
...
this makes it easier to get the board voltage from any library,
without having to allocate another analog channel object
2014-02-14 21:25:38 +11:00
Andrew Tridgell
87cc95dd7f
AP_HAL: removed unused enable_mask and disable_mask functions
2014-01-16 17:16:17 +11:00
Andrew Tridgell
a8946a5f31
HAL_Linux: fixed build
2013-12-31 10:28:38 +11:00
Andrew Tridgell
ea649e036b
AP_HAL: added HAL_CPU_CLASS define for selecting algorithms
...
this will make it easier to select the appropiate level of algorithm
for a CPU
2013-12-31 10:28:37 +11:00
Andrew Tridgell
ecbfdfba6c
HAL_Linux: implement time_shift() API
2013-12-30 14:35:12 +11:00
Andrew Tridgell
c000a08d6f
HAL_LINUX: added uartD
2013-11-23 19:29:22 +11:00
Andrew Tridgell
5af51140a9
HAL_Linux: fixed scheduler initialisation bug in Linux HAL as well
2013-10-26 18:25:27 +11:00
Andrew Tridgell
0d682e74c1
HAL_Linux: run threads a bit more slowly
...
this was just wasting cycles
2013-10-10 07:21:38 +11:00
Andrew Tridgell
8f79a03c25
HAL_Linux: use larger UART buffers
...
might as well use the memory
2013-10-10 07:21:38 +11:00
Andrew Tridgell
28b4ae1c3a
HAL_Linux: improved latency of timed semaphores
2013-10-08 11:50:54 +11:00
Andrew Tridgell
a216e1d239
HAL_Linux: don't prevent write while timer is busy
...
the timer can block on I2C writes, which causes the main loop to run
2013-10-08 11:50:53 +11:00
Andrew Tridgell
91511e6503
HAL_Linux: better realtime setup
...
lock all memory and pre-fault the stack in all threads
2013-10-08 11:50:53 +11:00
Andrew Tridgell
07b8f45770
HAL_Linux: use CLOCK_MONOTONIC_RAW to ensure clock never goes backwards
...
this avoids ntp mucking with APM timing
2013-10-07 08:41:52 +11:00
Andrew Tridgell
b30f652cec
HAL_Linux: removed Console driver
2013-10-05 18:32:57 +10:00
Andrew Tridgell
1440c8cebd
HAL_Linux: implement a dummy console buffered write()
2013-10-03 12:21:08 +10:00
Andrew Tridgell
c9fea2c706
HAL_Linux: fixed scheduling priorities
...
need to be between 1 and 99
2013-10-01 13:05:04 +10:00
Andrew Tridgell
bbac3265b2
HAL_Linux: default to hal.console on stdout
2013-10-01 12:49:58 +10:00
Andrew Tridgell
bcc9cdbf43
HAL_Linux: make I2CDriver more portable
...
this allows it to build on the Beaglebone
2013-10-01 12:37:13 +10:00
Andrew Tridgell
51c19331a6
HAL_Linux: fixed build
2013-10-01 12:11:48 +10:00
Andrew Tridgell
f2ebb2ca87
HAL_Linux: updates for AP_HAL::MemberProc
2013-09-30 20:56:15 +10:00
Andrew Tridgell
53f66b23f4
AP_HAL_Linux: fixed APM2 build
2013-09-29 14:24:55 +10:00
Andrew Tridgell
1698e1800c
HAL_Linux: timer calls may block on HAL_Linux
...
timer calls can do SPI transfers, which can block
2013-09-29 10:48:22 +10:00
Andrew Tridgell
5102f1511b
HAL_Linux: fixed callbacks from delay()
2013-09-29 10:32:51 +10:00
Andrew Tridgell
a1ef1a9318
HAL_Linux: tweak the scheduling priorities
2013-09-29 12:04:37 +10:00
Andrew Tridgell
d3fe625742
HAL_Linux: make the SPI driver much more efficient
...
use a single transaction for multiple bytes. This makes the APM1
Oilpan driver generate only 2 interrupts per sensor read
2013-09-29 12:04:36 +10:00
Andrew Tridgell
1e786b3e20
HAL_Linux: added buffering on the UARTs
2013-09-29 12:04:36 +10:00
Andrew Tridgell
605e6c3cf7
HAL_Linux: use pthread mutexes for semaphores
2013-09-29 07:49:30 +10:00
Andrew Tridgell
884af71ef6
HAL_Linux: added SPI support
2013-09-29 00:57:13 +10:00
Andrew Tridgell
f03315237a
HAL_Linux: fixed timer scheduler
2013-09-28 21:24:03 +10:00
Andrew Tridgell
cca59ce3c9
HAL_Linux: update for new scheduler API
2013-09-28 21:24:02 +10:00
Andrew Tridgell
bcf4f48e65
HAL_Linux: switched to pthread based scheduling
2013-09-28 21:24:02 +10:00
Andrew Tridgell
58a31318ee
AP_HAL_Linux: initial I2C driver implementation
...
this works sufficiently for the HMC5883
2013-09-28 21:24:02 +10:00
Andrew Tridgell
4ba044c441
AP_HAL_Linux: initial Linux AP_HAL
2013-09-28 21:24:01 +10:00