Commit Graph

942 Commits

Author SHA1 Message Date
Andrew Tridgell fd3bf0f639 HAL_Linux: added --defaults option to Linux HAL
useful for initial parameters
2021-04-13 09:36:52 +10:00
Jacob Walser 5537f5564c AP_HAL: update imu hardware for navigator r3 2021-04-07 15:08:18 -04:00
Jacob Walser 3a433cd71e AP_HAL: update pwm hardware for navigator r3 2021-04-07 15:08:18 -04:00
Jacob Walser 421638453f AP_HAL: update Notify LED hardware for navigator r3 2021-04-07 15:08:18 -04:00
MHefny 6bbfdbaf6a AP_HAL_LINUX:fix missing setting physical address 2021-04-07 10:36:31 -07:00
MHefny 30382740d2 AP_HAL_Linux:fix code style 2021-04-07 10:36:31 -07:00
MHefny 8767112a77 AP_HAL_LINUX:remove duplicates and fix _version 2021-04-07 10:36:31 -07:00
MHefny c57764e9b4 linux: RCInput_RPI RPI-4 Support 2021-04-07 10:36:31 -07:00
Peter Barker d0b3b926c0 AP_HAL_Linux: split out a calculate_thread_priority method 2021-03-30 10:49:06 +11:00
Iampete1 4315a69b9d AP_HAL_Linux: add semaphore to AnalogIn::channel to make it thread safe 2021-03-30 10:44:43 +11:00
Andrew Tridgell 0601259d20 AP_HAL_Linux: removed assert calls
these waste flash space and do not do us any good
2021-03-25 14:03:40 +11:00
Andrew Tridgell 9db0862d61 HAL_Linux: use nullptr for vnav rcinput
this makes it clearer what is going on
2021-01-20 13:49:26 +11:00
Andrew Tridgell 009cb8f62b HAL_Linux: setup RCIN for vnav 2021-01-20 10:06:45 +11:00
Andrew Tridgell 16753a51f4 HAL_Linux: use ExpandingString 2021-01-05 10:52:00 +11:00
Andy Piper 74633e55cc AP_HAL_Linux: rename system_initialized() and add is_system_initialized() 2020-12-30 18:16:59 +11:00
Andrew Tridgell d6c5fc36d8 HAL_Linux: only init serial(0)
we should not pre-init all uarts, it wastes memory if unused
2020-12-15 10:32:46 +11:00
Andrew Tridgell 348dfeff6e HAL_Linux: use a loop for serial tick 2020-12-15 10:32:46 +11:00
Andrew Tridgell db76eebd85 AP_HAL_Linux: convert to using hal.serial() instead of hal.uartX 2020-12-15 10:32:46 +11:00
Andrew Tridgell 78711e05b7 AP_HAL_Linux: support uartI, allowing a total of 9 uarts
this allows for OTG2 on the MatekH743 board, which makes SLCAN much
easier
2020-11-30 14:09:31 +11:00
Jacob Walser 35c2d13e2f HAL_Linux_Class: specify per board external clock frequency for RCOutput_PCA9685 drivers 2020-11-21 00:25:19 -08:00
Jacob Walser e64d9816ce RCOutput_PCA9685: allow different external clock frequencies
The PCA9685 may use an external clock 0~50MHz
Specify the external clock frequency in constructor arguments for each board HAL
2020-11-21 00:25:19 -08:00
bugobliterator d0cf3365ee AP_HAL_Linux: handle uninitialised soCAN file descriptor 2020-11-11 19:52:37 +11:00
Vinicius Juvinski 36204e5dae AP_HAL_Linux: Fix PWM FS to follow the Kernel's 4.X instead 3.9
Checking the ToneAlarm under AP_HAL_Linux(BBBMINI is using that)  I realize was using old kernek
3.9 device tree, so I updated to 4.X - this will affect only BBBMINI and
Blue boards.
2020-10-26 22:55:03 -07:00
bugobliterator ba576247f0 AP_HAL_Linux: configure filter only if in filtered mode 2020-10-08 09:31:35 +11:00
Peter Barker 4ebde78bbf AP_HAL_Linux: throw warning if we ever stop-clock backwards
Also don't compile in the stop_clock symbol to make it clear changes in
this method won't affect vehicles
2020-09-15 10:02:36 +10:00
Patrick José Pereira 5746943f50 AP_HAL_Linux: Use pthread_self in place of _ctx
Avoid aproblem where _ctx is initialized in a race condition.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-08-25 07:15:00 -07:00
Patrick José Pereira 248daa85a1 AP_HAL_Linux: Scheduler: Use pthread_* over sched_* calls for setschedparam
musl implements `sched_*` following the posix standard,
where `sched_setschedule` is used for process scheduling.
Linux implementation defines `sched_*` functions based in
the thread scheduler and not with the process.

Using `pthread_*` should be used to follow such standard.

Ref: https://pubs.opengroup.org/onlinepubs/9699919799/

From: https://www.openwall.com/lists/musl/2016/03/01/5

> ... Linux does not provide a way
> to set scheduling parameters for a _process_, only for threads. The
> sched_setscheduler syscall is documented as taking a pid but actually
> takes a thread id and only operates on that thread. glibc just ignores
> this and provides sched_* functions that do the wrong thing.

This can be fixed by using `pthread_setschedparam` and requesting the current
thread id via `pthread_self`.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-08-25 07:15:00 -07:00
Siddharth Purohit 0e923fe061 HAL_Linux: add methods for native clock info methods 2020-08-19 17:31:09 +10:00
Siddharth Purohit 7de444ec53 HAL_Linux: add uavcan agnostic CANSocket Iface Driver 2020-08-19 17:31:09 +10:00
Isaac Ault e74acba4ec AP_HAL_Linux: Allow for parameters to be passed with -G, -H
All other work has been previously implemented, however when fetching
params these values were ignored.
2020-08-10 10:03:12 +10:00
mhefny e137698a4a AP_HAL_Linux: Fix RCInput_RPI Segmentation Fault 2020-08-08 10:01:57 -07:00
Andrew Tridgell c5a60c31a7 HAL_Linux: fixed build warnings in RC input methods 2020-07-07 10:23:00 +10:00
Peter Barker f3bee7fa03 AP_HAL_Linux: correct clearing of UART drivers 2020-06-03 17:00:44 +10:00
Peter Barker 1ebfc79eb0 AP_HAL_Linux: enable console for examples
Turns out we *do* need this for examples.  We're back to stuffing up
terminals where examples have been run, but that can be addressed later.
2020-05-28 13:49:47 +10:00
Peter Barker 9a9743e6ba AP_HAL_Linux: add discard_input method on UARTDriver 2020-05-26 09:20:32 +10:00
Lucas De Marchi 29d8586ea4 AP_HAL_Linux: RCInput_UDP: accept up to 16 channels
This allows more channels to be passed to RCInput_UDP protocol while
also allowing less than 8 channels - this is similar to the approach
used by SITL in which the packet size is used to figure out the number
of channels.
2020-05-03 00:07:52 -07:00
Patrick José Pereira 3268c234d8 AP_HAL_Linux: Add PAGE_SIZE in RCInput_RPI
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-04-29 02:12:58 -07:00
Patrick José Pereira 32c0e37512 AP_HAL_Linux: Organize and document GPIO_RPI class
- Move macros to functions and improve explanation about logic behind it
- Break code in functions to make it more readable
- Add doxygen comments about functions and how they work in a comprehensive manner
- Improve general code maintainability

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-04-29 02:12:58 -07:00
Patrick José Pereira c83ce93165 AP_HAL_Linux: Add missing wscript for GPIOTest
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-04-17 15:59:25 +10:00
Peter Barker a3e2e156e7 AP_HAL_Linux: do not create ConsoleDevices for Replay or examples
Uusally problems evidence themsleves with stdin not working correctly -
for example, "git add -p" skipping through all queries as if the
user was just pressing enter.
2020-03-31 11:22:21 +11:00
Patrick José Pereira e65cc35fb0 AP_HAL_Linux: Use template to generate raspberry pins
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-03-15 22:35:50 -07:00
Peter Barker f8058bcf70 AP_HAL_Linux: avoid segfaults during early panics
singletons failing to be singleton can cause the segfaults.  This is
more a tidiness thing - but better not to have cascading failures.
2020-03-10 10:45:09 +11:00
Peter Barker c917cd4dbb AP_HAL_Linux: make a static-const hal references references to external symbol 2020-03-03 10:12:14 +11:00
Andy Piper 127a0e9b41 AP_HAL_Linux: add in empty dsp driver 2020-02-22 11:15:37 +11:00
Andrew Tridgell cbbf61af93 HAL_Linux: fixed bitmask error on storage erase 2020-01-31 11:06:29 +11:00
Andrew Tridgell a153799e26 HAL_Linux: support inverted 115200 protocols
this allows for FrSky FPort input
2020-01-19 21:10:00 +11:00
Andrew Tridgell 4b9442dad7 AP_HAL_Linux: make all semaphores recursive
the cost is very similar and this prevents an easy coding error which
can occur on less used code paths
2020-01-19 20:19:30 +11:00
Andrew Tridgell 67bd4ed396 AP_HAL_Linux: use take_blocking instead of HAL_SEMAPHORE_BLOCK_FOREVER
this makes for cleaner and smaller code as the failure case is not
needed
2020-01-19 20:19:30 +11:00
Patrick José Pereira 0c0d97debe AP_HAL_Linux: Add storage-directory argument in usage
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-01-18 17:03:20 +11:00
Patrick José Pereira 6518d6dc4d AP_HAL_LINUX: Add support for Raspberry Pi 4
The Raspberry Pi 4 uses a new BCM cpu, the BCM2711 with
a peripheral base address of 0xFE000000

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-01-16 08:03:34 +11:00