Commit Graph
36 Commits
Author SHA1 Message Date
Carlo Wood 90f3e3b5d3 Do not include headers inside __BEGIN_DECLS ... __END_DECLS blocks.
We don't have C++ unsafe headers (anymore).

I added a test to fix_headers.sh that checks if certain "unsafe"
headers are ONLY included inside a __BEGIN_DECLS ... __END_DECLS
(because after all, they are unsafe), as well as checking that
no other header files are included inside such a block. The rationale
of the latter is that if a file is a C header and it declares
function prototypes (otherwise it doesn't matter) and is sometimes
included outside a __BEGIN_DECLS ... __END_DECLS block (from a C++
source file) then it has to be C++ safe and doesn't ever to be
included from inside such a block; while if a file is a C++ header
then obviously it should never be included from such a block.

fix_headers.sh subsequently found several safe headers to be
included from inside such a block, and those that were (apparently
in the past) unsafe were included only sometimes inside such a
block and often outside it. I had a look at those files and saw
that at least an attempt has been made to make them C++ safe,
but especially because they already are included OFTEN outside
a __BEGIN_DECLS ... __END_DECLS (from C++ source files) the
best decision seems to treat them as safe.

This is not risky: .c files that define such functions still
generate C-linkage for their functions. If a C++ unsafe C header
is included outside a __BEGIN_DECLS ... __END_DECLS block then
the only possible result would be an undefined reference to
a function with C++-linkage that will not exist. Aka, when
something links after this commit, then the commit was correct.
I did build all targets and they all linked.
2016-10-28 11:57:08 +02:00
Julian Oes 8ff237c69f Remove size optimization for individual modules
It makes more sense to set the optimization flags on a platform basis
instead of individually for each module. This allows for different
optimization options for SITL, NuttX, Snapdragon, etc.
2016-09-30 08:11:51 +02:00
Lorenz Meier 8f4ca16bae FMUv1: Fix board config 2016-06-01 17:12:02 +02:00
David Sidrane b54ec99d22 Move the DMA allocation to a common code and provide an instrumentation interface 2016-06-01 08:35:34 +02:00
Lorenz Meier 7398164fcc Updated PX4 use / API of low level GPIO and other hardware-centric system facilities 2016-05-28 14:56:17 +02:00
David Sidrane 1b77ec7f82 Decouple board name 2016-05-21 10:48:15 +02:00
Lorenz Meier ef69f74977 Do not use low level debug output on USB resume 2016-04-21 10:35:57 +02:00
David Sidrane 2949578832 Renamed pwm_timers to more appropriate io timers for use in pwm in/out and capture 2016-02-01 10:10:34 +01:00
Andrew Tridgell b8a60f2501 pwm: change default_value for all boards from 1000 to 0
the value '1000' is not really magic, and it was resulting in sending
a single 1ms pulse on all IO channels for a brief instant on
startup. With some servos this led to the control surfaces being at
extremes (and straining) on startup. It may also contribute to making
ESC calibration harder on multi-rotors

In the worst case it could cause a IC motor with reverse throttle to
go full throttle on startup

A logic analyser shows the problem very clearly. Changing the
default_value fields to 0 from 1000 fixes the issue and no pulses are
generated until an explicit value suitable for the airframe is
provided via one of the many methods PWM output values can be
generated

Conflicts:
	src/drivers/boards/px4fmu-v4/px4fmu_pwm_servo.c
	src/lib/ecl
2016-01-29 08:57:20 +01:00
Lorenz Meier 1426779572 FMUv1: Generalize board config 2015-12-24 09:47:29 +01:00
Lorenz Meier f8ccac69bc FMUv1: Remove unneeded code 2015-11-29 17:03:06 +01:00
Lorenz Meier 6be4a70fc3 FMUv1: Fix formatting 2015-10-19 13:24:36 +02:00
Lorenz Meier fa5071b3c5 Remove module.mk files to prevent confusion of adopters upgrading 2015-10-06 11:23:20 +02:00
Lorenz Meier d656aeb14f FMUv1: Math exception hackery 2015-10-03 17:26:23 +02:00
James Goppert e55af00222 Removed weak attributes. 2015-09-13 14:40:27 -04:00
James Goppert 1d6b31d196 Switch to cmake build system. 2015-09-07 20:37:45 -04:00
ksschwabe e1572d3942 Moved ADC channel defines for battery voltage, battery current, and airspeed voltage to board_config.h. This allows better portabilit of code from one board to another, since it removes the hardcoded #ifdef sections from the Px4 sensors code. 2015-07-17 14:09:52 +02:00
ksschwabe b528e1f593 Added ADC channel definitions to the board_config.h file. This way new boards with different ADC channel sets can still use the Px4 adc.c driver. 2015-07-10 17:03:22 +02:00
Mark Charlebois 190814bc97 Merge remote-tracking branch 'upstream/master' into linux
Signed-off-by: Mark Charlebois <charlebm@gmail.com>

Conflicts:
	src/drivers/rgbled/rgbled.cpp
	src/modules/commander/PreflightCheck.cpp
	src/modules/commander/airspeed_calibration.cpp
	src/modules/commander/calibration_routines.cpp
	src/modules/commander/gyro_calibration.cpp
	src/modules/commander/mag_calibration.cpp
	src/modules/mc_att_control/mc_att_control_main.cpp
2015-04-28 11:48:26 -07:00
Lorenz Meier 3c76006541 Board drivers: Only print if init fails 2015-04-27 09:07:52 +02:00
Mark Charlebois 9758112e31 Use px4_config.h instead of nuttx/config.h
Modified code to use OS independent header file for config settings.

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
2015-04-20 10:55:41 -07:00
Daniel Agar 8aae66b893 trivial code style cleanup round 2 2015-03-27 23:38:58 -04:00
Daniel Agar c2abb0f82a fix code style if trivial one line difference 2015-03-19 23:49:36 +01:00
Andrew Tridgell 2f25469bbe px4fmu-v1: removed baro I2C address in board_config.h
the ms5611 can be on two addresses. The driver handles this, not the
board config
2015-02-01 13:09:55 +01:00
Lorenz Meier 3d2a5bae51 Board drivers: Optimize for size 2014-11-15 13:51:16 +01:00
Lorenz Meier c3e25377d7 FMUv1: Add missing declarations. 2014-10-09 11:13:55 +02:00
Lorenz Meier 369c7d277f Board config cleanup for external bus support 2014-07-08 13:50:00 +02:00
Lorenz Meier 35cd487a42 drivers: Warning fixes 2014-06-30 12:20:02 +02:00
Lorenz Meier 366e9c633d FMUv1 board prettifying 2014-05-28 10:49:02 +02:00
Ash Charles e5508a1aa0 Add Gumstix AeroCore device
Based on the work of Andrew Smith [1], add board configuration and device
drivers to support the Gumstix AeroCore (previously Aerodroid) board [2]. The
AeroCore is an autopilot board based on a STM32F427 similar to the FMUv2.

[1] https://github.com/smithandrewc/Firmware
[2] https://store.gumstix.com/index.php/products/585/

Signed-off-by: Ash Charles <ashcharles@gmail.com>
2014-05-13 09:41:41 -07:00
Lorenz Meier 72b9d3a0b1 Added unique ID location 2014-01-07 21:42:17 +01:00
Lorenz Meier c11e36ad3d Board config sweep / cleanup. No further functionality-relevant points found 2014-01-02 17:42:01 +01:00
Lorenz Meier c63995e91c Hotfix: Be more aggressive about SPI2 init on v1 boards 2013-11-08 14:22:27 +01:00
Lorenz Meier b71c0c1f49 Added support for FMUv1 for RGB led and dim led support 2013-08-17 15:46:13 +02:00
Julian Oes 0c4e3dce0e Added LED_TOGGLE for normal LEDs 2013-08-15 17:34:49 +02:00
px4dev 9d6ec6b365 Restructure things so that the PX4 configs move out of the NuttX tree, and most of the PX4-specific board configuration data moves out of the config and into the board driver.
Rename some directories that got left behind in the great board renaming.
2013-08-02 22:34:55 -07:00