Commit Graph

21147 Commits

Author SHA1 Message Date
Lucas De Marchi c5dc54dac7 AP_HAL: utility: import sparse-endian header 2016-03-23 17:50:38 -03:00
Lucas De Marchi 0ed3a93142 AP_HAL: define compass locations for linux boards 2016-03-23 17:50:38 -03:00
Gustavo Jose de Sousa 6e658452ec waf: toolchain: filter supported compilers for cross-compilation
We currently only support GNU and clang compilers.
2016-03-23 17:11:02 -03:00
Gustavo Jose de Sousa 1b6a87d8b4 waf: toolchain: clang: use waf to find toolchain path
The find_realexec_path function was used for finding the toolchain path mostly
because of two reasons:

 1) We couldn't really use CXX or CC variables because the user could set those
 from the OS's environment and Waf wouldn't look for the executable file in
 that case.

 2) Our CI configuration sets up symlinks for ccache and find_realexec_path
 works around that issue.

The bad side about using find_realexec_path() is that, besides working aroung
symlinks, it does the same thing that is done by Waf. This patch removes the
dependency for such a function by addressing each of the reasons above stated:

 1) We create a local copy of os.environ and, if there's a variable with the
 same name we are using, we remove it from the local copy.

 2) As done before, we are looking for the cross ar program instead of gcc
 program, since that is not used for ccache symlinks.
2016-03-23 17:11:02 -03:00
Gustavo Jose de Sousa 019cf3d483 waf: toolchain: clang: use configure wrapper
This is a better approach than checking command line options
--check-cxx-compiler and --check-c-compiler. Those values expect a list of
compilers to try instead of the compiler to use.

The benefits of this approach are:
 - Allowing correct use of options --check-cxx-compiler and --check-c-compiler.
 - Allowing user to pass CXX and CC environment variables, which is a common
   way of selecting the compiler.
 - Configuration is done *and committed* only for the specific compiler.
2016-03-23 17:11:02 -03:00
Gustavo Jose de Sousa 7ede9600db waf: toolchain: gcc: use cross-compilation prefix wrapper
This is a better approach than checking command line options
--check-cxx-compiler and --check-c-compiler. Those values expect a list of
compilers to try instead of the compiler to use.

The benefits of this approach are:
 - Allowing correct use of options --check-cxx-compiler and --check-c-compiler.
 - Allowing user to pass CXX and CC environment variables, which is a common
   way of selecting the compiler.
 - Configuration is done *and committed* only for the specific compiler.
2016-03-23 17:11:02 -03:00
Gustavo Jose de Sousa 95aeb0346e waf: load compilers tools in toolchain tool
It makes more sense the toolchain Waf tool to be responsible of loading the
compilers. Furthermore, that allows toolchain tool to have control on doing
configuration before and after loading compiler tools.
2016-03-23 17:11:02 -03:00
Gustavo Jose de Sousa 19d6a88e84 waf: toolchain: refactor configure function
- Use early return and reduce one indentation level.
- Set AR for both GNU compilers and clang just once and reduce redundancy.
- Reduce indentation level for clang-specific setup. There's no need to nest it
  inside check if compilers are GNU or clang.
2016-03-23 17:11:02 -03:00
Gustavo Jose de Sousa ceda86bbd8 waf: toolchain: get rid of suffixes variable
The only variables used so far are CXX, CC and AR. Let's make it
simpler.
2016-03-23 17:05:33 -03:00
Gustavo Jose de Sousa dbd27a9f39 waf: update submodule
Cherry-pick the upstream commit:

f556c6e "Add commit() method to ConfigSet"

That will be used for transactionally loading compiler-specific tools for
cross-compilation configuration.
2016-03-23 17:05:22 -03:00
ashwinvasudevan e33812e1cb AP_InertialSensor: added missing brackets 2016-03-23 17:46:41 +09:00
Peter Barker 14b51080a9 Tools: remove erroneous space in rst output 2016-03-22 18:31:05 +11:00
Randy Mackay a8bea0af03 Copter: allow switching to throw without position estimate
The vehicle arming check will still stop the user from arming in throw mode without a good position estimate.
2016-03-22 16:21:58 +09:00
Peter Barker 9f9e3843e0 Tools: formatting changes for rst parameter file 2016-03-21 20:56:49 +11:00
Nitay Megides f77eed8f95 Copter: add break after prec landing case clause
(And fixed indentation)
2016-03-21 09:34:55 +09:00
Andrew Tridgell 0442c2c659 Plane: prepare for 3.5.1 release 2016-03-21 09:44:52 +11:00
Francisco Ferreira 4643c7bf9e travis: add Clang builds
PX4 isn't supported at the moment and sitltest always use GCC, so we include the only ones that build
Travis has old LLVM installed and old Clang in a strange path (not a package) which interfere with the use of clang-3.7
2016-03-20 00:17:02 -03:00
Francisco Ferreira dd93f62bdd ci: fix PATH export 2016-03-20 00:17:02 -03:00
Francisco Ferreira 34de26502d ci: add Clang package
Use flags to tell Waf what compiler to use
Don't use Make build system if compiler is Clang
2016-03-20 00:17:02 -03:00
Lucas De Marchi 72b246e52c AP_HAL_Linux: fix use of 0-length array
0-length arrays are supported in C but forbidden in C++. GCC allows it
but clang is more strict:

../../libraries/AP_HAL_Linux/SPIDriver.cpp:75:35: fatal error: no matching constructor for initialization of 'Linux::SPIDeviceDriver [0]'
SPIDeviceDriver SPIDeviceManager::_device[0];
                                  ^
../../libraries/AP_HAL_Linux/SPIDriver.h:20:7: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 0 were provided
class SPIDeviceDriver : public AP_HAL::SPIDeviceDriver {
      ^
../../libraries/AP_HAL_Linux/SPIDriver.h:20:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
../../libraries/AP_HAL_Linux/SPIDriver.h:25:5: note: candidate constructor not viable: requires 9 arguments, but 0 were provided
    SPIDeviceDriver(const char *name, uint16_t bus, uint16_t subdev, enum AP_HAL::SPIDeviceType type, uint8_t mode, uint8_t bitsPerWord, int16_t cs_pin, uint32_t lowspeed, uint32_t highspeed);
    ^
1 error generated.
2016-03-20 00:17:02 -03:00
Francisco Ferreira 02af9b6ab1 waf: toolchain: support Clang in toolchain for cross-compilation
Define function to help find the toolchain path
2016-03-20 00:17:02 -03:00
Francisco Ferreira a8aae048c2 waf: boards: change toolchain to a board class attribute 2016-03-20 00:17:02 -03:00
Francisco Ferreira f8727f7362 waf: boards: fix bug in boards environment merge 2016-03-20 00:17:02 -03:00
Francisco Ferreira bf3dda9156 waf: boards: support Clang by adding necessary flags
Don't add unsupported flag when compiler is Clang
2016-03-20 00:17:02 -03:00
Francisco Ferreira 3b3d59efd1 waf: boards: load toolchain and compiler before configuring env 2016-03-20 00:17:02 -03:00
Andrew Tridgell da2a71a3de AP_BoardConfig: raise uavcan startup delay to 2s 2016-03-19 21:18:05 +11:00
Lucas De Marchi abbe419823 AP_Compass: fix mismatched tag
In file included from /home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/Compass.h:6:
/home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/CompassCalibrator.h:86:5: warning: struct 'param_t' was previously declared as a class [-Wmismatched-tags]
    struct param_t _params;
    ^
/home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/CompassCalibrator.h:44:11: note: previous use is here
    class param_t {
          ^
/home/lucas/p/dronecode/ardupilot/libraries/AP_Compass/CompassCalibrator.h:86:5: note: did you mean class here?
    struct param_t _params;
    ^~~~~~
2016-03-18 22:39:39 -03:00
Lucas De Marchi d5d6a10e63 AP_Compass: LSM303D now is part of LSM9DS0 2016-03-18 21:51:37 -03:00
Lucas De Marchi a671b7f5b2 AP_Compass: remove misleading message
Not having data ready during initialization is normal. Don't print error
message since it can mislead people to think the compass was not
initialized successfully.
2016-03-18 21:51:37 -03:00
raspilot 1d1d224c18 AP_InertialSensor: Enable dual IMU for raspilot 2016-03-18 21:51:37 -03:00
raspilot 9d787e44cc AP_HAL_Linux: update spi table for raspilot 2016-03-18 21:51:37 -03:00
Lucas De Marchi c5022ef5c9 AP_HAL: add names for LSM9DS0 on raspilot 2016-03-18 21:51:37 -03:00
Lucas De Marchi f75c12f57c AP_InertialSensor: LSM9DS0: change mode of drdy pins to input 2016-03-18 21:51:37 -03:00
raspilot c83e4df002 AP_InertialSensor: LSM9DS0: Disable I2C at init to avoid SDA hanging by slave. 2016-03-18 21:51:37 -03:00
raspilot 557beb4bb1 AP_InertialSensor: LSM9DS0: Fixed wrong call to _register_read_xm() 2016-03-18 21:51:37 -03:00
Lucas De Marchi c1623c21cc AP_HAL_Linux: rename ToneAlarmDriver to follow other names
We don't add "Driver" to the name of the files anymore.
2016-03-18 21:51:37 -03:00
Lucas De Marchi d52ee7c0a1 AP_HAL_Linux: ToneAlarmDriver_Raspilot: cleanup driver
- Fix coding style
  - Remove unused variables and members
  - Add virtual as needed and override where needed
2016-03-18 21:51:36 -03:00
Pritam Ghanghas 6de5b52974 AP_HAL_Linux: separate class for tone alarm driver 2016-03-18 21:51:36 -03:00
Michael Oborne 92106a944f AP_GPS_UBLOX: add data injection support 2016-03-18 15:51:32 +11:00
Andrew Tridgell f0eddd6366 Plane: ensure we always eventually capture a loiter 2016-03-18 13:47:45 +11:00
Andrew Tridgell eb89b5bbb6 AP_L1_Control: prevent possibly fly-away when passed waypoint in L1
if the top level controller doesn't consider a waypoint complete when
we are passed next_WP then it would keep flying away from the line
segment. This doesn't happen with the current master code, but we want
to ensure it is handled
2016-03-18 13:47:44 +11:00
Andrew Tridgell 7d92202db9 AP_Param: save flash space for parameter strings
now that we no longer need AVR support we can use nul terminated
strings for parameter names, saving a couple of k of flash space
2016-03-18 13:03:18 +11:00
Andrew Tridgell 30ca9fbb01 Plane: cope with upgrade to shifted indexes for quadplane 2016-03-18 12:33:58 +11:00
Andrew Tridgell 692e042eac AP_Arming: set AP_PARAM_NO_SHIFT 2016-03-18 12:33:45 +11:00
Andrew Tridgell 4deb01b8d5 RC_Channel: set AP_PARAM_NO_SHIFT 2016-03-18 12:33:34 +11:00
Andrew Tridgell 018c7425a4 AP_Param: added AP_PARAM_NO_SHIFT
used for cases where we know the shift is not needed
2016-03-18 12:33:16 +11:00
Andrew Tridgell 1d42b0281a SITL: ADSB: fixed heading and fixed windows startup 2016-03-18 11:18:19 +11:00
Andrew Tridgell 71b6d3e33d AP_Param: add in nested group offset in load for conversion 2016-03-18 10:04:56 +11:00
Randy Mackay c15fa950c0 AP_Param: convert_old_parameter becomes public and accepts scaling 2016-03-18 10:04:55 +11:00
Andrew Tridgell 12067b27b3 AP_Param: cope with multi-level nesting and zero-idx
this copes properly with multi-level nesting of groups, and fixes an
issue with an idx of zero in nested groups
2016-03-18 10:04:55 +11:00