1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-11-29 07:24:13 +01:00
LibrePilot/flight/UAVObjects
stac 083e2b01a9 uavobject: Use linker to produce uavobj initcalls
The UAVObject initcall list is now automatically
generated at link time based on the exact set of
UAVObjects linked into the firmware image.

This will allow any subset of UAVObjects to be
used in any firmware image.

The uavobj_initcall() macro automatically adds the
marked function's address into the .initcalluavobj.init
ELF section.

The UAVObjectsInitializeAll() function now simply
iterates over the functions listed in the
.initcalluavobj.init section and calls them.

You can see the contents of this section in the ELF file
like this:
  ./tools/arm-2009q3/bin/arm-none-eabi-objdump \
      --syms -j .initcalluavobj.init \
      ./build/openpilot/OpenPilot.elf

This is fundamentally the same mechanism that the Linux
kernel uses to initialize the specific set of components
that the user has selected in their kernel configuration.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2630 ebee16cc-31ac-478f-84a7-5cbb03baadba
2011-01-30 22:46:48 +00:00
..
inc OP-286 UAVObjectManager: Dont store pointer to initialize function for 2011-01-24 07:51:17 +00:00
eventdispatcher.c OP-273 - UAVTalk - prevent object update-bursts caused by involuntary synchronization in case of long delays or time-jumps 2011-01-16 15:28:49 +00:00
uavobjectmanager.c OP-286 UAVObjectManager memory usage: Since first element in linked list always 2011-01-24 07:51:20 +00:00
uavobjectsinit_cc.c CopterControl: reverting previous commit - doesn't work on windows due to command line length limitations 2011-01-29 16:15:16 +00:00
uavobjectsinittemplate.c uavobject: Use linker to produce uavobj initcalls 2011-01-30 22:46:48 +00:00
uavobjecttemplate.c uavobject: Use linker to produce uavobj initcalls 2011-01-30 22:46:48 +00:00