Commit Graph

1121 Commits

Author SHA1 Message Date
Andrew Tridgell 414f4125de AP_HAL: use FD_CLOEXEC to prevent sockets being inherited in SITL 2015-05-11 08:05:51 +10:00
Andrew Tridgell 692fc18698 AP_HAL: protect Socket.h from double include 2015-05-10 21:02:04 +10:00
Tom Pittenger 4b6d0d8e24 AP_HAL: replace fabs() with fabsf() 2015-05-09 09:57:26 +10:00
Andrew Tridgell 2369e06815 AP_HAL: fixed SITL build on windows 2015-05-06 09:07:03 +10:00
Andrew Tridgell 4c11002976 AP_HAL: added HAL_OS_SOCKETS define
used for systems with BSD sockets
2015-05-05 21:34:19 +10:00
Andrew Tridgell 08b9ed3342 AP_HAL: added socket handling class 2015-05-05 21:34:19 +10:00
Andrew Tridgell 35d22b9d57 AP_HAL: added getopt_cpp class
a simple port of getopt_long to C++
2015-05-05 09:45:58 +10:00
Andrew Tridgell 40e3b422b5 HAL_SITL: rename HAL_AVR_SITL to HAL_SITL
it is nothing to do with the original AVR emulation now
2015-05-05 09:45:54 +10:00
Andrew Tridgell df21c6c68d AP_HAL: support micros64() and millis64() on all platforms
this will allow for 64 bit timestamps in DF logs (Peter is working on
that)
2015-04-30 12:17:34 +10:00
Mikhail Avkhimenia 7ba6a5e346 AP_HAL: Specify terrain directory for Navio 2015-04-14 10:16:25 +10:00
Andrew Tridgell 55019abd71 AP_HAL: allow for default parameter override for PX4 and SITL 2015-04-04 09:01:40 -07:00
Andrew Tridgell b52918331a AP_HAL: make PXF use AK8963 compass by default 2015-03-13 18:46:15 +11:00
Andrew Tridgell d186b82edc AP_HAL: consolidate AK8963 defines 2015-03-13 18:46:15 +11:00
mirkix 4f1dd85e47 AP_HAL: Add test sketch for RC input to RC output pass through 2015-03-11 21:14:15 +09:00
Andrew Tridgell c63540f7b1 AP_HAL: added delay_microseconds_boost()
this will be used by wait_for_sample() to boost priority for a short
period at the end of each delay_microseconds()
2015-02-16 11:52:37 +11:00
Jonathan Challinger aa7776ea59 AP_HAL: add soft_armed state to hal.util 2015-02-11 20:25:10 +11:00
Grant Morphett 525787078f AP_HAL: Changes to fix the warnings in rover sitl build.
We are starting the process of resolving all the warnings in the
ardupilot builds of all vehicles and platforms.
2015-02-11 18:16:45 +11:00
Andrew Tridgell 3075cb058d AP_HAL: changed semantics of RCInput.new_input()
this makes calling new_input() in RCInput clear the new input
flag. This fixes an issue with calls to read() for auxillary channels
clearing the new_input flag, which could cause brief failsafe
conditions.
2015-02-09 10:39:05 +11:00
Emile Castelnuovo a0673b56f9 AP_HAL: added new VRBRAIN boards and new subtypes 2015-02-02 08:43:58 +11:00
LukeMike edd0f13845 AP_HAL: mapped the different sizes of storage for all VR boards 2015-02-02 08:43:58 +11:00
Randy Mackay f84d31b838 HAL: fix example sketch 2015-01-28 17:15:40 +09:00
mirkix d11c5286c3 AP_HAL: HAL_COMPASS_AK8963 used but not defined anywhere 2015-01-22 14:35:51 +11:00
mirkix 7ceb93befa AP_HAL: make the examples usable with Linux 2015-01-22 14:30:47 +11:00
mirkix 70445d11f6 AP_HAL: add support for BBBMINI, simple ArduPilot DIY Cape for the BeagleBone Black 2015-01-12 21:36:40 +13:00
Andrew Tridgell 6fb00f4fc3 AP_HAL: create a common utility/RingBuffer.h header 2015-01-07 08:41:14 +11:00
Staroselskii Georgii a08a34f863 AP_HAL: changed default compass for Navio 2015-01-07 08:41:13 +11:00
Staroselskii Georgii e4a21f291d AP_HAL_Linux: added LinuxSPIUARTDriver that can handle SPI-driven Ublox 2015-01-07 08:41:12 +11:00
Andrew Tridgell 6993be54b7 HAL_Linux: raise storage size to 16k
match PX4 size
2015-01-03 14:06:54 +11:00
Andrew Tridgell 5aabfd4dc4 AP_HAL: added RCInput example sketch 2014-12-02 15:49:50 +11:00
Andrew Tridgell 8e36c1cd60 AP_HAL: fixed RCOutput example 2014-12-02 15:03:59 +11:00
Andrew Tridgell 4ec6a74829 AP_HAL: addex UART_test example sketch 2014-12-02 13:14:03 +11:00
Andrew Tridgell 9e0a7e6631 AP_HAL: fixed printf example build 2014-12-02 13:14:03 +11:00
Andrew Tridgell e89d380b73 AP_HAL: added set_esc_scaling() RCOutput function
this will be used to scale outputs for uavcan ESCs based on throttle
range
2014-11-26 11:14:44 +11:00
bugobliterator ad460659ad AP_HAL: make toneAlarm_init() return bool 2014-11-15 16:59:06 +11:00
Staroselskii Georgii bf860ee41f AP_HAL_Linux: Ublox SPI stub 2014-11-14 10:28:34 +11:00
Andrew Tridgell adcf994356 AP_HAL: added Zynq platform type 2014-11-14 10:21:04 +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 fa6e83318d AP_HAL: Add virtual toneAlarm member functions to be declared under Linux_HAL 2014-11-10 06:27:48 +11:00
Randy Mackay 033b14db16 AP_HAL: add force_safety_on method 2014-09-18 09:58:44 +09:00
Emile Castelnuovo 7a70c0132d AP_HAL: VRBRAIN corrected EEPROM size and added terrain folder on MicroSD 2014-08-31 10:56:56 +09:00
Andrew Tridgell 7439d34a5d AP_HAL: add millis64() and micros64() on faster boards
this can be used for much simpler scheduling, without any wrap
handling
2014-08-20 07:55:19 +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 226b67d357 AP_HAL: make PXf default to MPU9250 2014-08-19 10:08:16 +10:00
bugobliterator 072c39ea6a AP_HAL: Add option to select Storage type AP_HAL_Boards.h
user can set HAL_STORAGE as USE_FS or USE_FRAM inside AP_HAL_Boards.h as per his/her choice or board setup
2014-08-19 10:08:16 +10:00
Víctor Mayoral Vilches 37793cd7fa AP_HAL_Namespace: Change LSM9DS0 into two different devices. 2014-08-19 10:08:15 +10:00
Víctor Mayoral Vilches e272ed8d96 AP_HAL: Add support for L3GD20 2014-08-19 10:08:15 +10:00
Víctor Mayoral Vilches 82186a3961 HAL: Add two new SPI devices
SPIDevice_LSM303D and SPIDevice_L3GD20 added to the enum.
The code has also been formated.
2014-08-19 10:08:15 +10:00
Emile Castelnuovo 0d62b15292 AP_HAL: added missing CONFIG_HAL_BOARD_SUBTYPE #define for HAL_BOARD_VRBRAIN 2014-08-16 20:28:57 +10:00
Andrew Tridgell b61ecb47af AP_HAL: fixed example build 2014-08-13 22:11:46 +10:00
Andrew Tridgell 5cca163b1f AP_HAL: fixed example build 2014-08-13 21:48:35 +10:00
Andrew Tridgell e34463a4bb AP_HAL: flymaple build fix 2014-08-13 18:46:44 +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
Andrew Tridgell f748e07ecf AP_HAL: ensure we have subtypes for all boards 2014-08-13 18:46:43 +10:00
Mikhail Avkhimenia 784533e9c8 AP_HAL: add configuration for HAL_BOARD_SUBTYPE_LINUX_NAVIO 2014-08-12 22:09:17 +10:00
Andrew Tridgell 02dec5634f AP_HAL: fixed example builds 2014-07-25 17:52:01 +10:00
Andrew Tridgell 63b5811a7c AP_HAL: added HAL_BOARD_TERRAIN_DIRECTORY 2014-07-24 21:45:56 +10:00
Andrew Tridgell 9b23921626 AP_HAL: added LSM9DSO_G SPI device 2014-07-19 13:22:24 +10:00
Markus Koetter 1edf7ef05f AP_HAL: use VRBRAIN INS/BARO/COMPASS for VRBRAIN boards 2014-07-15 11:43:00 +10:00
Andrew Tridgell 7195e38585 AP_HAL: fixed I2C build on APM2 2014-07-14 09:44:35 +10:00
Andrew Tridgell 5693392838 AP_HAL: added the concept of a board subtype, and default sensor types
this will make the vehicle code much more generic
2014-07-14 09:44:34 +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 57ec305caa AP_HAL: Fixes to make the ERLE layer work 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
Víctor Mayoral Vilches 5493be1b0d AP_HAL: Add SPIDevice_MPU9250 as a device. 2014-07-14 09:02:46 +10:00
Andrew Tridgell 74ee70d463 HAL_Linux: updates for ERLE board type 2014-07-14 08:52:27 +10:00
Andrew Tridgell 18a64d17d3 AP_HAL: added HAL_ prefix to GPIO_ defines
this fixes a bug caused by GPIO_INPUT and GPIO_OUTPUT already being
defined in NuttX, which caused pinMode() not to setup pins for output
when requested
2014-06-02 09:24:52 +10:00
Andrew Tridgell 74227cd7f0 AP_HAL: prevent some FastDelegate warnings 2014-05-08 11:11:03 +10:00
Andrew Tridgell 5cd145a307 AP_HAL: added set_failsafe_pwm() API
this allows the PWM values for FMU firmware failure to be setup
2014-04-21 08:36:52 +10:00
Emile Castelnuovo 201332caef AP_HAL: New VRBRAIN board definition and libraries 2014-04-08 16:19:19 +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 d36989f6a1 AP_HAL: fixed example build 2014-03-19 12:14:06 +09:00
Randy Mackay 7663c5898e AP_HAL_Boards: board specific storage size definition 2014-03-19 12:11:52 +09: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 4cb61f1f08 AP_HAL: support uartE 2014-02-26 08:18:20 +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 9cf70fe3f7 AP_HAL: another broken example build
this one an internal compiler error
2014-02-17 12:42:13 +11:00
Andrew Tridgell 830afefcef AP_HAL: fixed example build 2014-02-15 06:40:29 +11:00
Andrew Tridgell 117b77460e HAL_Linux: added stop_clock hack! 2014-02-15 05:28:08 +11:00
Andrew Tridgell bea0a46410 AP_HAL: added servorail_voltage and power_status_flags() API on AnalogIn 2014-02-15 05:00:09 +11:00
Andrew Tridgell 7c1b9b344f AP_HAL: added get_flow_control() API 2014-02-14 21:51:00 +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 ccb7dc640d AP_HAL: fixed a build warning 2014-02-12 10:51:58 +11:00
Andrew Tridgell 439a075b30 AP_HAL: added force_safety_off rcoutput function
this forces the safety switch off, enabling PWM on the IO board
2014-02-11 15:58:25 +11:00
Andrew Tridgell c5c1d1358a HAL_PX4: added automatic hardware flow control detection
this allows us to detect if hardware flow control is not available and
automatically disable it
2014-02-11 12:11:26 +11:00
Andrew Tridgell 3e637ac5d9 AP_HAL: added enable_flow_control() option in AP_HAL 2014-02-10 12:54:50 +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 5e39b6fb11 AP_HAL: added set_safety_pwm() API 2014-01-15 22:25:22 +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 7e1e10f941 AP_HAL: added time_shift() scheduler API
used for log replay
2013-12-30 14:35:09 +11:00
Andrew Tridgell 172398a971 AP_HAL: added available_memory() interface 2013-12-28 14:51:01 +11:00
Andrew Tridgell e321ad65f4 AP_HAL: fixed example build 2013-12-17 11:51:37 +11:00
Andrew Tridgell f95bea699b AP_HAL: added get_system_id() method on Util 2013-11-26 13:00:03 +11:00
Andrew Tridgell cbc0f3ec27 AP_HAL: support uartD on some boards
PX4 and SITL get an extra UART
2013-11-23 19:29:22 +11:00
Andrew Tridgell 0ca82d5e3c AP_HAL: added set_system_clock() API 2013-10-24 14:22:48 +11:00
Randy Mackay 443023bbbf AP_HAL: add ignore_errors to I2C driver 2013-10-21 20:01:32 +09:00
Andrew Tridgell 7ef187fcfd AP_HAL: added optional set_timer_speed() scheduler API
will be used by copter to reduce interrupt load on APM2
2013-10-13 11:03:35 +09:00
Andrew Tridgell 5ccf8409b4 AP_HAL: added an optional spi.set_bus_speed() API
this will be used by MPU6000 on APM2 to change speed after init
2013-10-13 11:03:04 +09:00
Andrew Tridgell 9f24c45502 AP_HAL: removed separate Console class
the idea of a separate console class was never really used, and just
added confusion in a HAL port. It also consumes some much needed ram
and flash space on APM2
2013-10-05 18:32:00 +10:00
Andrew Tridgell 34a328f66d AP_HAL: added safety_switch_state() function in hal.util
will be used by copter to check safety switch is set
2013-10-05 15:46:35 +10:00
Andrew Tridgell efe1e01700 AP_HAL: require a buffer write() function in all ports
this makes a sufficient performance difference that it is worth it
2013-10-03 12:21:07 +10:00
Andrew Tridgell f2de4bb7b0 AP_HAL: implement AP_HAL::MemberProc via FastDelegate.h
this provides a more portable way to encapsulate member functions in
variables
2013-09-30 20:51:13 +10:00
Andrew Tridgell f0f5761e8d AP_HAL: make timed processes take void *argument
this allows the class to be passed in, meaning that drivers that use
register_timer_process() and register_io_process() don't need to use
static members. That results in simpler, easier to read code
2013-09-28 21:24:02 +10:00
Andrew Tridgell 296417a228 AP_HAL: added AP_HAL_LINUX define 2013-09-28 21:24:01 +10:00
Andrew Tridgell 60f3a8b6cf AP_HAL: removed SMACCM support 2013-09-26 22:38:31 +10:00
Mike McCauley ec5425578e AP_HAL: Added Flymaple board 2013-09-24 13:33:25 +10:00
Andrew Tridgell 0e9aef7e52 AP_HAL: changed base defines for print()
this avoids a conflict with wirish from libmaple
2013-09-23 18:10:21 +10:00
Andrew Tridgell 87bb3bc5dc AP_HAL: added AP_HAL_PX4 define 2013-09-22 16:02:42 +10:00
Andrew Tridgell 928e06f52c AP_HAL: use fabs() in print
fixes build on Arduino
2013-09-22 13:18:40 +10:00
Andrew Tridgell d46f5f6943 AP_HAL: implement betterstream functions in AP_HAL
this gives more consistancy between ports
2013-09-22 12:20:59 +10:00
Andrew Tridgell 0d662c52b3 AP_HAL: fixed length return from snprintf 2013-09-21 15:45:05 +10:00
Andrew Tridgell 0063f1fad8 AP_HAL: added Util.cpp
common printf functions
2013-09-21 14:25:42 +10:00
Andrew Tridgell 85b3f0d18d AP_HAL: expanded printf test suite 2013-09-21 13:29:52 +10:00
Andrew Tridgell 60122f9877 AP_HAL: moved printf implementation from AP_HAL_AVR to AP_HAL
this gives a common printf implementation on all boards, which
simplifies testing, and also simplifies porting to new boards
2013-09-21 13:28:46 +10:00
Andrew Tridgell 4ad4b60fbc HAL: added Printf test sketch
for testing new non-asm printf code
2013-09-21 11:16:08 +10:00
Andrew Tridgell a5b29f44d5 AP_HAL: added hal.gpio->usb_connected() function
this replaces the USB_MUX_PIN on APM2, and works on PX4 and FMUv2
2013-09-19 16:23:40 +10:00
Andrew Tridgell a587b1140a AP_HAL: added voltage_latest() interface
this will be used for reading the 5V rail
2013-09-12 13:23:04 +10:00
Andrew Tridgell 7082e0f8aa AP_HAL: added hold_in_bootloader parameter to scheduler->reboot() 2013-09-04 11:58:13 +10:00
Andrew Tridgell 97b7130bb9 libraries: update license header to GPLv3
we switched to GPLv3 a long time ago, but neglected to update the
per-file license headers
2013-08-30 13:01:39 +10:00
Randy Mackay ac36a09747 AP_HAL: add toggle to GPIO 2013-08-30 13:01:34 +10:00
Andrew Tridgell ef5a42fabc AP_HAL: added RCOutput example sketch
useful for testing all 14 channels via APM API
2013-08-30 13:01:32 +10:00
Tobias d3ea88e8c7 AP_HAL: resolved -Woverloaded-virtual warning
the function:
virtual size_t AP_HAL::Print::write(const uint8_t *buffer, size_t size);

was hidden in all derived classes by their
virtual size_t write(uint8_t) = 0; implementations.

To solve this, a non-virtual write(const uint8_t *, size_t) that calls a
virtual write_implementation was added.

This isn't necessary atm, because the derived classes don't call
write(const uint8_t *, size_t), BUT this decreases the apm2-quad Program
size by 40 bytes :D and removes warnings.
2013-07-08 12:17:34 +10:00
Andrew Tridgell 2316c3bd11 AP_HAL: make storage->write_block() take a const pointer 2013-06-04 14:02:13 +10:00
Andrew Tridgell a5b20b4dfc AP_HAL: removed scaling factor on analog sources
these are not use anymore, as voltage_average() is used instead
2013-05-13 15:29:42 +10:00
Andrew Tridgell 589b8cdb58 AP_HAL: added voltage_average_ratiometric() call to AnalogIn
this is for ratiometric sensors such as the 3DR airspeed sensor and
the Maxbotix analog sonar
2013-05-13 15:12:43 +10:00
Andrew Tridgell 0b6cfc7294 AP_HAL: added set_stop_pin() and set_settle_time() interfaces to analogin
this is for multiple sonars on one vehicle, to prevent them
interfering with each other
2013-05-03 09:45:19 +10:00
Andrew Tridgell 500497f5fa AP_HAL: update AnalogIn test to show the first 16 pins 2013-05-02 21:31:55 +10:00
Randy Mackay bbbd90c430 AP_HAL: rename RCInput's valid() fn to valid_channels 2013-04-29 15:05:53 +09:00
Andrew Tridgell 3b0250b414 AP_HAL: define RC_12
we have 12 channels on PX4FMU+PX4IO
2013-04-25 20:10:53 +10:00
Andrew Tridgell af7381e9e0 AP_HAL: added register_io_process()
this is used to register a low priority IO task. Used for file IO in
DataFlash_File.cpp
2013-04-17 21:33:50 +10:00
Andrew Tridgell eb6c66af7e AP_HAL: added gpio->analogPinToDigitalPin() API 2013-03-22 12:31:14 +11:00
Andrew Tridgell 7681f3b639 AP_HAL: update AnalogIn example to show voltages not raw values 2013-03-15 08:39:22 +11:00
Andrew Tridgell b1c27407a2 AP_HAL: added voltage_average() interface to AnalogIn
returns voltage in Volts, using averaged reading over samples.

Where possible this should be auto-scaled against a known reference
voltage
2013-03-03 16:16:01 +11:00
Andrew Tridgell 8ed2f7d21c AnalogIn: run the example sketch a bit slower
5Hz is plenty
2013-03-01 11:19:26 +11:00
Andrew Tridgell 5a55fd9a2f AP_HAL: added HAL_BOARD_NAME define 2013-03-01 07:18:25 +11:00
Andrew Tridgell a3ef58ac92 AP_HAL: moved AnalogIn example to generic examples
it is not AVR specific anymore
2013-02-22 12:50:47 +11:00
Andrew Tridgell 70f7cde9b8 AP_HAL: added run_debug_shell() hal.util method 2013-02-07 15:04:33 +11:00
Andrew Tridgell 76092eb590 AP_HAL: remove unused peek() interface from UART drivers
this is a bit tricky to implement on some platforms, and is unused
anyway
2013-01-16 14:43:18 +11:00
James Bielman 4fa7bb1486 Add AVR compatibility header for missing math.h definitions.
- Define float versions of math functions to the double versions
  on AVR (eg. #define sinf sin).
- These macros appear to be missing in older versions of avr-libs.
- Include AP_Math.h rather than math.h to get these definitions.
2013-01-16 13:52:17 +11:00
James Bielman 5631f865b2 Update floating point calculations to use floats instead of doubles.
- Allows use of hardware floating point on the Cortex-M4.
- Added "f" suffix to floating point literals.
- Call floating point versions of stdlib math functions.
2013-01-16 13:52:01 +11:00
Andrew Tridgell 2ce18f588b AP_HAL: added AP_HAL_Macros.h
this adds a define for constexpr, allowing code to build either with
or without -std=gnu++0x
2013-01-16 09:12:55 +11:00
Andrew Tridgell 6415f00ce3 AP_HAL: added a bulk transfer() method
very useful for dataflash
2013-01-13 17:31:42 +11:00
Pat Hickey 7a0f95c11c AP_HAL: add Scheduler methods in_timerprocess, system_initialize 2013-01-10 14:07:43 -08:00
Andrew Tridgell e76c77e86a AP_HAL: mark semaphore take operations as WARN_IF_UNUSED
this prevents common bugs
2013-01-09 20:42:02 +11:00
Andrew Tridgell 90523ae975 AP_HAL: added WARN_IF_UNUSED macro
useful for key functions
2013-01-09 20:41:37 +11:00
Pat Hickey 3da864499d AP_HAL Semaphore: don't use limits, they don't work on c++ 2013-01-04 16:19:15 -08:00
James Bielman eca1417858 AP_HAL: Add semaphores to I2C driver.
- Guard I2C transactions with this semaphore in the MS5611 and
  HMC5843 drivers.
2013-01-04 15:43:43 -08:00
Pat Hickey ea2a03344e AP_HAL Scheduler: remove begin_atomic and end_atomic from api
* application-level atomic operations can now only be defined in
  terms of suspend/resume_timer_procs
2013-01-03 17:33:14 -08:00
Pat Hickey 81d77d4a70 AP_HAL: New semaphore interface
* it now looks like a semaphore!
2013-01-03 13:48:07 -08:00
James Bielman a4af314b57 Add AP_HAL_SMACCM implementation.
- Add a board definition for SMACCMPilot.
- Support the SMACCM HAL in required utility libraries.
2013-01-03 13:48:06 -08:00
Andrew Tridgell a3c26d44e4 AP_HAL: rename Sempahore.h to Semaphores.h
this is needed to allow build on MacOS, as its case-insensitive
filesystem picks up the NuttX semaphore.h
2013-01-02 18:22:13 +11:00
Andrew Tridgell ba1a6eb073 AP_HAL: fixed SITL build 2013-01-02 14:48:15 +11:00
Andrew Tridgell d3f154bbae AP_HAL: include stdbool.h for ARM build 2013-01-02 14:45:09 +11:00
Andrew Tridgell 0ef003a45f AP_HAL: added PX4 board support 2012-12-30 20:02:45 +11:00
Andrew Tridgell 0186fabb3b build: allow building with the "Empty" HAL
useful for porting
2012-12-24 07:30:50 +11:00
Pat Hickey 1678dcc6f0 AP_HAL: GPIO INTERRUPT defines 2012-12-22 09:11:11 +11:00
Andrew Tridgell 93040e5725 AP_HAL: removed the defer_timer_process() function
this is now unused
2012-12-21 20:01:42 +11:00
Andrew Tridgell 60d3df50ae AP_HAL: changed delay() to take a uint16_t
this allows for up to 32 second delays, and saves a bit of flash space
2012-12-20 14:53:23 +11:00
Pat Hickey 7681fef988 AP_HAL: BetterStream gets vprintf and vprintf_P methods 2012-12-20 14:53:22 +11:00
Pat Hickey 0d702045b8 AP_HAL: Add Util member for string utilities 2012-12-20 14:52:37 +11:00
Andrew Tridgell 4cff98dcae AP_HAL: added AP_HAL_BOARD_DRIVER define
this makes example sketches easier to read
2012-12-20 14:52:33 +11:00
Pat Hickey d2f7402243 AP_HAL: add bulk transaction to SPIDeviceDriver 2012-12-20 14:52:32 +11:00
Pat Hickey c86004d676 AP_HAL: Add panic method to scheduler 2012-12-20 14:52:31 +11:00
Pat Hickey eda450a166 AP_HAL: I2CDriver bug fixed for pure virtual base class 2012-12-20 14:52:31 +11:00
Pat Hickey b79bd01761 SPIDriver: namespace explicit to better permit copypasta 2012-12-20 14:52:30 +11:00
Pat Hickey 527dfb5af4 AP_HAL: remove EmptyUARTDriver 2012-12-20 14:52:30 +11:00
Pat Hickey d18b9feaa1 AP_HAL: add HAL_BOARD_EMPTY to AP_HAL_BOARDS 2012-12-20 14:52:30 +11:00
Andrew Tridgell e10e3ee3be AP_HAL: fixed argv declaration to match getopt() 2012-12-20 14:52:29 +11:00
Andrew Tridgell 18824c7ef5 AP_HAL: expose argc/argv in hal.init()
used for SITL port
2012-12-20 14:52:29 +11:00
Pat Hickey fa02ad7d4c AP_HAL: preprocessor enum of HAL_BOARD 2012-12-20 14:51:37 +11:00
Pat Hickey 9cee6cc941 AP_HAL: remove Dataflash driver 2012-12-20 14:51:37 +11:00
Pat Hickey cb38651df5 AP_HAL: RCInput has overrides 2012-12-20 14:51:34 +11:00
Pat Hickey 8879cbbc69 AP_HAL: Console uses only sized int types 2012-12-20 14:51:33 +11:00
Pat Hickey de4adefe4e AP_HAL: AnalogIn uses only sized int types 2012-12-20 14:51:33 +11:00
Pat Hickey 243590bb73 AP_HAL: UARTDriver & Stream uses only sized int types
Signed-off-by: Pat Hickey <pat@galois.com>
2012-12-20 14:51:33 +11:00
Pat Hickey 709869f8ce AP_HAL: use sized ints in GPIO 2012-12-20 14:51:33 +11:00
Pat Hickey ca4bc8d760 AP_HAL: AnalogIn read changed to read_latest and read_average 2012-12-20 14:51:33 +11:00
Pat Hickey 6218d7779f AP_HAL: expose DF_LOGGING_FORMAT to user 2012-12-20 14:51:33 +11:00
Pat Hickey 3bca50f422 AP_HAL: BetterStream removes printf attribute from _printf_P 2012-12-20 14:51:33 +11:00
Pat Hickey 592d32ba47 AP_HAL: add reboot to scheduler 2012-12-20 14:51:32 +11:00
Pat Hickey 7049934a69 AP_HAL: AnalogIn channel gets scale, source gets set_pin 2012-12-20 14:51:32 +11:00
Pat Hickey dbb6a2a0e5 AP_HAL: change uart0,1,2,3 to uartA,B,C 2012-12-20 14:51:32 +11:00
Pat Hickey f543cede01 AP_HAL & AP_HAL_AVR: new SPI driver model 2012-12-20 14:51:31 +11:00
Pat Hickey 2a12392b9e AP_HAL: export semaphore header 2012-12-20 14:51:30 +11:00
Pat Hickey b2c44d8a81 AP_HAL: move AP_Semaphore to be part of the HAL 2012-12-20 14:51:30 +11:00
Pat Hickey f4b5ef9fad AP_HAL AnalogIn: gets constants for BOARD_VCC and NONE 2012-12-20 14:51:30 +11:00
Pat Hickey 47f555feac AP_HAL_AVR: I2CDriver increments lockup count on any error
tridge made these changes to the "I2c" lib in a3589f2956
2012-12-20 14:51:30 +11:00
Pat Hickey c9541d3b00 AP_HAL: added begin_atomic and end_atomic to scheduler 2012-12-20 14:51:29 +11:00
Pat Hickey 7908e41416 AP_HAL Storage: use a int type rather than pointer type for location 2012-12-20 14:51:29 +11:00
Pat Hickey a399851ca2 AP_HAL: Depend on AP_Progmem rather than AP_Common to provide pstr 2012-12-20 14:51:28 +11:00
Pat Hickey bae7e4b88e AP_HAL Scheduler: simplify register_timer_process, min time for delay cb 2012-12-20 14:51:27 +11:00
Andrew Tridgell 87e300b119 AP_HAL: added double print functions
this copes with the fact that the compiler doesn't really know that
float and double are the same things
2012-12-20 14:51:27 +11:00
Pat Hickey 7480707f9e AP_HAL: Add attach_interrupt method to GPIO 2012-12-20 14:51:26 +11:00
Pat Hickey d422ab7806 AP_HAL: Extend Scheduler to support defered timer procs
* based on queue_proc from AP_PeriodicProcess
2012-12-20 14:51:26 +11:00
Pat Hickey 73ccfaf2d7 AP_HAL: implement DigitalSource abstraction
* GPIO's complement to AnalogSource
2012-12-20 14:51:25 +11:00
Pat Hickey 017f592eef AP_HAL: add ConsoleDriver interface 2012-12-20 14:51:24 +11:00
Pat Hickey 36154559fc AP_HAL: change txspace from a BetterStream method to a Stream method. 2012-12-20 14:51:24 +11:00
Pat Hickey 279a755ab3 AP_HAL: AnalogIn interface fleshed out 2012-12-20 14:51:23 +11:00
Pat Hickey 6671310399 AP_HAL Scheduler: interface has AP_PeriodicProcess functionality 2012-12-20 14:51:22 +11:00
Pat Hickey af68c09591 AP_HAL Namespace: typedef Proc and TimedProc 2012-12-20 14:51:22 +11:00
Pat Hickey 187571cca9 AP_HAL Scheduler fixes & AP_HAL_AVR Scheduler changed to match 2012-12-20 14:51:22 +11:00
Pat Hickey 2adfc4fbc5 AP_HAL Scheduler add method register_delay_callback (unimplemented) 2012-12-20 14:51:22 +11:00
Pat Hickey 1d89419059 AP_HAL: Scheduler should use stdint types, conform names 2012-12-20 14:51:22 +11:00
Pat Hickey 06441b4117 AP_HAL_AVR Dataflash implemented, tested for APM2
* Need to get my APM1 board from home to test it on there...
2012-12-20 14:51:21 +11:00
Pat Hickey 34ec5081e2 AP_HAL: Dataflash interface populated 2012-12-20 14:51:21 +11:00
Pat Hickey 3b697fe299 AP_HAL: rename Log to Dataflash
* I'd love to build a proper abstraction for logging, but I don't have the
  time to do so right now.
* The dataflash libs need to be pushed into the AP_HAL_AVR anyway, so I'll
  do that now and replace the interface with a better logging driver later.
2012-12-20 14:51:21 +11:00
Pat Hickey 5d2327f52f AP_HAL: Don't need a separate Console class, BetterStream will do. 2012-12-20 14:51:21 +11:00
Pat Hickey 261ef791a7 AP_HAL Storage: trivial interface and implementation wraps avr/eeprom funcs 2012-12-20 14:51:21 +11:00
Pat Hickey b0d8f43111 AP_HAL_AVR: Implemented SPIDriver based on Arduino, but it doesn't work yet
* I don't have an APM2.5 board I can easily connect a logic analyzer to see
  the traffic on the bus...
2012-12-20 14:51:21 +11:00
Pat Hickey 5445ad02f8 AP_HAL_AVR: RCOutput tested implementation for APM2 2012-12-20 14:51:21 +11:00
Pat Hickey acfbddef0d AP_HAL: proper RCOutput interface specification 2012-12-20 14:51:20 +11:00
Pat Hickey fb6abbe191 AP_HAL: proper RCInput interface specification 2012-12-20 14:51:20 +11:00
Pat Hickey db76562cd5 AP_HAL: global rename PPMInput -> RCInput, PWMOutput -> RCOutput
* for clarity. nobody cares that PPM/PWM is the implementation, and with
  sbus etc it might not be
2012-12-20 14:51:20 +11:00
Pat Hickey 46f31aa69c AP_HAL_AVR: Implement I2CDriver based on libraries/I2C
* Removed a ton of code we don't need from that driver, which should make
  writing new drivers easier.
2012-12-20 14:51:20 +11:00
Pat Hickey cae931a93a AP_HAL_AVR UARTDriver does basic hello world printing
* will import more complex tests next
2012-12-20 14:51:20 +11:00
Pat Hickey e9c5f07db2 AP_HAL: Working GPIO interface & implementation
* actually, tested the output only... gotta do input next
2012-12-20 14:51:20 +11:00
Pat Hickey ea8242ace1 AP_HAL: Add scheduler interface, move Arduino init code to implementation 2012-12-20 14:51:19 +11:00
Pat Hickey 18329b1a5d AP_HAL: add virtual init method to HAL class 2012-12-20 14:51:19 +11:00
Pat Hickey 8eb9b39a44 AP_HAL_AVR move library classes to their own AP_HAL_AVR namespace 2012-12-20 14:51:19 +11:00
Pat Hickey afd1f36400 AP_HAL: add BetterStream, Stream, and Print interfaces
* BetterStream Means AP_HAL depends on AP_Common, for now, in order to have
  the AVR specific pgm_char_t defined.
  I'll need to factor that out in the future but for now it can stay
2012-12-20 14:51:19 +11:00
Pat Hickey 29a425c0dd AP_HAL: import utility Print, Stream, and BetterStream headers 2012-12-20 14:51:18 +11:00
Pat Hickey dc03b1190f AP_HAL: Stub implementations of pure virtual AP_HAL classes 2012-12-20 14:51:18 +11:00