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: ArduPlane $ size ArduPlane.elf{.old,} text data bss dec hex filename 733368 8252 67352 808972 c580c ArduPlane.elf.old 730632 8236 64792 803660 c434c ArduPlane.elf ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks 0000000000402800 t _GLOBAL__sub_I__ZN5Plane15scheduler_tasksE 00000000006b54c0 B Plane::scheduler_tasks ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks 0000000000490900 R Plane::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 little increase in the text size size. ArduPlane $ size ArduPlane.elf{.old,} text data bss dec hex filename 241940 942 4447 247329 3c621 ArduPlane.elf.old 242222 942 4431 247595 3c72b ArduPlane.elf ArduPlane $ nm -C ArduPlane.elf.old|grep scheduler_tasks 00001f8f T Plane::scheduler_tasks ArduPlane $ nm -C ArduPlane.elf|grep scheduler_tasks 00001f8f T Plane::scheduler_tasks |
||
---|---|---|
.. | ||
AP_Vehicle_Type.h | ||
AP_Vehicle.h |