/** ****************************************************************************** * @file pios.h * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010-2013 * @author PhoenixPilot, http://github.com/PhoenixPilot, Copyright (C) 2012 * @brief Main PiOS header. * @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 */ /* * To add new PIOS options, drivers or functions please insert their * includes below into a corresponding group. If new driver has optional * features, add them as comments before including the driver header. * Finally update all pios_config.h files for every board in the same order * as in this file. Include new definition and all options, but comment * out unused ones. */ #ifndef PIOS_H #define PIOS_H #include #include #include #ifdef USE_SIM_POSIX /* SimPosix version of this file. This will probably be removed later */ #include #else /* C Lib includes */ #include #include #include #include #include #include /* STM32 Std Peripherals Lib */ #if defined(STM32F10X) #include #elif defined(STM32F4XX) #include #include #elif defined(STM32F0) #include #else #error "No Architecture defined" #endif /* PIOS board specific feature selection */ #include "pios_config.h" /* PIOS board specific device configuration */ #include "pios_board.h" /* PIOS debug interface */ /* #define PIOS_INCLUDE_DEBUG_CONSOLE */ /* #define DEBUG_LEVEL 0 */ /* #define PIOS_ENABLE_DEBUG_PINS */ #include #include /* PIOS common functions */ #include /* PIOS FreeRTOS support */ #ifdef PIOS_INCLUDE_FREERTOS #include "FreeRTOS.h" #include "task.h" #include "queue.h" #include "semphr.h" #endif #include #include #include #ifdef PIOS_INCLUDE_TASK_MONITOR #ifndef PIOS_INCLUDE_FREERTOS #error PiOS Task Monitor requires PIOS_INCLUDE_FREERTOS to be defined #endif #include #endif /* PIOS CallbackScheduler */ #ifdef PIOS_INCLUDE_CALLBACKSCHEDULER #ifndef PIOS_INCLUDE_FREERTOS #error PiOS CallbackScheduler requires PIOS_INCLUDE_FREERTOS to be defined #endif #include #endif /* PIOS bootloader helper */ #ifdef PIOS_INCLUDE_BL_HELPER /* #define PIOS_INCLUDE_BL_HELPER_WRITE_SUPPORT */ #include #endif /* PIOS system functions */ #ifdef PIOS_INCLUDE_DELAY #include #include #endif #ifdef PIOS_INCLUDE_INITCALL #include "pios_initcall.h" #endif #ifdef PIOS_INCLUDE_SYS #include #endif /* PIOS hardware peripherals */ #ifdef PIOS_INCLUDE_IRQ #include #endif #ifdef PIOS_INCLUDE_RTC #include #endif #ifdef PIOS_INCLUDE_TIM #include #endif #ifdef PIOS_INCLUDE_USART #include #endif #ifdef PIOS_INCLUDE_ADC #include #endif #ifdef PIOS_INCLUDE_I2C #include #endif #ifdef PIOS_INCLUDE_SPI #include #endif #ifdef PIOS_INCLUDE_GPIO #include #endif #ifdef PIOS_INCLUDE_EXTI #include #endif #ifdef PIOS_INCLUDE_WDG #include #endif /* PIOS USB functions */ #ifdef PIOS_INCLUDE_USB /* #define PIOS_INCLUDE_USB_HID */ /* #define PIOS_INCLUDE_USB_CDC */ /* #define PIOS_INCLUDE_USB_RCTX */ #include #ifdef PIOS_INCLUDE_USB_HID #include #endif #ifdef PIOS_INCLUDE_USB_RCTX #include #endif #endif /* PIOS sensor interfaces */ #ifdef PIOS_INCLUDE_ADXL345 /* ADXL345 3-Axis Accelerometer */ #include #endif #ifdef PIOS_INCLUDE_BMA180 /* BMA180 3-Axis Accelerometer */ #include #endif #ifdef PIOS_INCLUDE_L3GD20 /* L3GD20 3-Axis Gyro */ #include #endif #ifdef PIOS_INCLUDE_MPU6000 /* MPU6000 3-Axis Gyro/Accelerometer */ /* #define PIOS_MPU6000_ACCEL */ #include #endif #ifdef PIOS_INCLUDE_HMC5843 /* HMC5843 3-Axis Digital Compass */ #include #endif #ifdef PIOS_INCLUDE_HMC5X83 /* HMC5883/HMC5983 3-Axis Digital Compass */ /* #define PIOS_HMC5x83_HAS_GPIOS */ #include #endif #ifdef PIOS_INCLUDE_BMP085 /* BMP085 Barometric Pressure Sensor */ #include #endif #ifdef PIOS_INCLUDE_MS5611 /* MS5611 Barometric Pressure Sensor */ #include #endif #ifdef PIOS_INCLUDE_MPXV /* MPXV5004, MPXV7002 based Airspeed Sensor */ #include #endif #ifdef PIOS_INCLUDE_ETASV3 /* Eagle Tree Systems Airspeed MicroSensor V3 */ #include #endif #ifdef PIOS_INCLUDE_MS4525DO /* PixHawk Airspeed Sensor based on MS4525DO */ #include #endif #ifdef PIOS_INCLUDE_HCSR04 /* HC-SR04 Ultrasonic Sensor */ #include #endif /* PIOS receiver drivers */ #ifdef PIOS_INCLUDE_PWM #include #endif #ifdef PIOS_INCLUDE_PPM #include #endif #ifdef PIOS_INCLUDE_PPM_FLEXI /* PPM on CC flexi port */ #endif #ifdef PIOS_INCLUDE_DSM #include #endif #ifdef PIOS_INCLUDE_SBUS #include #endif /* PIOS abstract receiver interface */ #ifdef PIOS_INCLUDE_RCVR #include #endif /* PIOS common peripherals */ #ifdef PIOS_INCLUDE_LED #include #endif #ifdef PIOS_INCLUDE_IAP #include #endif #ifdef PIOS_INCLUDE_SERVO #include #endif #ifdef PIOS_INCLUDE_I2C_ESC #include #endif #ifdef PIOS_INCLUDE_OVERO /* #define PIOS_OVERO_SPI */ #include #endif #ifdef PIOS_INCLUDE_SDCARD /* #define LOG_FILENAME "startup.log" */ #include #include #endif #ifdef PIOS_INCLUDE_FLASH /* #define PIOS_INCLUDE_FLASH_LOGFS_SETTINGS */ /* #define FLASH_FREERTOS */ #include #include #endif /* driver for storage on internal flash */ /* #define PIOS_INCLUDE_FLASH_INTERNAL */ #ifdef PIOS_INCLUDE_FLASH_EEPROM #include #endif /* PIOS radio modules */ #ifdef PIOS_INCLUDE_RFM22B /* #define PIOS_INCLUDE_PPM_OUT */ /* #define PIOS_RFM22B_DEBUG_ON_TELEM */ #include #ifdef PIOS_INCLUDE_RFM22B_COM #include #endif #endif /* PIOS_INCLUDE_RFM22B */ /* PIOS misc peripherals */ #ifdef PIOS_INCLUDE_VIDEO #include #endif #ifdef PIOS_INCLUDE_WAVE #include #endif #ifdef PIOS_INCLUDE_UDP #include #endif /* PIOS abstract comms interface with options */ #ifdef PIOS_INCLUDE_COM /* #define PIOS_INCLUDE_COM_MSG */ /* #define PIOS_INCLUDE_TELEMETRY_RF */ /* #define PIOS_INCLUDE_COM_TELEM */ /* #define PIOS_INCLUDE_COM_FLEXI */ /* #define PIOS_INCLUDE_COM_AUX */ /* #define PIOS_TELEM_PRIORITY_QUEUE */ /* #define PIOS_INCLUDE_GPS */ /* #define PIOS_GPS_MINIMAL */ /* #define PIOS_INCLUDE_GPS_NMEA_PARSER */ /* #define PIOS_INCLUDE_GPS_UBX_PARSER */ /* #define PIOS_GPS_SETS_HOMELOCATION */ #include #endif /* Stabilization options */ /* #define PIOS_QUATERNION_STABILIZATION */ /* Performance counters */ /* #define IDLE_COUNTS_PER_SEC_AT_NO_LOAD 995998 */ #endif /* USE_SIM_POSIX */ #endif /* PIOS_H */