Commit Graph
73 Commits
Author SHA1 Message Date
Beat Küng b0439836f6 refactor drv_led.h: rename to drv_board_led.h
This makes it clear that it's used to control the board LED's, not external
LED's.
2017-03-12 00:08:35 +01:00
Beat Küng df8f0da70c param & param_shmem: enable locking
We need to protect access to the param_values array. This is dynamically
allocated and resized (utarray_reserve() calls realloc). If some thread
was iterating the array while another was resizing the array, the first one
would iterate on a freed array, thus accessing invalid memory.

On NuttX this could lead to hardfaults in rare conditions.

Unfortunately we need to initialize the semaphore on startup, by calling
sem_init(). This adds a param_init() method called by every board/config
that uses the params (at least I think I've found all of them)
2017-02-17 11:27:08 +01:00
David Sidrane d5059efdde px4fmu-v2 using board common mcu version api 2017-01-26 08:39:12 +01:00
David Sidrane 5ede0ace17 px4fmu-v2 using board common identity api 2017-01-25 07:43:11 +01:00
David Sidrane b01e03bf4f px4fmu-v2 use board common reset interface 2017-01-24 21:17:06 +01:00
David Sidrane 59ec0e8aef Make board_crashdump.c arch agnostic and move to common 2017-01-23 22:10:38 +01:00
José Roberto de Souza 163bcc4bbc drivers: boards: Share board_crashdump() implementation 2017-01-23 22:10:38 +01:00
David Sidrane edd0b46887 px4fmu-v2 Add PX4IO HW version 2017-01-21 11:45:36 +01:00
David Sidrane e0fa53f444 FMUV2 Moved magic numbers for battery V div and A per V to board_config.h 2017-01-21 11:45:36 +01:00
David Sidrane 62dee7d096 PX4FMUV2: moved GPIO defines to px4fmu-v2/board_config.h 2017-01-21 11:45:36 +01:00
Lorenz Meier 4ba12f71a0 FMUv2: Add missing headers 2016-12-27 21:00:51 +01:00
Beat Küng c662113527 board_name.c: remove the file and HW_ARCH macro, use px4_board_name() instead
boards define BOARD_NAME, so board_name() is not necessary. HW_ARCH was
just a wrapper around board_name().

This patch simplifies to having only one common method px4_board_name().
2016-12-21 11:35:10 +01:00
David Sidrane d9575964a4 Changes to px4fmu-v2 for upstream Nuttx and hardfault logging 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
David Sidrane 248cd45503 Added missig can_devinit prototype
The Nuttx CAN driver is not used with UAVCAN. However to
facilitate compilation to allow the Nuttx CAN Example to be
compiled and linked, the missing proto type was needed.

Futhermore to include the NuttX CAN eaxample the following changes
are needed:

1 ) In cmake/configs/<target>.cmake
Add can to config_extra_builtin_cmds as:

set(config_extra_builtin_cmds
        serdis
        sercon
        can
        )

Add:
add_custom_target(can)
set_target_properties(can PROPERTIES
       PRIORITY "SCHED_PRIORITY_DEFAULT"
       MAIN "can" STACK_MAIN "2048"
       COMPILE_FLAGS "-Os")

2) Update the nuttx-configs/<target>/nsh/defconfig

Run make oldconfig and make menuconfig and set the follwoing:
CONFIG_CAN=y
CONFIG_STM32_CAN1=y or CONFIG_STM32_CAN2=y
CONFIG_CAN_EXTID=y
CONFIG_CAN1_BAUD=250000
CONFIG_CAN_FIFOSIZE=8
CONFIG_CAN_NPENDINGRTR=4
CONFIG_EXAMPLES_CAN=y
2016-10-06 19:02:51 +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 ae5527fac7 FMUv2: Save 3KB of RAM 2016-06-01 17:12:34 +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
Daniel Agar 7b0078a20d bosch bmi160 driver (#4469) 2016-05-06 21:07:34 +02:00
Lorenz Meier e250d12184 Board drivers: Shorten perf names 2016-05-05 20:06:42 +02:00
Robert Dickenson 45a601b9c1 New driver for the LIS3MDL magnetometer. 2016-04-22 10:30:19 +02:00
Lorenz Meier ef69f74977 Do not use low level debug output on USB resume 2016-04-21 10:35:57 +02:00
Lorenz Meier ed134da8e0 FMUv2: Initialize PWM pins to low state 2016-02-18 19:01:44 +01:00
Lorenz Meier f2a6645cc9 FMUv2: Do not mess with GPIO5 during startup 2016-02-01 10:10:35 +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
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 e663b60c69 FMUv2: Add baro SPI bus define 2016-01-15 22:34:09 +01:00
Lorenz Meier 9a1301dd96 FMUv2: Generalize board config 2015-12-24 09:47:29 +01:00
Lorenz Meier 57ce3cfd01 FMUv2: Remove unneeded code 2015-11-29 17:03:19 +01:00
David Sidrane f3b7585a89 Wip FMUV3 2015-11-28 09:13:15 +01:00
Karl Schwabe 48c467f602 Remove CONFIG_ARCH_BOARD #ifdef dependencies from mtd
Since mtd already checks whether CONFIG_MTD_RAMTRON is set in
defconfig use this define to check whether to call ramtron_attach()
or at24xxx_attach() in the main function, instead of checking
CONFIG_ARCH_BOARD_PX4FMU-V1.

Also instead of using #ifdef CONFIG_ARCH_BOARD_AEROCORE to determine
whether to start mtd on spi 2 or 4, rather use a new board define
PX4_SPI_BUS_RAMTRON in the board_config.h file.
2015-11-13 16:30:57 +01:00
Lorenz Meier 50ce08b3ee FMUv2: Fix formatting 2015-10-19 13:24:44 +02:00
Lorenz Meier fa5071b3c5 Remove module.mk files to prevent confusion of adopters upgrading 2015-10-06 11:23:20 +02:00
James Goppert e55af00222 Removed weak attributes. 2015-09-13 14:40:27 -04:00
James Goppert 34eeee9fa9 Added defautl config for nuttx, nuttx now works over usb. 2015-09-10 13:57:54 -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
Ban Siesta bd48ef0386 Merge remote-tracking branch 'px4/pr/2196' into lidar_tests 2015-05-24 09:40:03 +01:00
Max Shvetsov dbe58d6165 [pwm_input] reset feature added
publication to range_finder topic added
2015-05-19 12:40:42 +03: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 c2abb0f82a fix code style if trivial one line difference 2015-03-19 23:49:36 +01:00
Andrew Tridgell 322392d853 fmuv2: setup for PWM input on timer4, channel 2 2015-02-23 19:52:38 +01:00
Lorenz Meier da977bb39b Added HMC chip select support 2014-12-26 19:55:58 +01:00
Lorenz Meier 3d2a5bae51 Board drivers: Optimize for size 2014-11-15 13:51:16 +01:00
Lorenz Meier 4bfa30bfd6 FMUv2: Add missing declarations. 2014-10-09 11:14:13 +02:00