Commit Graph
33 Commits
Author SHA1 Message Date
Daniel Agar 01b3e6fd25 NuttX upgrade cmake wrapper (#7873)
* NuttX cmake

* px4_macros:Pass the stringified predicate as second arg to static assert

   CC_ASSERT mapes to the c++ static_assert or provides the same
   funtionality for c via the other macros. The c++ static assert
   takes 2 argumants the prdicate and a message. This fixes the
   lacking second argument.

* Updated nuttx and apps submodule to upstream nuttx 7.21+==master

   This is the latest uptake of upstream nuttx and apps.

* ROMFS generate with xxd instead of objcopy

* delete nuttx-patches

* NuttX update submodules to latest px4_nuttx-master

* fix nuttx apps and board dependency

* docker_run update to latest container 2017-08-29

* cmake ROMFS portable sed usage

* NuttX update submodules to latest px4_nuttx-master
2017-09-29 10:13:51 -04:00
David Sidrane 06b21b60de px4io-v1: Upstream NuttX up_cxxinitialize moved
was:<nuttx/arch.h> is:platform/cxxinitialize.h
   Removed PX4 version:src/modules/systemlib/up_cxxinitialize.c
   in favor of nuttx platform/gnu/gnu_cxxinitialize.c
2017-09-29 10:13:51 -04:00
David Sidrane 3ed5cedea3 px4io-v2 Remove GPIO_RC_OUT and vetted RC_IN wiring
Removed the legacy FMUv4 define that was activating a nonexistent
   pull up and on some HW driving the PPM_IN aka RC_IN aka SPEKTRUM_RX
   to VDD.

   Also detailed the connections of this pins for the board.

   The simplest connection is RC_IN to a timer capture pin
   and a UART.
   In this case the UART_RX pin and just be left as is.
   While the pin can be configured as the PPM_IN (Timer capture)
   or as SPEKTRUM_RX_AS_GPIO_OUTPUT to use it as and GPIO to

  Renamed the macros and defines to be more explicit as to what
  Is being done and the sense of the parameters
2017-03-30 16:19:26 -10:00
David Sidrane 8cdde42e32 px4io-v2:Fixed GPIO_PPM_IN definition 2017-03-23 08:33:03 +01:00
David Sidrane feda3e8c5c Changes to px4io-v2 for upstream Nuttx 2016-12-21 08:34:21 +01:00
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 7398164fcc Updated PX4 use / API of low level GPIO and other hardware-centric system facilities 2016-05-28 14:56:17 +02:00
Lorenz Meier 9c08872b61 IO: Initialize PWM pins to low state 2016-02-18 19:01:44 +01:00
David Sidrane 0bde2b6fa3 Fixed Channel mapping 2016-02-04 08:56:07 +01: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
David Sidrane 019e197714 Change pin init state to 1 to uses late pwm init with not pulses 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 7ed3fbb1bc Formatted IOv2 board config 2015-12-24 09:47:29 +01:00
Lorenz Meier 72eda2d7c9 IOv2: Add DSM controls 2015-12-24 09:47:29 +01:00
Lorenz Meier a5835bfb4f IOv2: Generalize board config 2015-12-24 09:47:29 +01:00
Lorenz Meier 83ed9e1096 Update IOv2 config 2015-11-28 09:13:15 +01:00
Lorenz Meier fa5071b3c5 Remove module.mk files to prevent confusion of adopters upgrading 2015-10-06 11:23:20 +02:00
Lorenz Meier 41f08f658d IO v2: Move to the same file locations as for IOv1 2015-10-03 17:24:47 +02:00
James Goppert 1d6b31d196 Switch to cmake build system. 2015-09-07 20:37:45 -04: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
Lorenz Meier 3d2a5bae51 Board drivers: Optimize for size 2014-11-15 13:51:16 +01:00
Lorenz Meier 2cadd45f30 Configure led ring and enable heartbeat on it 2014-11-02 10:13:11 +01:00
Lorenz Meier 5bc61c3c57 S.BUS output disable cleanup 2014-01-22 08:30:48 +01:00
Lorenz Meier 71b11d54e0 Configuring PX4IOv2 led pins 2014-01-16 20:13:35 +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 07fa4e3ec8 Removed bogus 50 MHz setting, only relevant for outputs 2014-01-02 17:26:57 +01:00
Lorenz Meier 445b9b2339 Final pin config for F1 PPM decoding, tested to be operational, pending in-application testing 2014-01-02 10:45:00 +01:00
Lorenz Meier 85651218e2 FMU-inspired PPM config 2014-01-02 10:22:00 +01:00
Jean Cyr 89d3e1db28 Implement Spektrum DSM pairing in V2
- Bind control for V2
- Relays and accessory power not supported on V2 hardware
2013-09-18 20:04:22 -04: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