mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-01-18 03:52:11 +01:00
083e2b01a9
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
122 lines
3.0 KiB
C
122 lines
3.0 KiB
C
/**
|
|
******************************************************************************
|
|
*
|
|
* @file pios.h
|
|
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
|
|
* @brief Main PiOS header.
|
|
* - Central header for the project.
|
|
* @see The GNU Public License (GPL) Version 3
|
|
*
|
|
*****************************************************************************/
|
|
/*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
|
|
#ifndef PIOS_H
|
|
#define PIOS_H
|
|
|
|
/* PIOS Feature Selection */
|
|
#include "pios_config.h"
|
|
|
|
#if defined(PIOS_INCLUDE_FREERTOS)
|
|
/* FreeRTOS Includes */
|
|
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
#include "queue.h"
|
|
#include "semphr.h"
|
|
#endif
|
|
|
|
/* C Lib Includes */
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
|
|
/* STM32 Std Perf Lib */
|
|
#include <stm32f10x.h>
|
|
#include <stm32f10x_conf.h>
|
|
|
|
#if defined(PIOS_INCLUDE_SDCARD)
|
|
/* Dosfs Includes */
|
|
#include <dosfs.h>
|
|
|
|
/* Mass Storage Device Includes */
|
|
#include <msd.h>
|
|
#endif
|
|
|
|
/* Generic initcall infrastructure */
|
|
#include "pios_initcall.h"
|
|
|
|
/* PIOS Board Specific Device Configuration */
|
|
#include "pios_board.h"
|
|
|
|
/* PIOS Hardware Includes (STM32F10x) */
|
|
#include <pios_sys.h>
|
|
#include <pios_delay.h>
|
|
#include <pios_led.h>
|
|
#include <pios_sdcard.h>
|
|
#include <pios_usart.h>
|
|
#include <pios_irq.h>
|
|
#include <pios_adc.h>
|
|
#include <pios_servo.h>
|
|
#include <pios_i2c.h>
|
|
#include <pios_spi.h>
|
|
#include <pios_ppm.h>
|
|
#include <pios_pwm.h>
|
|
#include <pios_spektrum.h>
|
|
#include <pios_usb_hid.h>
|
|
#include <pios_debug.h>
|
|
#include <pios_gpio.h>
|
|
#if defined(PIOS_INCLUDE_EXTI)
|
|
#include <pios_exti.h>
|
|
#endif
|
|
#include <pios_wdg.h>
|
|
|
|
/* PIOS Hardware Includes (Common) */
|
|
#include <pios_sdcard.h>
|
|
#include <pios_com.h>
|
|
#if defined(PIOS_INCLUDE_BMP085)
|
|
#include <pios_bmp085.h>
|
|
#endif
|
|
#if defined(PIOS_INCLUDE_HCSR04)
|
|
#include <pios_hcsr04.h>
|
|
#endif
|
|
#if defined(PIOS_INCLUDE_HMC5843)
|
|
#include <pios_hmc5843.h>
|
|
#endif
|
|
#if defined(PIOS_INCLUDE_I2C_ESC)
|
|
#include <pios_i2c_esc.h>
|
|
#endif
|
|
#include <pios_iap.h>
|
|
|
|
#if defined(PIOS_INCLUDE_ADXL345)
|
|
#include <pios_adxl345.h>
|
|
#endif
|
|
|
|
#if defined(PIOS_INCLUDE_BL_HELPER)
|
|
#include <pios_bl_helper.h>
|
|
#endif
|
|
|
|
#if defined(PIOS_INCLUDE_USB)
|
|
/* USB Libs */
|
|
#include <usb_lib.h>
|
|
#endif
|
|
|
|
#define NELEMENTS(x) (sizeof(x) / sizeof(*(x)))
|
|
|
|
#endif /* PIOS_H */
|