Commit Graph

1039 Commits

Author SHA1 Message Date
bugobliterator ee310433e5 AP_HAL_Linux: add option to use vitual CAN in linux 2023-03-29 17:16:39 +11:00
Peter Barker a10f5dbd0a AP_HAL_Linux: add and use a "bool read(c)" method to AP_HAL
this is much less likely to not work vs the int16_t equivalent
2023-03-22 17:59:11 +11:00
Richard Allen 90cbb6ad26 AP_HAL_Linux: Update GPIO and RCInput for pi version change
Update version numbers according to earlier change.

Fixes: 53c1c235b8
2023-02-22 21:10:04 -08:00
Richard Allen 693068e68a AP_HAL_Linux: more rpi initialization checks
Check more mmap() call sites for failure and exit.
Also exit when starting on an unknown board.
2023-02-22 21:10:04 -08:00
Andrew Tridgell deb86be1da AP_HAL_Linux: added old_size to heap_realloc 2023-01-16 09:19:16 +11:00
Andrew Tridgell 03f4ab515d AP_HAL_Linux: check for alloc failure of ObjectBuffer 2023-01-08 15:11:32 +11:00
Mohammad Hefny feece150c6 AP_HAL_Linux: Raspberry 64OS Address fix 2022-12-27 10:03:41 +11:00
Willian Galvani 5ae3f96cbe AP_HAL_Linux: add LEAK probe pin to Navigator gpio whitelist 2022-11-08 09:46:50 -03:00
Willian Galvani c607c38cbf AP_HAL_Linux: add missing header to RCInput_RCProtocol.cpp
This fixes muslhf linux build
2022-09-28 18:38:33 -03:00
Willian Galvani 4558742e39 HAL_Linux: add RC in driver for Navigator 2022-09-28 18:38:33 -03:00
Neil Bertram 0326d5eeca AP_HAL_Linux: Use Linux-specific TCSETS2 ioctl to enable "non-standard" UART baudrates 2022-09-26 22:12:21 -03:00
Yuri 80079b2ce7 AP_HAL_Linux: increase short board names to 23 chars 2022-09-21 17:56:42 +10:00
Willian Galvani 5ed2785dfa AP_HAL_Linux: create GPIO_Navigator 2022-09-06 09:34:07 +10:00
Willian Galvani 710cbacef7 RCOutput_PC9685: refactor write/write_gpio 2022-09-06 09:34:07 +10:00
Willian Galvani 603bc5ecce RCOutput_PCA9685: implement gpio methods 2022-09-06 09:34:07 +10:00
Andrew Tridgell f530761174 AP_HAL_Linux: more changes for 32 bit servo mask 2022-05-22 12:07:37 +10:00
Peter Barker c456172821 AP_HAL_Linux: tidy includes 2022-05-03 09:14:58 +10:00
Iampete1 c58404beac AP_HAL_Linux: allow stop_clock in examples 2022-04-26 10:26:29 +10:00
HefnySco 53c1c235b8 AP_HAL:RPI read cpu by revision 2022-03-24 00:51:27 -07:00
Andrew Tridgell b6f78ede2e HAL_Linux: support mavcan 2022-02-12 16:36:05 +11:00
Willian Galvani 403ea405dd AP_Hal_Linux: create defaults.parm for Navigator 2022-02-01 17:35:26 +11:00
Willian Galvani b5de26c1f2 AP_Hal_Linux: PCA9685: do not shutdown
Shutting down causes the pulses to be cut short, often causing
ESCs to interpret this pulse
2022-01-18 11:06:35 +11:00
HefnySco b80393b2cd AP_HAL_Linux: supporting RPI-Zero 2 W 2022-01-14 00:32:51 -08:00
HefnySco 88f4eb6017 AP_HAL_Linux: RPI-CM4 detection 2022-01-10 12:21:09 -08:00
Willian Galvani 1dad7b2d56 HAL_Linux: update SPI speeds for Navigator
As @jaxxzer found out, if SCL goes under 1MHz, the MMC sometimes
glitches out, freezing.
2022-01-03 15:05:47 -03:00
Jaaaky 08d44815f6 AP_HAL_Linux: Fix multi #include's 2021-12-21 10:38:46 +11:00
Peter Barker d8e4669e07 AP_HAL_Linux: tidy set/get of hw RTC 2021-12-06 12:58:43 +11:00
Andrew Tridgell 018ac68061 AP_HAL_Linux: support up to 9 UARTs 2021-11-22 22:48:59 +11:00
Patrick José Pereira 6ac7c2dbea AP_HAL_Linux: Update SPIDevice for Navigator R4
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-11-10 18:11:34 -03:00
bugobliterator f57f106c7f AP_HAL_Linux: add get_storage_ptr method 2021-11-10 17:21:35 +11:00
courk b1bf22b53c GPIO_BBB: fix partially working GPIO init
use cleaner way to enable all GPIO banks, including GPIO1.
2021-10-15 15:16:17 -07:00
Lucas De Marchi 24adf18685 AP_HAL_Linux: small fixes to cpu affinity
- Do not mention x:y form in the comment since it's not supported
  - Give more detail in the help output regarding the meaning of each form
  - No prints in the helper parse function, let the caller print it
2021-10-08 16:08:52 -07:00
HefnySco 9f1cbdc0a5 AP_HAL_Linux: cpu affinity 2021-10-08 13:47:56 -07:00
Iampete1 62474e6dc8 AP_HAL_Linux: AnalogSource: set_pin return true 2021-10-06 18:42:51 +11:00
Josh Henderson 9a7530ad50 AP_HAL_Linux: make panic() WEAK 2021-09-28 09:11:48 +10:00
Peter Barker f0efc1300e AP_HAL_Linux: move defines of GPIO LOW/HIGH into cpp file
Insane having these generic defines happening if you include GPIO_BBB.h
2021-09-22 21:37:00 +10:00
Peter Barker 275457fd2c AP_HAL_Linux: move from HAL_NO_GCS to HAL_GCS_ENABLED 2021-09-22 21:37:00 +10:00
Willian Galvani 68cbb47d68 HAL_Linux: RCOutput_PCA9685: implement force_safety_on/off 2021-09-14 10:11:17 +10:00
Willian Galvani 38e8020e4b HAL_Linux: try to stop PWMs before shutting down due to SIGTERM 2021-09-14 10:11:17 +10:00
Mohammad Hefny 5eb28be8e6 AP_HAL_Linux: define board features on Linux module 2021-09-10 08:17:37 +10:00
MHefny 280788bfdf AP_HAL_LINUX:toggle gpio port 2021-07-24 09:16:08 -07:00
Siddharth Purohit f2e947589d AP_HAL_Linux: add support for hw random number generation 2021-07-07 18:57:25 +10:00
Siddharth Purohit eed706c46b AP_HAL_Linux: add empty qspi mgr instance 2021-06-30 19:33:17 +10:00
Siddharth Purohit 35344d1aef AP_HAL_Linux: Use HAL_CANMANAGER_ENABLED instead of HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-24 09:02:42 +10:00
Tom Pittenger 4054b5e891 AP_HAL_Linux: AP::can().log_text() needs HAL_ENABLE_LIBUAVCAN_DRIVERS 2021-06-09 18:36:18 +10:00
Andrew Tridgell dfc4b37df1 AP_HAL_Linux: removed perf counters 2021-06-07 14:29:27 +10:00
Andy Piper ba96f4491d AP_HAL_Linux: allow tone alarm types 2021-05-05 17:41:24 +10:00
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
Patrick José Pereira 6230524636 AP_HAL_Linux: Add navigator board
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2020-01-16 08:01:54 +11:00
Daniel Magree 209bb132fa HAL_Linux: disable input modifications on serial interface for rc receiver
Make sure to clear CBAUD before setting the baud and disable
input modifications.

Fix for #12162

This change removes input options that can modify the input data stream.
INLCR: map new line to carriage return
ICRNL: map carriage return to new line
IUCLC: map upper case to lower case
IGNCR: ignore carriage return
BRKINT: send SIGINT on serial break
2019-11-13 09:02:30 -08:00
Peter Barker cbe73b91d5 AP_HAL_Linux: correct format-string warnings
Using the string template to determine the size of the array to print
into strikes issues as varargs passes the stack variables as integer
types, so the perceived range is larger.
2019-11-05 11:29:08 +11:00