Lucas De Marchi
84f399ec3c
APMrover2: Start using new Functor implementation
...
It both reduces flash size and move symbols to read-only sections.
The scheduler_tasks table is one known not to be in read-only section before due
to the FastDelegate implementation. Before and after this patch:
APMrover2 $ size APMrover2.elf{.old,}
text data bss dec hex filename
611406 4832 40920 657158 a0706 APMrover2.elf.old
609686 4824 38936 653446 9f886 APMrover2.elf
APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
0000000000696f80 B Rover::scheduler_tasks
000000000047c440 R Rover::scheduler_tasks
As can be seen above, now the scheduler_tasks symbol is in a read-only data
section and in all of them we decreased the total size.
For APM2 we have a similar situation, but the table was already in text section
because it was using plain C pointers:
APMrover2 $ size APMrover2.elf{.old,}
text data bss dec hex filename
189518 1038 3494 194050 2f602 APMrover2.elf.old
189216 1038 3480 193734 2f4c6 APMrover2.elf
APMrover2 $ nm -C APMrover2.elf{.old,} |grep tasks
00001f92 T Rover::scheduler_tasks
00001f8a T Rover::scheduler_tasks
2015-05-26 13:46:55 +10:00
Lucas De Marchi
20ef7efaf6
AP_HAL: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:55 +10:00
Lucas De Marchi
7c4cf41ebc
ArduPlane: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
2f5314a1a6
APMrover2: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
c894a1349e
DataFlash: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
6ae2591cad
AP_Terrain: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
9764bb2452
AP_Notify: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:54 +10:00
Lucas De Marchi
3aa46e3213
AP_InertialSensor: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
4c97d92982
AP_HAL_Linux: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
9b7c1d8f93
AP_HAL_FLYMAPLE: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
dcf992b558
AP_HAL_AVR: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
435613de69
AP_Frsky_Telem: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:53 +10:00
Lucas De Marchi
95627cf412
AP_Compass: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
df5652fa87
AP_Baro: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
ca7db5cdc1
AP_Arming: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
cc1fbddc95
AP_Airspeed: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:52 +10:00
Lucas De Marchi
f7dc19554f
AP_ADC: use functor macros
...
Functor is not yet being used but let's make is macro fallback to the
previous Delegate implementation for easy of transition between the two.
2015-05-26 13:46:51 +10:00
Lucas De Marchi
e24c5349c8
APMrover2: cleanup in tabs and trailing whitespace
...
While doing other changes, fix the coding style of this file so the
commits are more readable.
2015-05-26 13:46:51 +10:00
Lucas De Marchi
9f0af5b9cb
AP_HAL: add fallback implementation of functor macros
2015-05-26 13:46:51 +10:00
Lucas De Marchi
83efb9280b
AP_HAL: use variadic templates in FastDelegate
...
Now that we are using C++11 we can use variadic templates to simplify
the FastDelegate classes. It also simplifies moving away from the
FastDelegate implementation.
2015-05-26 13:46:51 +10:00
Lucas De Marchi
78b00784fb
AP_Scheduler: allow to use functor
2015-05-26 13:46:50 +10:00
Lucas De Marchi
58847bffd6
GCS_MAVLink: allow to use functor
2015-05-26 13:46:50 +10:00
Lucas De Marchi
cd308b5e2f
DataFlash: allow to use functor
2015-05-26 13:46:50 +10:00
Lucas De Marchi
384a3bfcc3
AP_Mission: allow to use functor
2015-05-26 13:46:50 +10:00
Lucas De Marchi
70525fa2c1
AP_Menu: allow to use functor
2015-05-26 13:46:50 +10:00
Lucas De Marchi
4b5cf24a81
Allow to change to functor implementation
...
Start to add code behind APM_BUILD_FUNCTOR to support changing the
functor implementation (without breaking the build while the change is
not complete).
2015-05-26 13:46:49 +10:00
Lucas De Marchi
a1e1503e1a
AP_HAL: Add Functor implementation
...
This is a Functor implementation that should cover the use cases we have
for FastDelegate. In contrary to the latter, it can be constructed at
compile time so the compiler can safely put it in a read-only section
which covers the cases in which we are not using it.
2015-05-26 13:46:49 +10:00
Lucas De Marchi
5dfb3ed70c
AP_Scheduler: replace tabs with spaces
2015-05-26 13:46:49 +10:00
Lucas De Marchi
82d22992bd
GCS_MAVLink: Do not compare delegate to NULL
...
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:49 +10:00
Lucas De Marchi
ff398dbf0c
AP_Menu: Do not compare delegate to NULL
...
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:48 +10:00
Lucas De Marchi
acdcdc35fa
AP_HAL_SITL: Do not compare delegate to NULL
...
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:48 +10:00
Lucas De Marchi
9ef870c08a
AP_HAL_AVR: Do not compare delegate to NULL
...
Use the simpler "if (delegate_name)" since it allows simpler
implementation in the class, i.e. the bool operator rather than having
to compare to another object.
2015-05-26 13:46:48 +10:00
Lucas De Marchi
57386434d1
AP_ADC: remove AP_ADC_HIL
...
It's not being used and it's actually broken: it references
AP_ADC_HIL::read() that doesn't exist.
2015-05-26 13:46:48 +10:00
Lucas De Marchi
c423fb5f46
build: switch to c++11
2015-05-26 13:46:48 +10:00
Lucas De Marchi
58a3d70f8b
build: avr: Fix build with gcc > 4.8
...
Pass -fno-use-cxa-atexit as option to compiler so it's possible to build
with gcc newer than 4.8.
2015-05-26 13:46:47 +10:00
Andrew Tridgell
b40d8f94d6
build: removed .d dependency files in sketch directory on px4-cleandep
2015-05-26 13:46:02 +10:00
Andrew Tridgell
97687f04af
Plane: enable messages for MAVLink gimbal support
2015-05-26 08:30:30 +10:00
Andrew Tridgell
b1f7b80f7e
build: minimise the number of eval calls in build
2015-05-26 07:46:05 +10:00
Randy Mackay
d777166c6f
AP_MotorsTri: revert tail servo to Ch7
2015-05-25 22:27:38 +09:00
Randy Mackay
182db2ece0
Copter: remove unnecessary bracket
2015-05-25 22:13:51 +09:00
Randy Mackay
1a1fa7ca4b
AP_MotorsHeli: add comment to avoid param conflict
2015-05-25 22:13:49 +09:00
Randy Mackay
4c94a69e33
AP_MotorsCoax: resolve param conflict with TradHeli
2015-05-25 22:13:47 +09:00
Randy Mackay
78b49fb4c6
AP_MotorsSingle: resolve param conflict with TradHeli
...
Also rename servo reverse parameters to be consistent with tricopter
2015-05-25 22:13:45 +09:00
Randy Mackay
8dc7cf7fa8
AP_MotorsTri: YAW_SV_REV values -1 or +1
...
Also resolve parameter conflict with TradHeli
2015-05-25 22:13:43 +09:00
Randy Mackay
71e4bccecb
AP_Motors: init members in constructor
...
Also add f to end of float constants
2015-05-25 22:13:41 +09:00
Robert Lefebvre
8f275ca2c4
Copter: Employ heli_radio_passthrough() for servo setup
2015-05-25 22:13:39 +09:00
Robert Lefebvre
915236f1f5
AC_AttitudeControl: Non-functional comment change
...
Don't encourage future misuse of g.rc3
2015-05-25 22:13:37 +09:00
Robert Lefebvre
e87ca6de6f
AC_PosControl: Change motors.get_throttle_out
...
to get_throttle to follow function renaming in AP_Motors
2015-05-25 22:13:34 +09:00
Robert Lefebvre
b8181b6b90
AP_Motors: RCMAP fix
...
Remove all RC Input channels passed as reference into AP_Motors. All input handling self-contained inside AP_Motors.
Rework Tricopter to use internal servo calcs.
2015-05-25 22:13:32 +09:00
Robert Lefebvre
70a9a5699c
Copter: usage of rc_3.servo_out to use motors.get_throttle
...
servo_out is no longer a data holder for control functions
2015-05-25 22:13:30 +09:00