Commit Graph

948 Commits

Author SHA1 Message Date
Peter Barker f6bb94ff33 AP_HAL: add missing break statement in dsm code 2020-01-15 13:55:42 +11:00
Andrew Tridgell 4eccea2607 AP_HAL: define more UART option bits 2020-01-03 17:32:23 +11:00
Andrew Tridgell 12b6f73d83 AP_HAL: added erase() method to Storage class 2020-01-02 09:52:57 +11:00
Andy Piper 22d6fd5e1f AP_HAL: update docs for ObjectBuffer 2019-12-10 21:07:58 +11:00
Peter Barker 10c50844fd AP_HAL: stop emitting extra CR before a LF as part of our printf 2019-11-08 17:37:04 +11:00
Peter Barker 3f9a4ee5f9 AP_HAL: fix unit test compilation due to -Werror=format-truncation 2019-11-06 21:42:18 +11:00
Andrew Tridgell 29a2351fd0 AP_HAL: rename AP_HAL::CAN to AP_HAL::CANHal
avoid conflict with ChibiOS STM32F3xx headers
2019-11-01 10:53:53 +11:00
Andrew Tridgell 9a778418a5 AP_HAL: use enum for flash_bootloader() result 2019-10-25 21:36:55 +11:00
Andrew Tridgell 15d98220e0 AP_HAL: enabled SLCAN on fmuv2 and Pixhawk1-1M
this fits for now, and is needed for CAN GPS for now
2019-10-08 10:02:14 +11:00
Andrew Tridgell 53fab5767f AP_HAL: cleanup ifdefs for SLCAN enable 2019-10-08 10:02:14 +11:00
Andrew Tridgell 2d00298070 AP_HAL: added HAL_MEM_CLASS for amount of memory 2019-10-01 09:29:55 +10:00
Andrew Tridgell 81711eb28e AP_HAL: fixed build on g++ 7.3 for stm32
the system maths headers don't like our maths defines, but are happy
if we include math.h first
2019-09-28 14:19:46 +10:00
Peter Barker 5dad0e5410 AP_HAL: a few more simple tests for snprintf 2019-09-12 16:08:59 +10:00
Peter Barker 412bf24b9a AP_HAL: add gtests for snprintf 2019-09-12 07:42:40 +10:00
Peter Barker 10675ab5c4 AP_HAL: correct include ordering in srxl.h
The header needs stdint.h which it was only getting because it was
included after stdint.h in the cpp file.

Stop including standard headers before other ArduPilot headers
2019-09-11 14:19:14 +10:00
Andrew Tridgell 4197fdeb2a AP_HAL: fixed bug in vsnprintf()
we need to return the number of bytes that would have been printed if
the buffer was big enough to support use cases such as vasprintf()
which needs to know how many bytes to allocate
2019-09-11 13:41:03 +10:00
Andrew Tridgell 1cb608a9f4 AP_HAL: allow neopixel LEDs to be set more flexibly
allow for N leds per chain, with RGB control of each
2019-09-10 13:03:28 +10:00
Tom Pittenger e3416b66dc AP_HAL_ChibiOS: add Neopixel output type, similar to dshot 2019-09-10 13:03:28 +10:00
Andrew Tridgell 6983186210 AP_HAL: added get_options() method on UARTs 2019-09-06 08:51:45 +10:00
Andrew Tridgell 2bc7db4cca AP_HAL: removed old HAL_COMPASS_ defines (no longer used) 2019-09-04 16:27:47 +10:00
Andrew Tridgell 43e011c7a8 AP_HAL: convert Linux compass specification to new probe list
this avoids the special handling in AP_Compass library
2019-09-04 16:27:47 +10:00
Michael du Breuil c12652b325 AP_Rangefinder: Remove stop pin usage 2019-09-04 09:54:50 +10:00
Michael du Breuil 927a0521e3 AP_HAL: Remove the empty force_safety_no_wait 2019-09-04 07:14:50 +10:00
Andrew Tridgell 7fa6eeaaed AP_HAL: remove unused HAL_BARO_ defines 2019-08-28 06:54:11 +10:00
Andrew Tridgell 9d94598235 AP_HAL: convert linux boards to use baro probe list 2019-08-28 06:54:11 +10:00
Andrew Tridgell 60a6f1b04a AP_HAL: removed most HAL_INS_* defines
not used any more
2019-08-28 06:54:11 +10:00
Andrew Tridgell 96180018fb AP_HAL: convert HAL_Linux to use HAL_INS_PROBE_LIST
makes for much simpler addition of new boards, especially with more
than one IMU
2019-08-28 06:54:11 +10:00
Andrew Tridgell 24e05e96e7 AP_HAL: define support for LIS3MDL_I2C and RM3100_SPI 2019-08-27 10:29:56 +10:00
Michael du Breuil e47f97c5d3 AP_HAL: Fix bad buffer termination 2019-08-26 18:57:59 +01:00
Andrew Tridgell 9741ac0b64 AP_HAL: added I2C ISR count to PersistentData 2019-08-26 09:13:39 +10:00
Andrew Tridgell c5c96c76ee AP_HAL: added logging of hardware fault information in watchdog
this may help trackdown software bugs that trigger hard faults
2019-07-19 16:02:41 +10:00
murata 2e4dda5ece AP_HAL: Match output type and variable type 2019-07-16 10:11:13 +10:00
Andrew Tridgell bee487e9da AP_HAL: added uartH 2019-07-12 17:01:21 +10:00
Siddharth Purohit c50912ed6a AP_HAL: define HAL_HAVE_DUAL_USB_CDC if not defined 2019-07-12 17:01:21 +10:00
Andrew Tridgell 5ffb8bb546 AP_HAL: enable GPIO scripting on the Disco 2019-07-06 09:02:54 +10:00
Andrew Tridgell 0ca71ba725 AP_HAL: added get_last_armed_change() Util function 2019-06-21 11:40:53 +10:00
Peter Barker 92111eea61 AP_HAL: require HALs implement rcin.protocol() to return RC protocol 2019-06-18 11:35:38 +10:00
Peter Barker b902316139 AP_HAL: remove buggy write implementation 2019-06-17 17:20:57 +10:00
Peter Barker c3a99c8eb0 AP_HAL: move dump_strack_trace into HAL
Use a weak definition to allow subclasses to override
2019-06-13 09:25:42 +10:00
heitiane 931367a7ea AP_HAL: fix RCOutput, RCOutput2 and RCInputToRCOutput examples to prevent the failure of reading and writing channels. 2019-06-11 10:27:44 +10:00
Vincent 3177d24429 AP_HAL: Make linux hardware define more readable 2019-06-04 10:00:09 +10:00
Andrew Tridgell 4c5b651296 AP_HAL: removed board type for mRoControlZeroF7 2019-05-30 15:39:57 +10:00
Pierre Kancir a4330f90b1 AP_HAL: add HAL_BARO_LPS22H_I2C 2019-05-22 07:37:20 +10:00
Patrick José Pereira fe3d4e2c3b AP_HAL: Utility: Add missing header guard in packetise
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2019-05-20 23:50:23 +01:00
Andrew Tridgell e64c5ef354 AP_HAL: added SPI and I2C counters 2019-05-17 08:56:06 +10:00
Andrew Tridgell 911a99b79e AP_HAL: removed hal argument to EXPECT_DELAY_MS() 2019-05-15 15:33:48 +10:00
Andrew Tridgell c786674442 AP_HAL: record mavlink msg IDs and semaphore line 2019-05-15 15:33:48 +10:00
Andrew Tridgell b1ed77bee9 AP_HAL: added EXPECT_DELAY() macro
this prevents nesting errors in use of EXPECT_DELAY(), ensuring we
always close the expected delay
2019-05-15 15:33:48 +10:00
Andrew Tridgell 8f973da4b5 AP_HAL: moved the WITH_SEMAPHORE() logic into AP_HAL
this is needed to allow us to record the location of a blocking
semaphore to track down bugs where we have a semaphore deadlock
2019-05-15 15:33:48 +10:00
Andrew Tridgell 45d5e7f6d2 AP_HAL: added persistance for internal errors 2019-05-15 15:33:48 +10:00
Andrew Tridgell 4b298aa80e AP_HAL: add scheduler state to persistent_data 2019-05-15 15:33:48 +10:00
Andrew Tridgell 11c123e4da AP_HAL: added persistent_data structure
this is a much simpler way to save data for a watchdog reset
2019-05-15 15:33:48 +10:00
Phillip Kocmoud db57b6c4f3 AP_HAL: added DPS280 on SPI / added board type for mRoControlZeroF7 2019-05-10 15:05:42 +10:00
Andrew Tridgell c63459c237 AP_HAL: added save/restore of attitude in backup registers 2019-04-22 16:53:35 +10:00
Andrew Tridgell bd84c0a8df AP_HAL: added save/restore of home to backup registers 2019-04-22 16:53:35 +10:00
Andrew Tridgell 4a3687fcf6 AP_HAL: added was_watchdog_armed()
allow decisions to be based on whether this is a watchdog reset and we
were armed
2019-04-22 16:53:35 +10:00
Andrew Tridgell 8d2f094257 AP_HAL: added was_watchdog_safety_off()
used to restore safety state on watchdog reset
2019-04-22 16:53:35 +10:00
Andrew Tridgell 88352b73bb AP_HAL: added expect_delay_ms() to Scheduler
used to notify scheduler of long expected delay in main thread
2019-04-22 16:53:35 +10:00
Andrew Tridgell 7f96d4ad12 AP_HAL: added was_watchdog_reset() 2019-04-22 16:53:35 +10:00
Andrew Tridgell 65d051cbc9 AP_HAL: added hal.flash driver
needed for semaphore
2019-04-11 13:22:53 +10:00
murata dc452d41d2 AP_HAL: Change to shared CRC16 method 2019-04-09 12:50:17 +10:00
Siddharth Purohit 0d4725d6c6 HAL: add Invensense register bank based sensor types 2019-03-06 20:47:10 +11:00
Andrew Tridgell 20d762293d AP_HAL: remove more px4 remnants 2019-02-27 20:32:37 +11:00
Andrew Tridgell dcc038dc83 AP_HAL: prevent a zero length leading buffer in peekiovec 2019-02-26 16:18:26 +11:00
Peter Barker 8efda2b792 AP_HAL: GCS_MAVLink takes care of mavlink capabilities 2019-02-19 13:14:52 +11:00
Peter Barker e4e453402c AP_HAL: rearrange headers for consistency
Move attribute definitions all into AP_Common, rather than being split between two files

Remove unused SITL_printf macros

Stop AP_Common including board information

Include AP_Common.h in AP_HAL::Sempahore for WARN_IF_UNUSED; this was the cause of a circular import problem fixed by other commits in this patch.
2019-02-15 08:15:45 +11:00
LukeMike e15d2c0f89 HAL_ChibiOS: added ChibiOS configuration of VR Brain 5.4 2019-01-24 18:41:38 +11:00
LukeMike 33f7f5b7b6 HAL_ChibiOS: added ChibiOS configuration for VR Core 1.0 2019-01-24 18:41:38 +11:00
LukeMike f615ab9a0a HAL_ChibiOS: added ChibiOS configuration for VR Brain 5.1 2019-01-24 18:41:38 +11:00
Siddharth Purohit 504cfd8989 AP_HAL: add flag for enable/disabling filters 2019-01-23 15:57:05 +11:00
Andrew Tridgell c04f1180c9 AP_HAL: removed F4Light 2019-01-21 21:57:21 +11:00
mirkix 506da9ac42 AP_HAL: enable UAVCAN for bbbmini, blue and pocket 2019-01-21 08:08:59 +11:00
Randy Mackay 06bb02fab7 AP_HAL: minor format fixes to CAN 2019-01-18 17:30:28 +11:00
LukeMike 45c5979999 AP_HAL: added define of ChibiOS sub type for VR Brain boards 2019-01-18 11:49:19 +11:00
Michael du Breuil 44079dcc46 AP_HAL: Add scripting heap 2018-12-31 19:25:23 -07:00
Andrew Tridgell 4889625826 AP_HAL: added set_slowdown() to SPIDevice
used to slow down a SPI device below normal high speed operation
2018-12-31 08:00:14 +11:00
Andrew Tridgell d8cf1997d2 AP_HAL: added fs_init() to Util API 2018-12-31 08:00:14 +11:00
Andrew Tridgell 1fd1614e34 AP_HAL: added locking against read for UARTs 2018-12-29 15:58:22 +11:00
Peter Barker 24653a33ed SITL: make socket manipulation functions bool rather than void
... so callers can check if they succeeded or not
2018-12-18 08:51:01 +11:00
Peter Barker 8a0e3dd657 AP_HAL: add millis16 to HAL; provide weak implementation
This wraps every minute or so - but if you only need to track intervals
under ~65 seconds could save RAM
2018-12-10 12:52:41 +09:00
Andrew Tridgell 8907506c18 AP_HAL: added replacement for memrchr() 2018-12-06 13:32:09 +11:00
Andrew Tridgell a0be4f4c8d AP_HAL: fixed build and comments 2018-12-06 11:12:40 +11:00
Andrew Tridgell d01f5ae6c8 AP_HAL: added mavlink_packetise()
used for aligning MAVLink packets on UDP on packet boundaries
2018-12-06 11:12:40 +11:00
Andrew Tridgell 4cfb1b04ad AP_HAL: define HAL_BOARD_STORAGE_DIRECTORY for sitl, px4 and chibios 2018-11-29 16:36:29 +11:00
Siddharth Purohit df7d0d1971 AP_HAL: add support for unformatted board id 2018-11-29 16:36:29 +11:00
Andrew Tridgell e629845f00 AP_HAL: minimize features on px4-v1 2018-11-26 13:29:40 +11:00
Andrew Tridgell bed7939969 AP_HAL: added support for swapping RX and TX pins 2018-11-20 18:25:20 +11:00
Andrew Tridgell f2cd6e9a05 AP_HAL: added set_reversible_mask() 2018-11-16 08:33:35 +11:00
Andrew Tridgell a4c532edff AP_HAL: fixed typo in fmax macro 2018-11-15 14:39:11 +11:00
Andrew Tridgell 58ed5a123c AP_HAL: added HalfDuplex UART option 2018-11-14 19:05:09 +11:00
Andrew Tridgell 37fc6e8b1c AP_HAL: added inversion options 2018-11-14 19:05:09 +11:00
Michael du Breuil 9a9e715af8 AP_HAL: Define HAL_HAVE_SERVO_VOLTAGE 2018-11-12 23:29:04 +00:00
Andrew Tridgell 9ea03e085d AP_HAL: added readptr() and advance() to ObjectBuffer
this gives a more efficient way of accessing an ObjectBuffer, which
reduces interrupt latency in SoftSigReader
2018-11-07 07:35:45 +11:00
Andrew Tridgell 6c6dabc33c AP_HAL: set default batt monitoring for bebop and disco 2018-10-31 20:30:35 +11:00
Peter Barker f8b1203399 AP_HAL: provide method returning approximate link bandwidth 2018-10-30 19:31:37 +11:00
Kevin Lopez Alvarez ab7c7afd1d AP_HAL: add ChibiOS FMUv4pro 2018-10-21 09:59:44 +11:00
Peter Barker f90dd0c156 AP_HAL: add simple tests for null-termination 2018-10-21 07:54:30 +11:00
Peter Barker 33e3d6e254 AP_HAL: Util: make vsnprintf and snprintf always null-terminate
The C++ standard indicates these functions always return a
null-terminated string.  We should rename these functions if we're not
going to conform to the standards.

From https://en.cppreference.com/w/cpp/io/c/vfprintf :

"Writes the results to a character string buffer. At most buf_size-1
characters are written. The resulting character string will be
terminated with a null character"

We are still not standards-compliant in the case a length of 0 is passed
in, returning 0 where we should return the space that would be required
to store the formatted string.
2018-10-21 07:54:30 +11:00
Andrew Tridgell 5924816bbe AP_HAL: removed hal.util->new_semaphore()
replaced with HAL_Semaphore
2018-10-17 12:54:22 +11:00
Andrew Tridgell ed71790945 AP_HAL: fixed PX4 LED polarity 2018-10-09 20:25:49 +09:00
Michael du Breuil 73901274b0 AP_HAL: Define a scripting base priority 2018-10-09 10:08:52 +11:00
Michael du Breuil 6544f16339 AP_HAL: Make BBBlue use AP_BoardLED2 2018-09-19 22:58:46 +01:00
Michael du Breuil 6f7ced73d6 AP_HAL: Remove bad GPIO LED pins on NavIO2 2018-09-19 22:58:46 +01:00
Siddharth Purohit 9a2eea9769 AP_HAL: disable float print methods for non FPU controllers 2018-09-19 12:14:15 +10:00
Siddharth Purohit 5e4f76886a AP_HAL: add chibios hal header to use uC specific defines 2018-09-19 12:14:15 +10:00
Siddharth Purohit c546bec999 AP_HAL: do not use ch for channel, its used as a global var under ChibiOS 2018-09-19 12:14:15 +10:00
Andrew Tridgell eec3a2ab31 AP_HAL: added FOREACH_I2C_MASK() macro 2018-09-07 08:36:02 +10:00
Andrew Tridgell b4ecc347d7 AP_HAL: always define HAL_WITH_UAVCAN on px4 2018-09-05 08:52:47 +10:00
Peter Barker 15ae453205 AP_HAL: fix RCInput example 2018-08-31 21:08:11 +09:00
Peter Barker fcacdb42bb AP_HAL: define base-class attach_interrupt to return false 2018-08-31 08:32:08 +10:00
Andrew Tridgell 55dfefb2d6 AP_HAL: added HAL_Semaphore_Recursive 2018-08-25 15:44:36 +10:00
Peter Barker 74263f8412 AP_HAL: add attach_interrupt that takes a functor, not a AP_HAL::Proc
AP_HAL: add type-safety for interrupt types

AP_HAL: remove interrupt-low and interrupt-high, and interrupt-none

It is possible that the radio needs very tight timings - do not force
the use of the functor interface

AP_HAL: add detach_interrupt method
2018-08-21 20:34:01 +09:00
Peter Barker c846a13d12 AP_HAL: functor: add != override 2018-08-21 20:34:01 +09:00
Andrew Tridgell 0a73c3492d AP_HAL: support HAL_Semaphore type 2018-08-16 12:40:10 +10:00
Hwurzburg 5f72c9040e AP_OSD: Adding flight distance and summary panels for OSD 2018-08-16 12:00:50 +10:00
Francisco Ferreira 0645a5b11a
AP_HAL: introduce a CANProtocol interface and remove HAL CAN thread management 2018-08-12 13:35:01 +01:00
Andrew Tridgell 1fe6c7b497 AP_HAL: added chanmask to serial_setup_output() 2018-08-04 19:29:13 +10:00
Lucas De Marchi 099eefee87 AP_HAL: Chibios: HAL_GPIO_PIN_SAFETY_IN implies HAL_HAVE_SAFETY_SWITCH 2018-08-02 13:15:02 -07:00
Lucas De Marchi 7f984f2700 AP_HAL: linux: disable safety switch
Linux boards don't really handle the safety switch.
2018-08-02 13:15:02 -07:00
Lucas De Marchi 2336d2214b AP_HAL: sitl: disable safety switch
sitl doesn't really handle the safety switch and it's actually disabled
by AP_FEATURE_SAFETY_BUTTON.
2018-08-02 13:15:02 -07:00
Andrew Tridgell 949324ff2b AP_HAL: added duration to toneAlarm_set_buzzer_tone 2018-07-30 14:02:12 +10:00
Jonathan Challinger f936b1dbc2 AP_HAL: change tonealarm interface 2018-07-30 14:02:12 +10:00
Andrew Tridgell cb19d4dffc AP_HAL: added toneAlarm_set_tune_string 2018-07-20 14:37:16 +10:00
Andrew Tridgell 0fc6ca22f7 AP_HAL: setup HAL_I2C_INTERNAL_MASK for ChibiOS 2018-07-14 17:51:50 +10:00
Andrew Tridgell 464dc9102f AP_HAL: added device types for SITL
and fixed a stack init bug for make_bus_id
2018-07-13 10:19:01 +10:00
Michael du Breuil 3419b045e1 AP_HAL: Remove GPIO::analogPinToDigitalPin() 2018-07-11 23:09:52 -07:00
Andrew Tridgell d35abe67ae AP_HAL: added optional healthy check on storage object
used to check parameter storage is functional
2018-07-10 15:41:44 +10:00
Andrew Tridgell 4939f30ec4 AP_HAL: make linux internal i2c be 0xffff
based on feedback from Lucas
2018-07-10 15:39:47 +10:00
Andrew Tridgell b19219d636 HAL_Linux: allow for 16 I2C buses on Linux 2018-07-10 15:39:47 +10:00
Andrew Tridgell 281a1b6569 AP_HAL: added I2C bus mask functions and macros 2018-07-10 15:39:47 +10:00
Andrew Tridgell e14e0b8a14 AP_HAL: added thread_create() API
this is deliberately a minimalistic API, for ease of implementation in
each HAL
2018-07-09 19:41:18 +10:00
Andrew Tridgell eb2c9dfe74 AP_HAL: define CHIBIOS_SHORT_BOARD_NAME if not defined 2018-06-29 20:27:36 +10:00
Andrew Tridgell d1fcf2bab6 AP_HAL: added uartG
one more uart ...
2018-06-29 08:17:38 +10:00
Peter Barker b9b0ef0c77 AP_HAL: add flash_bootloader to AP_HAL API 2018-06-28 11:35:13 +10:00
Michael du Breuil 2577e5ff25 AP_HAL: Don't always define GPIO pins, they may be connected to real
hardware
2018-06-27 15:25:44 +10:00
Lucas De Marchi 49d08ba72a Global: remove minlure
Minlure is a port of ArduPilot to Minnow Board connected to daughter
board. Very few of those were produced and nobody is flying with it.

It served its purpose and all the the improvements to ArduPilot remain
regardless of it not being supported anymore. Now it's just adding
maintenance work with no clear benefit, so pull the plug.
2018-06-26 07:32:08 -07:00
Michael du Breuil a92c4aa9fd AP_HAL: Update comment on UARTDriver::begin to reflect automatic
clearing
2018-06-26 02:18:18 +01:00
Kelly-Foster ba9faafc98 AP_HAL: added MatekF405-wing subtype
Added define for HAL_BOARD_SUBTYPE_CHIBIOS_MATEKF405WING
2018-06-22 08:00:31 +10:00
Hyungsub 6e2076a3f1 AP_HAL: Remove resource leak in srxl.cpp
I correct this issues and then open a pull request.
2018-06-20 11:33:12 +10:00
Peter Barker 584c5d5806 AP_HAL: Socket: add set_cloexec 2018-06-19 09:14:28 +10:00
Peter Barker f5eb281efd AP_HAL: use AP_RTC
Also add a define as to whether set_time / get_time can be used
2018-06-15 08:01:22 +10:00
Michael du Breuil 1183ed61fb AP_HAL: Remove timer process suspension interface 2018-06-06 07:16:58 +10:00
Andrew Tridgell 0774a267c8 AP_HAL: added define for FMUv5 2018-06-06 07:15:41 +10:00
Michael du Breuil 627c7536f4 AP_HAL: Remove overrides interface 2018-06-05 09:51:09 +10:00
Andrew Tridgell d28283e302 AP_HAL: added clock_pulse() method to SPIDevice
this is used by SPI SDCard interface for HAL_ChibiOS
2018-05-27 19:10:24 +10:00
Andrew Tridgell e2ea654b77 AP_HAL: added take_blocking() method
this avoids the need to check return result
2018-05-25 13:53:17 +10:00
Eugene Shamaev c410feefa1 AP_HAL: add CAN bus declaration for the intel aero board 2018-05-25 13:53:17 +10:00
Lucas De Marchi ff6e76ea6a AP_HAL_Linux: add custom storage directory 2018-05-24 08:00:33 -07:00
Lucas De Marchi a56106cccb AP_HAL: use buildsystem for default directories 2018-05-24 08:00:33 -07:00
Lucas De Marchi 1e7ad72909 AP_HAL: use default storage for more boards
Boards from Emlid, Erle Robotics and BBB-like ones were agreed to be
changed #7100. Here I'm also change some more, just because they appear
to be using the old default just because of copy and paste. We can
always revert back if we get complains and it seems something trivial.
Almost all boards now are using the the default path for logs, terrain
and params, except those that have restrictions to do so, like ones
using custom distros.
2018-05-24 08:00:33 -07:00