ardupilot/libraries/AP_HAL
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
..
examples AP_HAL: fix example sketches 2015-05-12 14:42:15 +09:00
utility AP_HAL: use variadic templates in FastDelegate 2015-05-26 13:46:51 +10:00
AnalogIn.h AP_HAL: added servorail_voltage and power_status_flags() API on AnalogIn 2014-02-15 05:00:09 +11:00
AP_HAL_Boards.h AP_HAL: added HAL_OS_SOCKETS define 2015-05-05 21:34:19 +10:00
AP_HAL_Macros.h AP_HAL: added AP_HAL_Macros.h 2013-01-16 09:12:55 +11:00
AP_HAL_Namespace.h APMrover2: Start using new Functor implementation 2015-05-26 13:46:55 +10:00
AP_HAL.h AP_HAL: removed separate Console class 2013-10-05 18:32:00 +10:00
GPIO.h AP_HAL: added HAL_ prefix to GPIO_ defines 2014-06-02 09:24:52 +10:00
HAL.h AP_HAL: support uartE 2014-02-26 08:18:20 +11:00
I2CDriver.h AP_HAL: fixed I2C build on APM2 2014-07-14 09:44:35 +10:00
RCInput.h AP_HAL: changed semantics of RCInput.new_input() 2015-02-09 10:39:05 +11:00
RCOutput.h AP_HAL: added set_esc_scaling() RCOutput function 2014-11-26 11:14:44 +11:00
Scheduler.h AP_HAL: support micros64() and millis64() on all platforms 2015-04-30 12:17:34 +10:00
Semaphores.h AP_HAL: mark semaphore take operations as WARN_IF_UNUSED 2013-01-09 20:42:02 +11:00
SPIDriver.h AP_HAL: added an optional spi.set_bus_speed() API 2013-10-13 11:03:04 +09:00
Storage.h AP_HAL: removed old storage type read/write functions 2014-08-13 18:46:44 +10:00
UARTDriver.cpp AP_HAL: implement betterstream functions in AP_HAL 2013-09-22 12:20:59 +10:00
UARTDriver.h AP_HAL: create a common utility/RingBuffer.h header 2015-01-07 08:41:14 +11:00
Util.cpp AP_HAL: require a buffer write() function in all ports 2013-10-03 12:21:07 +10:00
Util.h AP_HAL: add soft_armed state to hal.util 2015-02-11 20:25:10 +11:00