mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-29 14:52:12 +01:00
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
Description
The LibrePilot open source project was founded in July 2015. It focuses on research and development of software and hardware to be used in a variety of applications including vehicle control and stabilization, unmanned autonomous vehicles and robotics.
Languages
C
60.6%
C++
30.8%
Fortran
2.6%
Rich Text Format
1.3%
Assembly
1.2%
Other
3.1%