diff --git a/flight/AHRS/Makefile b/flight/AHRS/Makefile index 2afd6361c..2da20fee2 100644 --- a/flight/AHRS/Makefile +++ b/flight/AHRS/Makefile @@ -25,7 +25,7 @@ # Set developer code and compile options # Set to YES for debugging -DEBUG ?= NO +DEBUG ?= YES USE_BOOTLOADER ?= NO # Set to YES when using Code Sourcery toolchain @@ -74,6 +74,7 @@ FLIGHTLIB = ../Libraries FLIGHTLIBINC = ../Libraries/inc PIOSSTM32F10X = $(PIOS)/STM32F10x PIOSCOMMON = $(PIOS)/Common +PIOSBOARDS = $(PIOS)/Boards APPLIBDIR = $(PIOSSTM32F10X)/Libraries STMLIBDIR = $(APPLIBDIR) STMSPDDIR = $(STMLIBDIR)/STM32F10x_StdPeriph_Driver @@ -167,6 +168,7 @@ EXTRAINCDIRS += $(PIOSINC) EXTRAINCDIRS += $(FLIGHTLIBINC) EXTRAINCDIRS += $(PIOSSTM32F10X) EXTRAINCDIRS += $(PIOSCOMMON) +EXTRAINCDIRS += $(PIOSBOARDS) EXTRAINCDIRS += $(STMSPDINCDIR) EXTRAINCDIRS += $(CMSISDIR) EXTRAINCDIRS += $(AHRSINC) diff --git a/flight/Bootloaders/AHRS/Makefile b/flight/Bootloaders/AHRS/Makefile index 1603559a4..46399d902 100644 --- a/flight/Bootloaders/AHRS/Makefile +++ b/flight/Bootloaders/AHRS/Makefile @@ -74,6 +74,7 @@ FLIGHTLIB = ../Libraries FLIGHTLIBINC = ../Libraries/inc PIOSSTM32F10X = $(PIOS)/STM32F10x PIOSCOMMON = $(PIOS)/Common +PIOSBOARDS = $(PIOS)/Boards APPLIBDIR = $(PIOSSTM32F10X)/Libraries STMLIBDIR = $(APPLIBDIR) STMSPDDIR = $(STMLIBDIR)/STM32F10x_StdPeriph_Driver @@ -165,6 +166,7 @@ EXTRAINCDIRS += $(PIOSINC) EXTRAINCDIRS += $(FLIGHTLIBINC) EXTRAINCDIRS += $(PIOSSTM32F10X) EXTRAINCDIRS += $(PIOSCOMMON) +EXTRAINCDIRS += $(PIOSBOARDS) EXTRAINCDIRS += $(STMSPDINCDIR) EXTRAINCDIRS += $(CMSISDIR) EXTRAINCDIRS += $(AHRS_BLINC) @@ -211,7 +213,9 @@ DEBUGF = dwarf-2 CDEFS = -DSTM32F10X_$(MODEL) CDEFS += -DUSE_STDPERIPH_DRIVER CDEFS += -DUSE_$(BOARD) - +ifeq ($(USE_BOOTLOADER), YES) +CDEFS += -DUSE_BOOTLOADER +endif # Place project-specific -D and/or -U options for # Assembler with preprocessor here. #ADEFS = -DUSE_IRQ_ASM_WRAPPER @@ -298,9 +302,9 @@ OOCD_CL=-d0 # interface and board/target settings (using the OOCD target-library here) UNAME := $(shell uname) ifeq ($(UNAME), Darwin) - OOCD_CL+=-f ../Project/OpenOCD/floss-jtag.ahrs.osx.cfg -f ../Project/OpenOCD/stm32.cfg + OOCD_CL+=-f ../../Project/OpenOCD/floss-jtag.ahrs.osx.cfg -f ../../Project/OpenOCD/stm32.cfg else - OOCD_CL+=-f ../Project/OpenOCD/floss-jtag.ahrs.cfg -f ../Project/OpenOCD/stm32.cfg + OOCD_CL+=-f ../../Project/OpenOCD/floss-jtag.ahrs.cfg -f ../../Project/OpenOCD/stm32.cfg endif # initialize OOCD_CL+=-c init diff --git a/flight/Bootloaders/AHRS/inc/pios_board.h b/flight/Bootloaders/AHRS/inc/pios_board.h deleted file mode 100644 index 5cfa92391..000000000 --- a/flight/Bootloaders/AHRS/inc/pios_board.h +++ /dev/null @@ -1,241 +0,0 @@ - /** - ****************************************************************************** - * - * @file pios_board.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @brief Defines board hardware for the OpenPilot Version 1.1 hardware. - * @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_BOARD_H -#define PIOS_BOARD_H - - -//------------------------ -// Timers and Channels Used -//------------------------ -/* -Timer | Channel 1 | Channel 2 | Channel 3 | Channel 4 -------+-----------+-----------+-----------+---------- -TIM1 | | | | -TIM2 | --------------- PIOS_DELAY ----------------- -TIM3 | | | | -TIM4 | | | | -TIM5 | | | | -TIM6 | | | | -TIM7 | | | | -TIM8 | | | | -------+-----------+-----------+-----------+---------- -*/ - -//------------------------ -// DMA Channels Used -//------------------------ -/* Channel 1 - */ -/* Channel 2 - */ -/* Channel 3 - */ -/* Channel 4 - */ -/* Channel 5 - */ -/* Channel 6 - */ -/* Channel 7 - */ -/* Channel 8 - */ -/* Channel 9 - */ -/* Channel 10 - */ -/* Channel 11 - */ -/* Channel 12 - */ - - -//------------------------ -// BOOTLOADER_SETTINGS -//------------------------ -#define HW_VERSION 69 -#define BOOTLOADER_VERSION 0 -#define MEM_SIZE 0x20000 //128K -#define SIZE_OF_DESCRIPTION 100 -#define START_OF_USER_CODE (uint32_t)0x08006000 -#define SIZE_OF_CODE (uint32_t)(MEM_SIZE-(START_OF_USER_CODE-0x08000000)-SIZE_OF_DESCRIPTION) -#ifdef STM32F10X_HD - #define HW_TYPE 0 //0=high_density 1=medium_density; -#elif STM32F10X_MD - #define HW_TYPE 1 //0=high_density 1=medium_density; -#endif -#define BOARD_READABLE TRUE -#define BOARD_WRITABLA TRUE -#define MAX_DEL_RETRYS 3 -//------------------------ -// PIOS_LED -//------------------------ -#define PIOS_LED_LED1_GPIO_PORT GPIOA -#define PIOS_LED_LED1_GPIO_PIN GPIO_Pin_3 -#define PIOS_LED_LED1_GPIO_CLK RCC_APB2Periph_GPIOA -#define PIOS_LED_NUM 1 -#define PIOS_LED_PORTS { PIOS_LED_LED1_GPIO_PORT } -#define PIOS_LED_PINS { PIOS_LED_LED1_GPIO_PIN } -#define PIOS_LED_CLKS { PIOS_LED_LED1_GPIO_CLK } - -//------------------------- -// Delay Timer -//------------------------- -#define PIOS_DELAY_TIMER TIM2 -#define PIOS_DELAY_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE) - -//------------------------- -// System Settings -//------------------------- -#define PIOS_MASTER_CLOCK 72000000 -#define PIOS_PERIPHERAL_CLOCK (PIOS_MASTER_CLOCK / 2) -#if defined(USE_BOOTLOADER) -#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08006000) -#else -#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08000000) -#endif - -//------------------------- -// Interrupt Priorities -//------------------------- -#define PIOS_IRQ_PRIO_LOW 12 // lower than RTOS -#define PIOS_IRQ_PRIO_MID 8 // higher than RTOS -#define PIOS_IRQ_PRIO_HIGH 5 // for SPI, ADC, I2C etc... -#define PIOS_IRQ_PRIO_HIGHEST 4 // for USART etc... - -//------------------------ -// PIOS_I2C -// See also pios_board.c -//------------------------ -#define PIOS_I2C_MAIN_ADAPTER 0 - -//------------------------- -// SPI -// -// See also pios_board.c -//------------------------- -#define PIOS_SPI_OP 0 - -//------------------------- -// PIOS_USART -//------------------------- -#define PIOS_USART_RX_BUFFER_SIZE 256 -#define PIOS_USART_TX_BUFFER_SIZE 256 -#define PIOS_COM_AUX_BAUDRATE 115200 -#define PIOS_COM_AUX 0 -#define PIOS_COM_DEBUG PIOS_COM_AUX - -//------------------------- -// ADC -// PIOS_ADC_PinGet(0) = Accel Z -// PIOS_ADC_PinGet(2) = Accel Y -// PIOS_ADC_PinGet(4) = Accel X -// PIOS_ADC_PinGet(1) = Gyro X -// PIOS_ADC_PinGet(3) = Gyro Y -// PIOS_ADC_PinGet(5) = Gyro Z -// PIOS_ADC_PinGet(6) = XY Temp -// PIOS_ADC_PinGet(7) = Z Temp -//------------------------- -//#define PIOS_ADC_OVERSAMPLING_RATE 1 -#define PIOS_ADC_USE_TEMP_SENSOR 0 -#define PIOS_ADC_TEMP_SENSOR_ADC ADC1 -#define PIOS_ADC_TEMP_SENSOR_ADC_CHANNEL 1 - -#define PIOS_ADC_PIN1_GPIO_PORT GPIOA // PA2 (Accel X) -#define PIOS_ADC_PIN1_GPIO_PIN GPIO_Pin_2 // ADC12_IN2 -#define PIOS_ADC_PIN1_GPIO_CHANNEL ADC_Channel_2 -#define PIOS_ADC_PIN1_ADC ADC1 -#define PIOS_ADC_PIN1_ADC_NUMBER 1 - -#define PIOS_ADC_PIN2_GPIO_PORT GPIOA // PA1 (Accel Y) -#define PIOS_ADC_PIN2_GPIO_PIN GPIO_Pin_1 // ADC123_IN1 -#define PIOS_ADC_PIN2_GPIO_CHANNEL ADC_Channel_1 -#define PIOS_ADC_PIN2_ADC ADC1 -#define PIOS_ADC_PIN2_ADC_NUMBER 2 - -#define PIOS_ADC_PIN3_GPIO_PORT GPIOA // PA0 (Accel Z) -#define PIOS_ADC_PIN3_GPIO_PIN GPIO_Pin_0 // ADC12_IN0 -#define PIOS_ADC_PIN3_GPIO_CHANNEL ADC_Channel_0 -#define PIOS_ADC_PIN3_ADC ADC1 -#define PIOS_ADC_PIN3_ADC_NUMBER 3 - -#define PIOS_ADC_PIN4_GPIO_PORT GPIOA // PA6 (Temp_XY) -#define PIOS_ADC_PIN4_GPIO_PIN GPIO_Pin_6 // ADC12_IN6 -#define PIOS_ADC_PIN4_GPIO_CHANNEL ADC_Channel_6 -#define PIOS_ADC_PIN4_ADC ADC1 -#define PIOS_ADC_PIN4_ADC_NUMBER 4 - -#define PIOS_ADC_PIN5_GPIO_PORT GPIOA // PA4 (Gyro X) -#define PIOS_ADC_PIN5_GPIO_PIN GPIO_Pin_4 // ADC12_IN4 -#define PIOS_ADC_PIN5_GPIO_CHANNEL ADC_Channel_4 -#define PIOS_ADC_PIN5_ADC ADC2 -#define PIOS_ADC_PIN5_ADC_NUMBER 1 - -#define PIOS_ADC_PIN6_GPIO_PORT GPIOA // PA5 (Gyro Y) -#define PIOS_ADC_PIN6_GPIO_PIN GPIO_Pin_5 // ADC12_IN5 -#define PIOS_ADC_PIN6_GPIO_CHANNEL ADC_Channel_5 -#define PIOS_ADC_PIN6_ADC ADC2 -#define PIOS_ADC_PIN6_ADC_NUMBER 2 - -#define PIOS_ADC_PIN7_GPIO_PORT GPIOA // PA7 (Gyro Z) -#define PIOS_ADC_PIN7_GPIO_PIN GPIO_Pin_7 // ADC12_IN7 -#define PIOS_ADC_PIN7_GPIO_CHANNEL ADC_Channel_7 -#define PIOS_ADC_PIN7_ADC ADC2 -#define PIOS_ADC_PIN7_ADC_NUMBER 3 - -#define PIOS_ADC_PIN8_GPIO_PORT GPIOB // PB1 (Z Temp) -#define PIOS_ADC_PIN8_GPIO_PIN GPIO_Pin_1 // ADC12_IN9 -#define PIOS_ADC_PIN8_GPIO_CHANNEL ADC_Channel_9 -#define PIOS_ADC_PIN8_ADC ADC2 -#define PIOS_ADC_PIN8_ADC_NUMBER 4 - -#define PIOS_ADC_NUM_PINS 8 - -#define PIOS_ADC_PORTS { PIOS_ADC_PIN1_GPIO_PORT, PIOS_ADC_PIN2_GPIO_PORT, PIOS_ADC_PIN3_GPIO_PORT, PIOS_ADC_PIN4_GPIO_PORT, PIOS_ADC_PIN5_GPIO_PORT, PIOS_ADC_PIN6_GPIO_PORT, PIOS_ADC_PIN7_GPIO_PORT, PIOS_ADC_PIN8_GPIO_PORT } -#define PIOS_ADC_PINS { PIOS_ADC_PIN1_GPIO_PIN, PIOS_ADC_PIN2_GPIO_PIN, PIOS_ADC_PIN3_GPIO_PIN, PIOS_ADC_PIN4_GPIO_PIN, PIOS_ADC_PIN5_GPIO_PIN, PIOS_ADC_PIN6_GPIO_PIN, PIOS_ADC_PIN7_GPIO_PIN, PIOS_ADC_PIN8_GPIO_PIN } -#define PIOS_ADC_CHANNELS { PIOS_ADC_PIN1_GPIO_CHANNEL, PIOS_ADC_PIN2_GPIO_CHANNEL, PIOS_ADC_PIN3_GPIO_CHANNEL, PIOS_ADC_PIN4_GPIO_CHANNEL, PIOS_ADC_PIN5_GPIO_CHANNEL, PIOS_ADC_PIN6_GPIO_CHANNEL, PIOS_ADC_PIN7_GPIO_CHANNEL, PIOS_ADC_PIN8_GPIO_CHANNEL } -#define PIOS_ADC_MAPPING { PIOS_ADC_PIN1_ADC, PIOS_ADC_PIN2_ADC, PIOS_ADC_PIN3_ADC, PIOS_ADC_PIN4_ADC, PIOS_ADC_PIN5_ADC, PIOS_ADC_PIN6_ADC, PIOS_ADC_PIN7_ADC, PIOS_ADC_PIN8_ADC } -#define PIOS_ADC_CHANNEL_MAPPING { PIOS_ADC_PIN1_ADC_NUMBER, PIOS_ADC_PIN2_ADC_NUMBER, PIOS_ADC_PIN3_ADC_NUMBER, PIOS_ADC_PIN4_ADC_NUMBER, PIOS_ADC_PIN5_ADC_NUMBER, PIOS_ADC_PIN6_ADC_NUMBER, PIOS_ADC_PIN7_ADC_NUMBER, PIOS_ADC_PIN8_ADC_NUMBER } -#define PIOS_ADC_NUM_CHANNELS (PIOS_ADC_NUM_PINS + PIOS_ADC_USE_TEMP_SENSOR) -#define PIOS_ADC_NUM_ADC_CHANNELS 2 -#define PIOS_ADC_USE_ADC2 1 -#define PIOS_ADC_CLOCK_FUNCTION RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2, ENABLE) -#define PIOS_ADC_ADCCLK RCC_PCLK2_Div8 -/* RCC_PCLK2_Div2: ADC clock = PCLK2/2 */ -/* RCC_PCLK2_Div4: ADC clock = PCLK2/4 */ -/* RCC_PCLK2_Div6: ADC clock = PCLK2/6 */ -/* RCC_PCLK2_Div8: ADC clock = PCLK2/8 */ -#define PIOS_ADC_SAMPLE_TIME ADC_SampleTime_239Cycles5 -/* Sample time: */ -/* With an ADCCLK = 14 MHz and a sampling time of 293.5 cycles: */ -/* Tconv = 239.5 + 12.5 = 252 cycles = 18�s */ -/* (1 / (ADCCLK / CYCLES)) = Sample Time (�S) */ -#define PIOS_ADC_IRQ_PRIO PIOS_IRQ_PRIO_HIGH - - -//------------------------- -// GPIO -//------------------------- -#define PIOS_GPIO_1_PORT GPIOB -#define PIOS_GPIO_1_PIN GPIO_Pin_9 -#define PIOS_GPIO_1_GPIO_CLK RCC_APB2Periph_GPIOB -#define PIOS_GPIO_PORTS { PIOS_GPIO_1_PORT } -#define PIOS_GPIO_PINS { PIOS_GPIO_1_PIN } -#define PIOS_GPIO_CLKS { PIOS_GPIO_1_GPIO_CLK } -#define PIOS_GPIO_NUM 1 -#define SET_ACCEL_2G PIOS_GPIO_On(0); -#define SET_ACCEL_6G PIOS_GPIO_Off(0) - -#endif /* PIOS_BOARD_H */ diff --git a/flight/Bootloaders/OpenPilot/inc/pios_board.h b/flight/Bootloaders/OpenPilot/inc/pios_board.h deleted file mode 100644 index 8da1e979b..000000000 --- a/flight/Bootloaders/OpenPilot/inc/pios_board.h +++ /dev/null @@ -1,393 +0,0 @@ -/** - ****************************************************************************** - * @addtogroup OpenPilotSystem OpenPilot System - * @{ - * @addtogroup OpenPilotCore OpenPilot Core - * @{ - * @file pios_board.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @brief Defines board hardware for the OpenPilot Version 1.1 hardware. - * @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_BOARD_H -#define PIOS_BOARD_H - - - -//------------------------ -// Timers and Channels Used -//------------------------ -/* -Timer | Channel 1 | Channel 2 | Channel 3 | Channel 4 -------+-----------+-----------+-----------+---------- -TIM1 | RC In 3 | RC In 6 | RC In 5 | -TIM2 | --------------- PIOS_DELAY ----------------- -TIM3 | RC In 7 | RC In 8 | RC In 1 | RC In 2 -TIM4 | Servo 1 | Servo 2 | Servo 3 | Servo 4 -TIM5 | RC In 4 | | | -TIM6 | ----------- PIOS_PWM (Supervisor) ---------- -TIM7 | | | | -TIM8 | Servo 5 | Servo 6 | Servo 7 | Servo 8 -------+-----------+-----------+-----------+---------- -*/ - -//------------------------ -// DMA Channels Used -//------------------------ -/* Channel 1 - ADC */ -/* Channel 2 - SPI1 RX */ -/* Channel 3 - SPI1 TX */ -/* Channel 4 - SPI2 RX */ -/* Channel 5 - SPI2 TX */ -/* Channel 6 - */ -/* Channel 7 - */ -/* Channel 8 - */ -/* Channel 9 - */ -/* Channel 10 - */ -/* Channel 11 - */ -/* Channel 12 - */ - - - -//------------------------ -// BOOTLOADER_SETTINGS -//------------------------ - -#define HW_VERSION 01 -#define BOOTLOADER_VERSION 0 -#define MEM_SIZE 524288 //512K -#define SIZE_OF_DESCRIPTION (uint8_t) 100 -#define SIZE_OF_CODE (uint32_t) (MEM_SIZE-(START_OF_USER_CODE-0x08000000)-SIZE_OF_DESCRIPTION) -#define START_OF_USER_CODE 0x0800F000 -#ifdef STM32F10X_HD - #define HW_TYPE 0 //0=high_density 1=medium_density; -#elif STM32F10X_MD - #define HW_TYPE 1 //0=high_density 1=medium_density; -#endif -#define BOARD_READABLE TRUE -#define BOARD_WRITABLA TRUE -#define MAX_DEL_RETRYS 3 -//------------------------ -// PIOS_LED -//------------------------ -#define PIOS_LED_LED1_GPIO_PORT GPIOC -#define PIOS_LED_LED1_GPIO_PIN GPIO_Pin_12 -#define PIOS_LED_LED1_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_LED_LED2_GPIO_PORT GPIOC -#define PIOS_LED_LED2_GPIO_PIN GPIO_Pin_13 -#define PIOS_LED_LED2_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_LED_NUM 2 -#define PIOS_LED_PORTS { PIOS_LED_LED1_GPIO_PORT, PIOS_LED_LED2_GPIO_PORT } -#define PIOS_LED_PINS { PIOS_LED_LED1_GPIO_PIN, PIOS_LED_LED2_GPIO_PIN } -#define PIOS_LED_CLKS { PIOS_LED_LED1_GPIO_CLK, PIOS_LED_LED2_GPIO_CLK } - -//------------------------ -// PIOS_I2C -// See also pios_board.c -//------------------------ -#define PIOS_I2C_MAIN_ADAPTER 0 - -//------------------------ -// PIOS_BMP085 -//------------------------ -#define PIOS_BMP085_EOC_GPIO_PORT GPIOC -#define PIOS_BMP085_EOC_GPIO_PIN GPIO_Pin_15 -#define PIOS_BMP085_EOC_PORT_SOURCE GPIO_PortSourceGPIOG -#define PIOS_BMP085_EOC_PIN_SOURCE GPIO_PinSource8 -#define PIOS_BMP085_EOC_CLK RCC_APB2Periph_GPIOC -#define PIOS_BMP085_EOC_EXTI_LINE EXTI_Line15 -#define PIOS_BMP085_EOC_IRQn EXTI15_10_IRQn -#define PIOS_BMP085_EOC_PRIO PIOS_IRQ_PRIO_HIGH -#define PIOS_BMP085_OVERSAMPLING 2 - -//------------------------- -// USART -// -// See also pios_board.c -//------------------------- -#define PIOS_USART_RX_BUFFER_SIZE 1024 -#define PIOS_USART_TX_BUFFER_SIZE 256 - -#define PIOS_COM_TELEM_BAUDRATE 57600 -#define PIOS_COM_GPS_BAUDRATE 57600 - -#define PIOS_COM_TELEM_RF 0 -#define PIOS_COM_GPS 1 -#define PIOS_COM_TELEM_USB 2 - -#ifdef PIOS_ENABLE_AUX_UART - #define PIOS_COM_AUX_BAUDRATE 57600 - #define PIOS_COM_AUX 3 - #define PIOS_COM_DEBUG PIOS_COM_AUX -#endif - -#ifdef PIOS_INCLUDE_SPEKTRUM - #define PIOS_COM_SPEKTRUM_BAUDRATE 115200 - #define PIOS_COM_SPEKTRUM 3 -#endif - -//------------------------- -// SPI -// -// See also pios_board.c -//------------------------- -#define PIOS_SDCARD_SPI 0 -#define PIOS_OPAHRS_SPI 1 - -//------------------------- -// Delay Timer -//------------------------- -#define PIOS_DELAY_TIMER TIM2 -#define PIOS_DELAY_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE) - -//------------------------- -// System Settings -//------------------------- -#define PIOS_MASTER_CLOCK 72000000 -#define PIOS_PERIPHERAL_CLOCK (PIOS_MASTER_CLOCK / 2) -#if defined(USE_BOOTLOADER) -#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08006000) -#else -#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08000000) -#endif - -//------------------------- -// Interrupt Priorities -//------------------------- -#define PIOS_IRQ_PRIO_LOW 12 // lower than RTOS -#define PIOS_IRQ_PRIO_MID 8 // higher than RTOS -#define PIOS_IRQ_PRIO_HIGH 5 // for SPI, ADC, I2C etc... -#define PIOS_IRQ_PRIO_HIGHEST 4 // for USART etc... - -//------------------------- -// Receiver PWM inputs -//------------------------- -#define PIOS_PWM_CH1_GPIO_PORT GPIOA -#define PIOS_PWM_CH1_PIN GPIO_Pin_9 -#define PIOS_PWM_CH1_TIM_PORT TIM1 -#define PIOS_PWM_CH1_CH TIM_Channel_2 -#define PIOS_PWM_CH1_CCR TIM_IT_CC2 -#define PIOS_PWM_CH2_GPIO_PORT GPIOA -#define PIOS_PWM_CH2_PIN GPIO_Pin_10 -#define PIOS_PWM_CH2_TIM_PORT TIM1 -#define PIOS_PWM_CH2_CH TIM_Channel_3 -#define PIOS_PWM_CH2_CCR TIM_IT_CC3 -#define PIOS_PWM_CH3_GPIO_PORT GPIOA -#define PIOS_PWM_CH3_PIN GPIO_Pin_0 -#define PIOS_PWM_CH3_TIM_PORT TIM5 -#define PIOS_PWM_CH3_CH TIM_Channel_1 -#define PIOS_PWM_CH3_CCR TIM_IT_CC1 -#define PIOS_PWM_CH4_GPIO_PORT GPIOA -#define PIOS_PWM_CH4_PIN GPIO_Pin_8 -#define PIOS_PWM_CH4_TIM_PORT TIM1 -#define PIOS_PWM_CH4_CH TIM_Channel_1 -#define PIOS_PWM_CH4_CCR TIM_IT_CC1 -#define PIOS_PWM_CH5_GPIO_PORT GPIOB -#define PIOS_PWM_CH5_PIN GPIO_Pin_1 -#define PIOS_PWM_CH5_TIM_PORT TIM3 -#define PIOS_PWM_CH5_CH TIM_Channel_4 -#define PIOS_PWM_CH5_CCR TIM_IT_CC4 -#define PIOS_PWM_CH6_GPIO_PORT GPIOB -#define PIOS_PWM_CH6_PIN GPIO_Pin_0 -#define PIOS_PWM_CH6_TIM_PORT TIM3 -#define PIOS_PWM_CH6_CH TIM_Channel_3 -#define PIOS_PWM_CH6_CCR TIM_IT_CC3 -#define PIOS_PWM_CH7_GPIO_PORT GPIOB -#define PIOS_PWM_CH7_PIN GPIO_Pin_4 -#define PIOS_PWM_CH7_TIM_PORT TIM3 -#define PIOS_PWM_CH7_CH TIM_Channel_1 -#define PIOS_PWM_CH7_CCR TIM_IT_CC1 -#define PIOS_PWM_CH8_GPIO_PORT GPIOB -#define PIOS_PWM_CH8_PIN GPIO_Pin_5 -#define PIOS_PWM_CH8_TIM_PORT TIM3 -#define PIOS_PWM_CH8_CH TIM_Channel_2 -#define PIOS_PWM_CH8_CCR TIM_IT_CC2 -#define PIOS_PWM_GPIO_PORTS { PIOS_PWM_CH1_GPIO_PORT, PIOS_PWM_CH2_GPIO_PORT, PIOS_PWM_CH3_GPIO_PORT, PIOS_PWM_CH4_GPIO_PORT, PIOS_PWM_CH5_GPIO_PORT, PIOS_PWM_CH6_GPIO_PORT, PIOS_PWM_CH7_GPIO_PORT, PIOS_PWM_CH8_GPIO_PORT } -#define PIOS_PWM_GPIO_PINS { PIOS_PWM_CH1_PIN, PIOS_PWM_CH2_PIN, PIOS_PWM_CH3_PIN, PIOS_PWM_CH4_PIN, PIOS_PWM_CH5_PIN, PIOS_PWM_CH6_PIN, PIOS_PWM_CH7_PIN, PIOS_PWM_CH8_PIN } -#define PIOS_PWM_TIM_PORTS { PIOS_PWM_CH1_TIM_PORT, PIOS_PWM_CH2_TIM_PORT, PIOS_PWM_CH3_TIM_PORT, PIOS_PWM_CH4_TIM_PORT, PIOS_PWM_CH5_TIM_PORT, PIOS_PWM_CH6_TIM_PORT, PIOS_PWM_CH7_TIM_PORT, PIOS_PWM_CH8_TIM_PORT } -#define PIOS_PWM_TIM_CHANNELS { PIOS_PWM_CH1_CH, PIOS_PWM_CH2_CH, PIOS_PWM_CH3_CH, PIOS_PWM_CH4_CH, PIOS_PWM_CH5_CH, PIOS_PWM_CH6_CH, PIOS_PWM_CH7_CH, PIOS_PWM_CH8_CH } -#define PIOS_PWM_TIM_CCRS { PIOS_PWM_CH1_CCR, PIOS_PWM_CH2_CCR, PIOS_PWM_CH3_CCR, PIOS_PWM_CH4_CCR, PIOS_PWM_CH5_CCR, PIOS_PWM_CH6_CCR, PIOS_PWM_CH7_CCR, PIOS_PWM_CH8_CCR } -#define PIOS_PWM_TIMS { TIM1, TIM3, TIM5 } -#define PIOS_PWM_TIM_IRQS { TIM1_CC_IRQn, TIM3_IRQn, TIM5_IRQn } -#define PIOS_PWM_NUM_INPUTS 8 -#define PIOS_PWM_NUM_TIMS 3 -#define PIOS_PWM_SUPV_ENABLED 1 -#define PIOS_PWM_SUPV_TIMER TIM6 -#define PIOS_PWM_SUPV_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE) -#define PIOS_PWM_SUPV_HZ 25 -#define PIOS_PWM_SUPV_IRQ_CHANNEL TIM6_IRQn -#define PIOS_PWM_SUPV_IRQ_FUNC void TIM6_IRQHandler(void) - -//------------------------- -// Receiver PPM input -//------------------------- -#define PIOS_PPM_GPIO_PORT PIOS_PWM_CH1_GPIO_PORT -#define PIOS_PPM_GPIO_PIN PIOS_PWM_CH1_PIN -#define PIOS_PPM_TIM_PORT PIOS_PWM_CH1_TIM_PORT -#define PIOS_PPM_TIM_CHANNEL PIOS_PWM_CH1_CH -#define PIOS_PPM_TIM_CCR PIOS_PWM_CH1_CCR -#define PIOS_PPM_TIM TIM1 -#define PIOS_PPM_TIM_IRQ TIM1_CC_IRQn -#define PIOS_PPM_NUM_INPUTS 8 //Could be more if needed -#define PIOS_PPM_SUPV_ENABLED 1 -#define PIOS_PPM_SUPV_TIMER TIM6 -#define PIOS_PPM_SUPV_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE) -#define PIOS_PPM_SUPV_HZ 25 -#define PIOS_PPM_SUPV_IRQ_CHANNEL TIM6_IRQn -#define PIOS_PPM_SUPV_IRQ_FUNC void TIM6_IRQHandler(void) - - -//------------------------- -// Servo outputs -//------------------------- -#define PIOS_SERVO_GPIO_PORT_1TO4 GPIOB -#define PIOS_SERVO_GPIO_PIN_1 GPIO_Pin_6 -#define PIOS_SERVO_GPIO_PIN_2 GPIO_Pin_7 -#define PIOS_SERVO_GPIO_PIN_3 GPIO_Pin_8 -#define PIOS_SERVO_GPIO_PIN_4 GPIO_Pin_9 -#define PIOS_SERVO_GPIO_PORT_5TO8 GPIOC -#define PIOS_SERVO_GPIO_PIN_5 GPIO_Pin_6 -#define PIOS_SERVO_GPIO_PIN_6 GPIO_Pin_7 -#define PIOS_SERVO_GPIO_PIN_7 GPIO_Pin_8 -#define PIOS_SERVO_GPIO_PIN_8 GPIO_Pin_9 -#define PIOS_SERVO_NUM_OUTPUTS 8 -#define PIOS_SERVO_NUM_TIMERS PIOS_SERVO_NUM_OUTPUTS -#define PIOS_SERVO_UPDATE_HZ 50 -#define PIOS_SERVOS_INITIAL_POSITION 1500 - -//------------------------- -// ADC -// PIOS_ADC_PinGet(0) = Temperature Sensor (On-board) -// PIOS_ADC_PinGet(1) = Power Sensor (Current) -// PIOS_ADC_PinGet(2) = Power Sensor (Voltage) -// PIOS_ADC_PinGet(3) = On-board 5v Rail Sensor -// PIOS_ADC_PinGet(4) = Auxiliary Input 1 -// PIOS_ADC_PinGet(5) = Auxiliary Input 2 -// PIOS_ADC_PinGet(6) = Auxiliary Input 3 -//------------------------- -//#define PIOS_ADC_OVERSAMPLING_RATE 1 -#define PIOS_ADC_USE_TEMP_SENSOR 1 -#define PIOS_ADC_TEMP_SENSOR_ADC ADC1 -#define PIOS_ADC_TEMP_SENSOR_ADC_CHANNEL 1 -#define PIOS_ADC_PIN1_GPIO_PORT GPIOA // PA1 (Power Sense - Voltage) -#define PIOS_ADC_PIN1_GPIO_PIN GPIO_Pin_1 // ADC123_IN1 -#define PIOS_ADC_PIN1_GPIO_CHANNEL ADC_Channel_1 -#define PIOS_ADC_PIN1_ADC ADC1 -#define PIOS_ADC_PIN1_ADC_NUMBER 2 -#define PIOS_ADC_PIN2_GPIO_PORT GPIOC // PC3 (Power Sense - Current) -#define PIOS_ADC_PIN2_GPIO_PIN GPIO_Pin_3 // ADC123_IN13 -#define PIOS_ADC_PIN2_GPIO_CHANNEL ADC_Channel_13 -#define PIOS_ADC_PIN2_ADC ADC2 -#define PIOS_ADC_PIN2_ADC_NUMBER 1 -#define PIOS_ADC_PIN3_GPIO_PORT GPIOC // PC5 (Onboard 5v Sensor) PC5 -#define PIOS_ADC_PIN3_GPIO_PIN GPIO_Pin_5 // ADC12_IN15 -#define PIOS_ADC_PIN3_GPIO_CHANNEL ADC_Channel_15 -#define PIOS_ADC_PIN3_ADC ADC2 -#define PIOS_ADC_PIN3_ADC_NUMBER 2 -#define PIOS_ADC_PIN4_GPIO_PORT GPIOC // PC0 (AUX 1) -#define PIOS_ADC_PIN4_GPIO_PIN GPIO_Pin_0 // ADC123_IN10 -#define PIOS_ADC_PIN4_GPIO_CHANNEL ADC_Channel_10 -#define PIOS_ADC_PIN4_ADC ADC1 -#define PIOS_ADC_PIN4_ADC_NUMBER 3 -#define PIOS_ADC_PIN5_GPIO_PORT GPIOC // PC1 (AUX 2) -#define PIOS_ADC_PIN5_GPIO_PIN GPIO_Pin_1 // ADC123_IN11 -#define PIOS_ADC_PIN5_GPIO_CHANNEL ADC_Channel_11 -#define PIOS_ADC_PIN5_ADC ADC2 -#define PIOS_ADC_PIN5_ADC_NUMBER 3 -#define PIOS_ADC_PIN6_GPIO_PORT GPIOC // PC2 (AUX 3) -#define PIOS_ADC_PIN6_GPIO_PIN GPIO_Pin_2 // ADC123_IN12 -#define PIOS_ADC_PIN6_GPIO_CHANNEL ADC_Channel_12 -#define PIOS_ADC_PIN6_ADC ADC1 -#define PIOS_ADC_PIN6_ADC_NUMBER 4 -#define PIOS_ADC_NUM_PINS 6 -#define PIOS_ADC_PORTS { PIOS_ADC_PIN1_GPIO_PORT, PIOS_ADC_PIN2_GPIO_PORT, PIOS_ADC_PIN3_GPIO_PORT, PIOS_ADC_PIN4_GPIO_PORT, PIOS_ADC_PIN5_GPIO_PORT, PIOS_ADC_PIN6_GPIO_PORT } -#define PIOS_ADC_PINS { PIOS_ADC_PIN1_GPIO_PIN, PIOS_ADC_PIN2_GPIO_PIN, PIOS_ADC_PIN3_GPIO_PIN, PIOS_ADC_PIN4_GPIO_PIN, PIOS_ADC_PIN5_GPIO_PIN, PIOS_ADC_PIN6_GPIO_PIN } -#define PIOS_ADC_CHANNELS { PIOS_ADC_PIN1_GPIO_CHANNEL, PIOS_ADC_PIN2_GPIO_CHANNEL, PIOS_ADC_PIN3_GPIO_CHANNEL, PIOS_ADC_PIN4_GPIO_CHANNEL, PIOS_ADC_PIN5_GPIO_CHANNEL, PIOS_ADC_PIN6_GPIO_CHANNEL } -#define PIOS_ADC_MAPPING { PIOS_ADC_PIN1_ADC, PIOS_ADC_PIN2_ADC, PIOS_ADC_PIN3_ADC, PIOS_ADC_PIN4_ADC, PIOS_ADC_PIN5_ADC, PIOS_ADC_PIN6_ADC } -#define PIOS_ADC_CHANNEL_MAPPING { PIOS_ADC_PIN1_ADC_NUMBER, PIOS_ADC_PIN2_ADC_NUMBER, PIOS_ADC_PIN3_ADC_NUMBER, PIOS_ADC_PIN4_ADC_NUMBER, PIOS_ADC_PIN5_ADC_NUMBER, PIOS_ADC_PIN6_ADC_NUMBER } -#define PIOS_ADC_NUM_CHANNELS (PIOS_ADC_NUM_PINS + PIOS_ADC_USE_TEMP_SENSOR) -#define PIOS_ADC_NUM_ADC_CHANNELS 2 -#define PIOS_ADC_USE_ADC2 1 -#define PIOS_ADC_CLOCK_FUNCTION RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2, ENABLE) -#define PIOS_ADC_ADCCLK RCC_PCLK2_Div8 - /* RCC_PCLK2_Div2: ADC clock = PCLK2/2 */ - /* RCC_PCLK2_Div4: ADC clock = PCLK2/4 */ - /* RCC_PCLK2_Div6: ADC clock = PCLK2/6 */ - /* RCC_PCLK2_Div8: ADC clock = PCLK2/8 */ -#define PIOS_ADC_SAMPLE_TIME ADC_SampleTime_239Cycles5 - /* Sample time: */ - /* With an ADCCLK = 14 MHz and a sampling time of 293.5 cycles: */ - /* Tconv = 239.5 + 12.5 = 252 cycles = 18�s */ - /* (1 / (ADCCLK / CYCLES)) = Sample Time (�S) */ -#define PIOS_ADC_IRQ_PRIO PIOS_IRQ_PRIO_HIGH - -//------------------------- -// GPIO -//------------------------- -#define PIOS_GPIO_1_PORT GPIOC -#define PIOS_GPIO_1_PIN GPIO_Pin_0 -#define PIOS_GPIO_1_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_GPIO_2_PORT GPIOC -#define PIOS_GPIO_2_PIN GPIO_Pin_1 -#define PIOS_GPIO_2_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_GPIO_3_PORT GPIOC -#define PIOS_GPIO_3_PIN GPIO_Pin_2 -#define PIOS_GPIO_3_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_GPIO_4_PORT GPIOD -#define PIOS_GPIO_4_PIN GPIO_Pin_2 -#define PIOS_GPIO_4_GPIO_CLK RCC_APB2Periph_GPIOD -#define PIOS_GPIO_PORTS { PIOS_GPIO_1_PORT, PIOS_GPIO_2_PORT, PIOS_GPIO_3_PORT, PIOS_GPIO_4_PORT } -#define PIOS_GPIO_PINS { PIOS_GPIO_1_PIN, PIOS_GPIO_2_PIN, PIOS_GPIO_3_PIN, PIOS_GPIO_4_PIN } -#define PIOS_GPIO_CLKS { PIOS_GPIO_1_GPIO_CLK, PIOS_GPIO_2_GPIO_CLK, PIOS_GPIO_3_GPIO_CLK, PIOS_GPIO_4_GPIO_CLK } -#define PIOS_GPIO_NUM 4 - -//------------------------- -// USB -//------------------------- -#define PIOS_USB_ENABLED 1 -#define PIOS_USB_DETECT_GPIO_PORT GPIOC -#define PIOS_USB_DETECT_GPIO_PIN GPIO_Pin_4 -#define PIOS_USB_DETECT_EXTI_LINE EXTI_Line4 -#define PIOS_IRQ_USB_PRIORITY PIOS_IRQ_PRIO_MID - -/** - * glue macros for file IO - * STM32 uses DOSFS for file IO - */ -#define PIOS_FOPEN_READ(filename,file) DFS_OpenFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, DFS_READ, PIOS_SDCARD_Sector, &file) != DFS_OK - -#define PIOS_FOPEN_WRITE(filename,file) DFS_OpenFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, DFS_WRITE, PIOS_SDCARD_Sector, &file) != DFS_OK - -#define PIOS_FREAD(file,bufferadr,length,resultadr) DFS_ReadFile(file, PIOS_SDCARD_Sector, (uint8_t*)bufferadr, resultadr, length) != DFS_OK - -#define PIOS_FWRITE(file,bufferadr,length,resultadr) DFS_WriteFile(file, PIOS_SDCARD_Sector, (uint8_t*)bufferadr, resultadr, length) - -#define PIOS_FCLOSE(file) DFS_Close(&file) - -#define PIOS_FUNLINK(filename) DFS_UnlinkFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, PIOS_SDCARD_Sector) - - - -#endif /* PIOS_BOARD_H */ -/** - * @} - * @} - */ diff --git a/flight/OpenPilot/Makefile b/flight/OpenPilot/Makefile index 2ec058c37..5e9797848 100644 --- a/flight/OpenPilot/Makefile +++ b/flight/OpenPilot/Makefile @@ -100,6 +100,7 @@ PIOS = ../PiOS PIOSINC = $(PIOS)/inc PIOSSTM32F10X = $(PIOS)/STM32F10x PIOSCOMMON = $(PIOS)/Common +PIOSBOARDS = $(PIOS)/Boards APPLIBDIR = $(PIOSSTM32F10X)/Libraries STMLIBDIR = $(APPLIBDIR) STMSPDDIR = $(STMLIBDIR)/STM32F10x_StdPeriph_Driver @@ -312,6 +313,7 @@ EXTRAINCDIRS += $(PIOSINC) EXTRAINCDIRS += $(FLIGHTLIBINC) EXTRAINCDIRS += $(PIOSSTM32F10X) EXTRAINCDIRS += $(PIOSCOMMON) +EXTRAINCDIRS += $(PIOSBOARDS) EXTRAINCDIRS += $(STMSPDINCDIR) EXTRAINCDIRS += $(STMUSBINCDIR) EXTRAINCDIRS += $(CMSISDIR) diff --git a/flight/OpenPilot/System/inc/pios_board.h b/flight/OpenPilot/System/inc/pios_board.h deleted file mode 100644 index 51ae98872..000000000 --- a/flight/OpenPilot/System/inc/pios_board.h +++ /dev/null @@ -1,373 +0,0 @@ -/** - ****************************************************************************** - * @addtogroup OpenPilotSystem OpenPilot System - * @{ - * @addtogroup OpenPilotCore OpenPilot Core - * @{ - * @file pios_board.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * @brief Defines board hardware for the OpenPilot Version 1.1 hardware. - * @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_BOARD_H -#define PIOS_BOARD_H - - - -//------------------------ -// Timers and Channels Used -//------------------------ -/* -Timer | Channel 1 | Channel 2 | Channel 3 | Channel 4 -------+-----------+-----------+-----------+---------- -TIM1 | RC In 3 | RC In 6 | RC In 5 | -TIM2 | --------------- PIOS_DELAY ----------------- -TIM3 | RC In 7 | RC In 8 | RC In 1 | RC In 2 -TIM4 | Servo 1 | Servo 2 | Servo 3 | Servo 4 -TIM5 | RC In 4 | | | -TIM6 | ----------- PIOS_PWM (Supervisor) ---------- -TIM7 | | | | -TIM8 | Servo 5 | Servo 6 | Servo 7 | Servo 8 -------+-----------+-----------+-----------+---------- -*/ - -//------------------------ -// DMA Channels Used -//------------------------ -/* Channel 1 - ADC */ -/* Channel 2 - SPI1 RX */ -/* Channel 3 - SPI1 TX */ -/* Channel 4 - SPI2 RX */ -/* Channel 5 - SPI2 TX */ -/* Channel 6 - */ -/* Channel 7 - */ -/* Channel 8 - */ -/* Channel 9 - */ -/* Channel 10 - */ -/* Channel 11 - */ -/* Channel 12 - */ - -//------------------------ -// PIOS_LED -//------------------------ -#define PIOS_LED_LED1_GPIO_PORT GPIOC -#define PIOS_LED_LED1_GPIO_PIN GPIO_Pin_12 -#define PIOS_LED_LED1_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_LED_LED2_GPIO_PORT GPIOC -#define PIOS_LED_LED2_GPIO_PIN GPIO_Pin_13 -#define PIOS_LED_LED2_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_LED_NUM 2 -#define PIOS_LED_PORTS { PIOS_LED_LED1_GPIO_PORT, PIOS_LED_LED2_GPIO_PORT } -#define PIOS_LED_PINS { PIOS_LED_LED1_GPIO_PIN, PIOS_LED_LED2_GPIO_PIN } -#define PIOS_LED_CLKS { PIOS_LED_LED1_GPIO_CLK, PIOS_LED_LED2_GPIO_CLK } - -//------------------------ -// PIOS_I2C -// See also pios_board.c -//------------------------ -#define PIOS_I2C_MAIN_ADAPTER 0 - -//------------------------ -// PIOS_BMP085 -//------------------------ -#define PIOS_BMP085_EOC_GPIO_PORT GPIOC -#define PIOS_BMP085_EOC_GPIO_PIN GPIO_Pin_15 -#define PIOS_BMP085_EOC_PORT_SOURCE GPIO_PortSourceGPIOC -#define PIOS_BMP085_EOC_PIN_SOURCE GPIO_PinSource15 -#define PIOS_BMP085_EOC_CLK RCC_APB2Periph_GPIOC -#define PIOS_BMP085_EOC_EXTI_LINE EXTI_Line15 -#define PIOS_BMP085_EOC_IRQn EXTI15_10_IRQn -#define PIOS_BMP085_EOC_PRIO PIOS_IRQ_PRIO_HIGH -#define PIOS_BMP085_OVERSAMPLING 2 - -//------------------------- -// USART -// -// See also pios_board.c -//------------------------- -#define PIOS_USART_RX_BUFFER_SIZE 1024 -#define PIOS_USART_TX_BUFFER_SIZE 256 - -#define PIOS_COM_TELEM_BAUDRATE 57600 -#define PIOS_COM_GPS_BAUDRATE 57600 - -#define PIOS_COM_TELEM_RF 0 -#define PIOS_COM_GPS 1 -#define PIOS_COM_TELEM_USB 2 - -#ifdef PIOS_ENABLE_AUX_UART - #define PIOS_COM_AUX_BAUDRATE 57600 - #define PIOS_COM_AUX 3 - #define PIOS_COM_DEBUG PIOS_COM_AUX -#endif - -#ifdef PIOS_INCLUDE_SPEKTRUM - #define PIOS_COM_SPEKTRUM_BAUDRATE 115200 - #define PIOS_COM_SPEKTRUM 3 -#endif - -//------------------------- -// SPI -// -// See also pios_board.c -//------------------------- -#define PIOS_SDCARD_SPI 0 -#define PIOS_OPAHRS_SPI 1 - -//------------------------- -// Delay Timer -//------------------------- -#define PIOS_DELAY_TIMER TIM2 -#define PIOS_DELAY_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE) - -//------------------------- -// System Settings -//------------------------- -#define PIOS_MASTER_CLOCK 72000000 -#define PIOS_PERIPHERAL_CLOCK (PIOS_MASTER_CLOCK / 2) -#if defined(USE_BOOTLOADER) -#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08006000) -#else -#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08000000) -#endif - -//------------------------- -// Interrupt Priorities -//------------------------- -#define PIOS_IRQ_PRIO_LOW 12 // lower than RTOS -#define PIOS_IRQ_PRIO_MID 8 // higher than RTOS -#define PIOS_IRQ_PRIO_HIGH 5 // for SPI, ADC, I2C etc... -#define PIOS_IRQ_PRIO_HIGHEST 4 // for USART etc... - -//------------------------- -// Receiver PWM inputs -//------------------------- -#define PIOS_PWM_CH1_GPIO_PORT GPIOA -#define PIOS_PWM_CH1_PIN GPIO_Pin_9 -#define PIOS_PWM_CH1_TIM_PORT TIM1 -#define PIOS_PWM_CH1_CH TIM_Channel_2 -#define PIOS_PWM_CH1_CCR TIM_IT_CC2 -#define PIOS_PWM_CH2_GPIO_PORT GPIOA -#define PIOS_PWM_CH2_PIN GPIO_Pin_10 -#define PIOS_PWM_CH2_TIM_PORT TIM1 -#define PIOS_PWM_CH2_CH TIM_Channel_3 -#define PIOS_PWM_CH2_CCR TIM_IT_CC3 -#define PIOS_PWM_CH3_GPIO_PORT GPIOA -#define PIOS_PWM_CH3_PIN GPIO_Pin_0 -#define PIOS_PWM_CH3_TIM_PORT TIM5 -#define PIOS_PWM_CH3_CH TIM_Channel_1 -#define PIOS_PWM_CH3_CCR TIM_IT_CC1 -#define PIOS_PWM_CH4_GPIO_PORT GPIOA -#define PIOS_PWM_CH4_PIN GPIO_Pin_8 -#define PIOS_PWM_CH4_TIM_PORT TIM1 -#define PIOS_PWM_CH4_CH TIM_Channel_1 -#define PIOS_PWM_CH4_CCR TIM_IT_CC1 -#define PIOS_PWM_CH5_GPIO_PORT GPIOB -#define PIOS_PWM_CH5_PIN GPIO_Pin_1 -#define PIOS_PWM_CH5_TIM_PORT TIM3 -#define PIOS_PWM_CH5_CH TIM_Channel_4 -#define PIOS_PWM_CH5_CCR TIM_IT_CC4 -#define PIOS_PWM_CH6_GPIO_PORT GPIOB -#define PIOS_PWM_CH6_PIN GPIO_Pin_0 -#define PIOS_PWM_CH6_TIM_PORT TIM3 -#define PIOS_PWM_CH6_CH TIM_Channel_3 -#define PIOS_PWM_CH6_CCR TIM_IT_CC3 -#define PIOS_PWM_CH7_GPIO_PORT GPIOB -#define PIOS_PWM_CH7_PIN GPIO_Pin_4 -#define PIOS_PWM_CH7_TIM_PORT TIM3 -#define PIOS_PWM_CH7_CH TIM_Channel_1 -#define PIOS_PWM_CH7_CCR TIM_IT_CC1 -#define PIOS_PWM_CH8_GPIO_PORT GPIOB -#define PIOS_PWM_CH8_PIN GPIO_Pin_5 -#define PIOS_PWM_CH8_TIM_PORT TIM3 -#define PIOS_PWM_CH8_CH TIM_Channel_2 -#define PIOS_PWM_CH8_CCR TIM_IT_CC2 -#define PIOS_PWM_GPIO_PORTS { PIOS_PWM_CH1_GPIO_PORT, PIOS_PWM_CH2_GPIO_PORT, PIOS_PWM_CH3_GPIO_PORT, PIOS_PWM_CH4_GPIO_PORT, PIOS_PWM_CH5_GPIO_PORT, PIOS_PWM_CH6_GPIO_PORT, PIOS_PWM_CH7_GPIO_PORT, PIOS_PWM_CH8_GPIO_PORT } -#define PIOS_PWM_GPIO_PINS { PIOS_PWM_CH1_PIN, PIOS_PWM_CH2_PIN, PIOS_PWM_CH3_PIN, PIOS_PWM_CH4_PIN, PIOS_PWM_CH5_PIN, PIOS_PWM_CH6_PIN, PIOS_PWM_CH7_PIN, PIOS_PWM_CH8_PIN } -#define PIOS_PWM_TIM_PORTS { PIOS_PWM_CH1_TIM_PORT, PIOS_PWM_CH2_TIM_PORT, PIOS_PWM_CH3_TIM_PORT, PIOS_PWM_CH4_TIM_PORT, PIOS_PWM_CH5_TIM_PORT, PIOS_PWM_CH6_TIM_PORT, PIOS_PWM_CH7_TIM_PORT, PIOS_PWM_CH8_TIM_PORT } -#define PIOS_PWM_TIM_CHANNELS { PIOS_PWM_CH1_CH, PIOS_PWM_CH2_CH, PIOS_PWM_CH3_CH, PIOS_PWM_CH4_CH, PIOS_PWM_CH5_CH, PIOS_PWM_CH6_CH, PIOS_PWM_CH7_CH, PIOS_PWM_CH8_CH } -#define PIOS_PWM_TIM_CCRS { PIOS_PWM_CH1_CCR, PIOS_PWM_CH2_CCR, PIOS_PWM_CH3_CCR, PIOS_PWM_CH4_CCR, PIOS_PWM_CH5_CCR, PIOS_PWM_CH6_CCR, PIOS_PWM_CH7_CCR, PIOS_PWM_CH8_CCR } -#define PIOS_PWM_TIMS { TIM1, TIM3, TIM5 } -#define PIOS_PWM_TIM_IRQS { TIM1_CC_IRQn, TIM3_IRQn, TIM5_IRQn } -#define PIOS_PWM_NUM_INPUTS 8 -#define PIOS_PWM_NUM_TIMS 3 -#define PIOS_PWM_SUPV_ENABLED 1 -#define PIOS_PWM_SUPV_TIMER TIM6 -#define PIOS_PWM_SUPV_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE) -#define PIOS_PWM_SUPV_HZ 25 -#define PIOS_PWM_SUPV_IRQ_CHANNEL TIM6_IRQn -#define PIOS_PWM_SUPV_IRQ_FUNC void TIM6_IRQHandler(void) - -//------------------------- -// Receiver PPM input -//------------------------- -#define PIOS_PPM_GPIO_PORT PIOS_PWM_CH1_GPIO_PORT -#define PIOS_PPM_GPIO_PIN PIOS_PWM_CH1_PIN -#define PIOS_PPM_TIM_PORT PIOS_PWM_CH1_TIM_PORT -#define PIOS_PPM_TIM_CHANNEL PIOS_PWM_CH1_CH -#define PIOS_PPM_TIM_CCR PIOS_PWM_CH1_CCR -#define PIOS_PPM_TIM TIM1 -#define PIOS_PPM_TIM_IRQ TIM1_CC_IRQn -#define PIOS_PPM_NUM_INPUTS 8 //Could be more if needed -#define PIOS_PPM_SUPV_ENABLED 1 -#define PIOS_PPM_SUPV_TIMER TIM6 -#define PIOS_PPM_SUPV_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE) -#define PIOS_PPM_SUPV_HZ 25 -#define PIOS_PPM_SUPV_IRQ_CHANNEL TIM6_IRQn -#define PIOS_PPM_SUPV_IRQ_FUNC void TIM6_IRQHandler(void) - - -//------------------------- -// Servo outputs -//------------------------- -#define PIOS_SERVO_GPIO_PORT_1TO4 GPIOB -#define PIOS_SERVO_GPIO_PIN_1 GPIO_Pin_6 -#define PIOS_SERVO_GPIO_PIN_2 GPIO_Pin_7 -#define PIOS_SERVO_GPIO_PIN_3 GPIO_Pin_8 -#define PIOS_SERVO_GPIO_PIN_4 GPIO_Pin_9 -#define PIOS_SERVO_GPIO_PORT_5TO8 GPIOC -#define PIOS_SERVO_GPIO_PIN_5 GPIO_Pin_6 -#define PIOS_SERVO_GPIO_PIN_6 GPIO_Pin_7 -#define PIOS_SERVO_GPIO_PIN_7 GPIO_Pin_8 -#define PIOS_SERVO_GPIO_PIN_8 GPIO_Pin_9 -#define PIOS_SERVO_NUM_OUTPUTS 8 -#define PIOS_SERVO_NUM_TIMERS PIOS_SERVO_NUM_OUTPUTS -#define PIOS_SERVO_UPDATE_HZ 50 -#define PIOS_SERVOS_INITIAL_POSITION 1500 - -//------------------------- -// ADC -// PIOS_ADC_PinGet(0) = Temperature Sensor (On-board) -// PIOS_ADC_PinGet(1) = Power Sensor (Current) -// PIOS_ADC_PinGet(2) = Power Sensor (Voltage) -// PIOS_ADC_PinGet(3) = On-board 5v Rail Sensor -// PIOS_ADC_PinGet(4) = Auxiliary Input 1 -// PIOS_ADC_PinGet(5) = Auxiliary Input 2 -// PIOS_ADC_PinGet(6) = Auxiliary Input 3 -//------------------------- -//#define PIOS_ADC_OVERSAMPLING_RATE 1 -#define PIOS_ADC_USE_TEMP_SENSOR 1 -#define PIOS_ADC_TEMP_SENSOR_ADC ADC1 -#define PIOS_ADC_TEMP_SENSOR_ADC_CHANNEL 1 -#define PIOS_ADC_PIN1_GPIO_PORT GPIOA // PA1 (Power Sense - Voltage) -#define PIOS_ADC_PIN1_GPIO_PIN GPIO_Pin_1 // ADC123_IN1 -#define PIOS_ADC_PIN1_GPIO_CHANNEL ADC_Channel_1 -#define PIOS_ADC_PIN1_ADC ADC1 -#define PIOS_ADC_PIN1_ADC_NUMBER 2 -#define PIOS_ADC_PIN2_GPIO_PORT GPIOC // PC3 (Power Sense - Current) -#define PIOS_ADC_PIN2_GPIO_PIN GPIO_Pin_3 // ADC123_IN13 -#define PIOS_ADC_PIN2_GPIO_CHANNEL ADC_Channel_13 -#define PIOS_ADC_PIN2_ADC ADC2 -#define PIOS_ADC_PIN2_ADC_NUMBER 1 -#define PIOS_ADC_PIN3_GPIO_PORT GPIOC // PC5 (Onboard 5v Sensor) PC5 -#define PIOS_ADC_PIN3_GPIO_PIN GPIO_Pin_5 // ADC12_IN15 -#define PIOS_ADC_PIN3_GPIO_CHANNEL ADC_Channel_15 -#define PIOS_ADC_PIN3_ADC ADC2 -#define PIOS_ADC_PIN3_ADC_NUMBER 2 -#define PIOS_ADC_PIN4_GPIO_PORT GPIOC // PC0 (AUX 1) -#define PIOS_ADC_PIN4_GPIO_PIN GPIO_Pin_0 // ADC123_IN10 -#define PIOS_ADC_PIN4_GPIO_CHANNEL ADC_Channel_10 -#define PIOS_ADC_PIN4_ADC ADC1 -#define PIOS_ADC_PIN4_ADC_NUMBER 3 -#define PIOS_ADC_PIN5_GPIO_PORT GPIOC // PC1 (AUX 2) -#define PIOS_ADC_PIN5_GPIO_PIN GPIO_Pin_1 // ADC123_IN11 -#define PIOS_ADC_PIN5_GPIO_CHANNEL ADC_Channel_11 -#define PIOS_ADC_PIN5_ADC ADC2 -#define PIOS_ADC_PIN5_ADC_NUMBER 3 -#define PIOS_ADC_PIN6_GPIO_PORT GPIOC // PC2 (AUX 3) -#define PIOS_ADC_PIN6_GPIO_PIN GPIO_Pin_2 // ADC123_IN12 -#define PIOS_ADC_PIN6_GPIO_CHANNEL ADC_Channel_12 -#define PIOS_ADC_PIN6_ADC ADC1 -#define PIOS_ADC_PIN6_ADC_NUMBER 4 -#define PIOS_ADC_NUM_PINS 6 -#define PIOS_ADC_PORTS { PIOS_ADC_PIN1_GPIO_PORT, PIOS_ADC_PIN2_GPIO_PORT, PIOS_ADC_PIN3_GPIO_PORT, PIOS_ADC_PIN4_GPIO_PORT, PIOS_ADC_PIN5_GPIO_PORT, PIOS_ADC_PIN6_GPIO_PORT } -#define PIOS_ADC_PINS { PIOS_ADC_PIN1_GPIO_PIN, PIOS_ADC_PIN2_GPIO_PIN, PIOS_ADC_PIN3_GPIO_PIN, PIOS_ADC_PIN4_GPIO_PIN, PIOS_ADC_PIN5_GPIO_PIN, PIOS_ADC_PIN6_GPIO_PIN } -#define PIOS_ADC_CHANNELS { PIOS_ADC_PIN1_GPIO_CHANNEL, PIOS_ADC_PIN2_GPIO_CHANNEL, PIOS_ADC_PIN3_GPIO_CHANNEL, PIOS_ADC_PIN4_GPIO_CHANNEL, PIOS_ADC_PIN5_GPIO_CHANNEL, PIOS_ADC_PIN6_GPIO_CHANNEL } -#define PIOS_ADC_MAPPING { PIOS_ADC_PIN1_ADC, PIOS_ADC_PIN2_ADC, PIOS_ADC_PIN3_ADC, PIOS_ADC_PIN4_ADC, PIOS_ADC_PIN5_ADC, PIOS_ADC_PIN6_ADC } -#define PIOS_ADC_CHANNEL_MAPPING { PIOS_ADC_PIN1_ADC_NUMBER, PIOS_ADC_PIN2_ADC_NUMBER, PIOS_ADC_PIN3_ADC_NUMBER, PIOS_ADC_PIN4_ADC_NUMBER, PIOS_ADC_PIN5_ADC_NUMBER, PIOS_ADC_PIN6_ADC_NUMBER } -#define PIOS_ADC_NUM_CHANNELS (PIOS_ADC_NUM_PINS + PIOS_ADC_USE_TEMP_SENSOR) -#define PIOS_ADC_NUM_ADC_CHANNELS 2 -#define PIOS_ADC_USE_ADC2 1 -#define PIOS_ADC_CLOCK_FUNCTION RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2, ENABLE) -#define PIOS_ADC_ADCCLK RCC_PCLK2_Div8 - /* RCC_PCLK2_Div2: ADC clock = PCLK2/2 */ - /* RCC_PCLK2_Div4: ADC clock = PCLK2/4 */ - /* RCC_PCLK2_Div6: ADC clock = PCLK2/6 */ - /* RCC_PCLK2_Div8: ADC clock = PCLK2/8 */ -#define PIOS_ADC_SAMPLE_TIME ADC_SampleTime_239Cycles5 - /* Sample time: */ - /* With an ADCCLK = 14 MHz and a sampling time of 293.5 cycles: */ - /* Tconv = 239.5 + 12.5 = 252 cycles = 18�s */ - /* (1 / (ADCCLK / CYCLES)) = Sample Time (�S) */ -#define PIOS_ADC_IRQ_PRIO PIOS_IRQ_PRIO_HIGH - -//------------------------- -// GPIO -//------------------------- -#define PIOS_GPIO_1_PORT GPIOC -#define PIOS_GPIO_1_PIN GPIO_Pin_0 -#define PIOS_GPIO_1_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_GPIO_2_PORT GPIOC -#define PIOS_GPIO_2_PIN GPIO_Pin_1 -#define PIOS_GPIO_2_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_GPIO_3_PORT GPIOC -#define PIOS_GPIO_3_PIN GPIO_Pin_2 -#define PIOS_GPIO_3_GPIO_CLK RCC_APB2Periph_GPIOC -#define PIOS_GPIO_4_PORT GPIOD -#define PIOS_GPIO_4_PIN GPIO_Pin_2 -#define PIOS_GPIO_4_GPIO_CLK RCC_APB2Periph_GPIOD -#define PIOS_GPIO_PORTS { PIOS_GPIO_1_PORT, PIOS_GPIO_2_PORT, PIOS_GPIO_3_PORT, PIOS_GPIO_4_PORT } -#define PIOS_GPIO_PINS { PIOS_GPIO_1_PIN, PIOS_GPIO_2_PIN, PIOS_GPIO_3_PIN, PIOS_GPIO_4_PIN } -#define PIOS_GPIO_CLKS { PIOS_GPIO_1_GPIO_CLK, PIOS_GPIO_2_GPIO_CLK, PIOS_GPIO_3_GPIO_CLK, PIOS_GPIO_4_GPIO_CLK } -#define PIOS_GPIO_NUM 4 - -//------------------------- -// USB -//------------------------- -#define PIOS_USB_ENABLED 1 -#define PIOS_USB_DETECT_GPIO_PORT GPIOC -#define PIOS_USB_DETECT_GPIO_PIN GPIO_Pin_4 -#define PIOS_USB_DETECT_EXTI_LINE EXTI_Line4 -#define PIOS_IRQ_USB_PRIORITY PIOS_IRQ_PRIO_MID - -/** - * glue macros for file IO - * STM32 uses DOSFS for file IO - */ -#define PIOS_FOPEN_READ(filename,file) DFS_OpenFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, DFS_READ, PIOS_SDCARD_Sector, &file) != DFS_OK - -#define PIOS_FOPEN_WRITE(filename,file) DFS_OpenFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, DFS_WRITE, PIOS_SDCARD_Sector, &file) != DFS_OK - -#define PIOS_FREAD(file,bufferadr,length,resultadr) DFS_ReadFile(file, PIOS_SDCARD_Sector, (uint8_t*)bufferadr, resultadr, length) != DFS_OK - -#define PIOS_FWRITE(file,bufferadr,length,resultadr) DFS_WriteFile(file, PIOS_SDCARD_Sector, (uint8_t*)bufferadr, resultadr, length) - -#define PIOS_FCLOSE(file) DFS_Close(&file) - -#define PIOS_FUNLINK(filename) DFS_UnlinkFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, PIOS_SDCARD_Sector) - - - -#endif /* PIOS_BOARD_H */ -/** - * @} - * @} - */ diff --git a/flight/AHRS/inc/pios_board.h b/flight/PiOS/Boards/STM32103CB_AHRS.h similarity index 90% rename from flight/AHRS/inc/pios_board.h rename to flight/PiOS/Boards/STM32103CB_AHRS.h index da08e1674..469353402 100644 --- a/flight/AHRS/inc/pios_board.h +++ b/flight/PiOS/Boards/STM32103CB_AHRS.h @@ -24,8 +24,8 @@ */ -#ifndef PIOS_BOARD_H -#define PIOS_BOARD_H +#ifndef STM32103CB_AHRS_H_ +#define STM32103CB_AHRS_H_ //------------------------ @@ -61,6 +61,25 @@ TIM8 | | | | /* Channel 11 - */ /* Channel 12 - */ + +//------------------------ +// BOOTLOADER_SETTINGS +//------------------------ +#define HW_VERSION 69 +#define BOOTLOADER_VERSION 0 +#define MEM_SIZE 0x20000 //128K +#define SIZE_OF_DESCRIPTION 100 +#define START_OF_USER_CODE (uint32_t)0x08003400 +#define SIZE_OF_CODE (uint32_t)(MEM_SIZE-(START_OF_USER_CODE-0x08000000)-SIZE_OF_DESCRIPTION) +#ifdef STM32F10X_HD + #define HW_TYPE 0 //0=high_density 1=medium_density; +#elif STM32F10X_MD + #define HW_TYPE 1 //0=high_density 1=medium_density; +#endif +#define BOARD_READABLE TRUE +#define BOARD_WRITABLA TRUE +#define MAX_DEL_RETRYS 3 + //------------------------ // PIOS_LED //------------------------ @@ -84,7 +103,7 @@ TIM8 | | | | #define PIOS_MASTER_CLOCK 72000000 #define PIOS_PERIPHERAL_CLOCK (PIOS_MASTER_CLOCK / 2) #if defined(USE_BOOTLOADER) -#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08006000) +#define PIOS_NVIC_VECTTAB_FLASH (START_OF_USER_CODE) #else #define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08000000) #endif @@ -232,4 +251,6 @@ TIM8 | | | | #define PIOS_HMC5843_DRDY_IRQn EXTI9_5_IRQn #define PIOS_HMC5843_DRDY_PRIO PIOS_IRQ_PRIO_HIGH -#endif /* PIOS_BOARD_H */ + + +#endif /* STM32103CB_AHRS_H_ */ diff --git a/flight/PiOS/Boards/STM3210E_OP.h b/flight/PiOS/Boards/STM3210E_OP.h new file mode 100644 index 000000000..b9e8e14dd --- /dev/null +++ b/flight/PiOS/Boards/STM3210E_OP.h @@ -0,0 +1,392 @@ +/** + ****************************************************************************** + * @addtogroup OpenPilotSystem OpenPilot System + * @{ + * @addtogroup OpenPilotCore OpenPilot Core + * @{ + * @file pios_board.h + * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. + * @brief Defines board hardware for the OpenPilot Version 1.1 hardware. + * @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 STM3210E_OP_H_ +#define STM3210E_OP_H_ + + + +//------------------------ +// Timers and Channels Used +//------------------------ +/* +Timer | Channel 1 | Channel 2 | Channel 3 | Channel 4 +------+-----------+-----------+-----------+---------- +TIM1 | RC In 3 | RC In 6 | RC In 5 | +TIM2 | --------------- PIOS_DELAY ----------------- +TIM3 | RC In 7 | RC In 8 | RC In 1 | RC In 2 +TIM4 | Servo 1 | Servo 2 | Servo 3 | Servo 4 +TIM5 | RC In 4 | | | +TIM6 | ----------- PIOS_PWM (Supervisor) ---------- +TIM7 | | | | +TIM8 | Servo 5 | Servo 6 | Servo 7 | Servo 8 +------+-----------+-----------+-----------+---------- +*/ + +//------------------------ +// DMA Channels Used +//------------------------ +/* Channel 1 - ADC */ +/* Channel 2 - SPI1 RX */ +/* Channel 3 - SPI1 TX */ +/* Channel 4 - SPI2 RX */ +/* Channel 5 - SPI2 TX */ +/* Channel 6 - */ +/* Channel 7 - */ +/* Channel 8 - */ +/* Channel 9 - */ +/* Channel 10 - */ +/* Channel 11 - */ +/* Channel 12 - */ + +//------------------------ +// BOOTLOADER_SETTINGS +//------------------------ + +#define HW_VERSION 01 +#define BOOTLOADER_VERSION 0 +#define MEM_SIZE 524288 //512K +#define SIZE_OF_DESCRIPTION (uint8_t) 100 +#define SIZE_OF_CODE (uint32_t) (MEM_SIZE-(START_OF_USER_CODE-0x08000000)-SIZE_OF_DESCRIPTION) +#define START_OF_USER_CODE 0x0800F000 +#ifdef STM32F10X_HD + #define HW_TYPE 0 //0=high_density 1=medium_density; +#elif STM32F10X_MD + #define HW_TYPE 1 //0=high_density 1=medium_density; +#endif +#define BOARD_READABLE TRUE +#define BOARD_WRITABLA TRUE +#define MAX_DEL_RETRYS 3 + +//------------------------ +// PIOS_LED +//------------------------ +#define PIOS_LED_LED1_GPIO_PORT GPIOC +#define PIOS_LED_LED1_GPIO_PIN GPIO_Pin_12 +#define PIOS_LED_LED1_GPIO_CLK RCC_APB2Periph_GPIOC +#define PIOS_LED_LED2_GPIO_PORT GPIOC +#define PIOS_LED_LED2_GPIO_PIN GPIO_Pin_13 +#define PIOS_LED_LED2_GPIO_CLK RCC_APB2Periph_GPIOC +#define PIOS_LED_NUM 2 +#define PIOS_LED_PORTS { PIOS_LED_LED1_GPIO_PORT, PIOS_LED_LED2_GPIO_PORT } +#define PIOS_LED_PINS { PIOS_LED_LED1_GPIO_PIN, PIOS_LED_LED2_GPIO_PIN } +#define PIOS_LED_CLKS { PIOS_LED_LED1_GPIO_CLK, PIOS_LED_LED2_GPIO_CLK } + +//------------------------ +// PIOS_I2C +// See also pios_board.c +//------------------------ +#define PIOS_I2C_MAIN_ADAPTER 0 + +//------------------------ +// PIOS_BMP085 +//------------------------ +#define PIOS_BMP085_EOC_GPIO_PORT GPIOC +#define PIOS_BMP085_EOC_GPIO_PIN GPIO_Pin_15 +#define PIOS_BMP085_EOC_PORT_SOURCE GPIO_PortSourceGPIOC +#define PIOS_BMP085_EOC_PIN_SOURCE GPIO_PinSource15 +#define PIOS_BMP085_EOC_CLK RCC_APB2Periph_GPIOC +#define PIOS_BMP085_EOC_EXTI_LINE EXTI_Line15 +#define PIOS_BMP085_EOC_IRQn EXTI15_10_IRQn +#define PIOS_BMP085_EOC_PRIO PIOS_IRQ_PRIO_HIGH +#define PIOS_BMP085_OVERSAMPLING 2 + +//------------------------- +// USART +// +// See also pios_board.c +//------------------------- +#define PIOS_USART_RX_BUFFER_SIZE 1024 +#define PIOS_USART_TX_BUFFER_SIZE 256 + +#define PIOS_COM_TELEM_BAUDRATE 57600 +#define PIOS_COM_GPS_BAUDRATE 57600 + +#define PIOS_COM_TELEM_RF 0 +#define PIOS_COM_GPS 1 +#define PIOS_COM_TELEM_USB 2 + +#ifdef PIOS_ENABLE_AUX_UART + #define PIOS_COM_AUX_BAUDRATE 57600 + #define PIOS_COM_AUX 3 + #define PIOS_COM_DEBUG PIOS_COM_AUX +#endif + +#ifdef PIOS_INCLUDE_SPEKTRUM + #define PIOS_COM_SPEKTRUM_BAUDRATE 115200 + #define PIOS_COM_SPEKTRUM 3 +#endif + +//------------------------- +// SPI +// +// See also pios_board.c +//------------------------- +#define PIOS_SDCARD_SPI 0 +#define PIOS_OPAHRS_SPI 1 + +//------------------------- +// Delay Timer +//------------------------- +#define PIOS_DELAY_TIMER TIM2 +#define PIOS_DELAY_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE) + +//------------------------- +// System Settings +//------------------------- +#define PIOS_MASTER_CLOCK 72000000 +#define PIOS_PERIPHERAL_CLOCK (PIOS_MASTER_CLOCK / 2) +#if defined(USE_BOOTLOADER) +#define PIOS_NVIC_VECTTAB_FLASH (START_OF_USER_CODE) +#else +#define PIOS_NVIC_VECTTAB_FLASH ((uint32_t)0x08000000) +#endif + +//------------------------- +// Interrupt Priorities +//------------------------- +#define PIOS_IRQ_PRIO_LOW 12 // lower than RTOS +#define PIOS_IRQ_PRIO_MID 8 // higher than RTOS +#define PIOS_IRQ_PRIO_HIGH 5 // for SPI, ADC, I2C etc... +#define PIOS_IRQ_PRIO_HIGHEST 4 // for USART etc... + +//------------------------- +// Receiver PWM inputs +//------------------------- +#define PIOS_PWM_CH1_GPIO_PORT GPIOA +#define PIOS_PWM_CH1_PIN GPIO_Pin_9 +#define PIOS_PWM_CH1_TIM_PORT TIM1 +#define PIOS_PWM_CH1_CH TIM_Channel_2 +#define PIOS_PWM_CH1_CCR TIM_IT_CC2 +#define PIOS_PWM_CH2_GPIO_PORT GPIOA +#define PIOS_PWM_CH2_PIN GPIO_Pin_10 +#define PIOS_PWM_CH2_TIM_PORT TIM1 +#define PIOS_PWM_CH2_CH TIM_Channel_3 +#define PIOS_PWM_CH2_CCR TIM_IT_CC3 +#define PIOS_PWM_CH3_GPIO_PORT GPIOA +#define PIOS_PWM_CH3_PIN GPIO_Pin_0 +#define PIOS_PWM_CH3_TIM_PORT TIM5 +#define PIOS_PWM_CH3_CH TIM_Channel_1 +#define PIOS_PWM_CH3_CCR TIM_IT_CC1 +#define PIOS_PWM_CH4_GPIO_PORT GPIOA +#define PIOS_PWM_CH4_PIN GPIO_Pin_8 +#define PIOS_PWM_CH4_TIM_PORT TIM1 +#define PIOS_PWM_CH4_CH TIM_Channel_1 +#define PIOS_PWM_CH4_CCR TIM_IT_CC1 +#define PIOS_PWM_CH5_GPIO_PORT GPIOB +#define PIOS_PWM_CH5_PIN GPIO_Pin_1 +#define PIOS_PWM_CH5_TIM_PORT TIM3 +#define PIOS_PWM_CH5_CH TIM_Channel_4 +#define PIOS_PWM_CH5_CCR TIM_IT_CC4 +#define PIOS_PWM_CH6_GPIO_PORT GPIOB +#define PIOS_PWM_CH6_PIN GPIO_Pin_0 +#define PIOS_PWM_CH6_TIM_PORT TIM3 +#define PIOS_PWM_CH6_CH TIM_Channel_3 +#define PIOS_PWM_CH6_CCR TIM_IT_CC3 +#define PIOS_PWM_CH7_GPIO_PORT GPIOB +#define PIOS_PWM_CH7_PIN GPIO_Pin_4 +#define PIOS_PWM_CH7_TIM_PORT TIM3 +#define PIOS_PWM_CH7_CH TIM_Channel_1 +#define PIOS_PWM_CH7_CCR TIM_IT_CC1 +#define PIOS_PWM_CH8_GPIO_PORT GPIOB +#define PIOS_PWM_CH8_PIN GPIO_Pin_5 +#define PIOS_PWM_CH8_TIM_PORT TIM3 +#define PIOS_PWM_CH8_CH TIM_Channel_2 +#define PIOS_PWM_CH8_CCR TIM_IT_CC2 +#define PIOS_PWM_GPIO_PORTS { PIOS_PWM_CH1_GPIO_PORT, PIOS_PWM_CH2_GPIO_PORT, PIOS_PWM_CH3_GPIO_PORT, PIOS_PWM_CH4_GPIO_PORT, PIOS_PWM_CH5_GPIO_PORT, PIOS_PWM_CH6_GPIO_PORT, PIOS_PWM_CH7_GPIO_PORT, PIOS_PWM_CH8_GPIO_PORT } +#define PIOS_PWM_GPIO_PINS { PIOS_PWM_CH1_PIN, PIOS_PWM_CH2_PIN, PIOS_PWM_CH3_PIN, PIOS_PWM_CH4_PIN, PIOS_PWM_CH5_PIN, PIOS_PWM_CH6_PIN, PIOS_PWM_CH7_PIN, PIOS_PWM_CH8_PIN } +#define PIOS_PWM_TIM_PORTS { PIOS_PWM_CH1_TIM_PORT, PIOS_PWM_CH2_TIM_PORT, PIOS_PWM_CH3_TIM_PORT, PIOS_PWM_CH4_TIM_PORT, PIOS_PWM_CH5_TIM_PORT, PIOS_PWM_CH6_TIM_PORT, PIOS_PWM_CH7_TIM_PORT, PIOS_PWM_CH8_TIM_PORT } +#define PIOS_PWM_TIM_CHANNELS { PIOS_PWM_CH1_CH, PIOS_PWM_CH2_CH, PIOS_PWM_CH3_CH, PIOS_PWM_CH4_CH, PIOS_PWM_CH5_CH, PIOS_PWM_CH6_CH, PIOS_PWM_CH7_CH, PIOS_PWM_CH8_CH } +#define PIOS_PWM_TIM_CCRS { PIOS_PWM_CH1_CCR, PIOS_PWM_CH2_CCR, PIOS_PWM_CH3_CCR, PIOS_PWM_CH4_CCR, PIOS_PWM_CH5_CCR, PIOS_PWM_CH6_CCR, PIOS_PWM_CH7_CCR, PIOS_PWM_CH8_CCR } +#define PIOS_PWM_TIMS { TIM1, TIM3, TIM5 } +#define PIOS_PWM_TIM_IRQS { TIM1_CC_IRQn, TIM3_IRQn, TIM5_IRQn } +#define PIOS_PWM_NUM_INPUTS 8 +#define PIOS_PWM_NUM_TIMS 3 +#define PIOS_PWM_SUPV_ENABLED 1 +#define PIOS_PWM_SUPV_TIMER TIM6 +#define PIOS_PWM_SUPV_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE) +#define PIOS_PWM_SUPV_HZ 25 +#define PIOS_PWM_SUPV_IRQ_CHANNEL TIM6_IRQn +#define PIOS_PWM_SUPV_IRQ_FUNC void TIM6_IRQHandler(void) + +//------------------------- +// Receiver PPM input +//------------------------- +#define PIOS_PPM_GPIO_PORT PIOS_PWM_CH1_GPIO_PORT +#define PIOS_PPM_GPIO_PIN PIOS_PWM_CH1_PIN +#define PIOS_PPM_TIM_PORT PIOS_PWM_CH1_TIM_PORT +#define PIOS_PPM_TIM_CHANNEL PIOS_PWM_CH1_CH +#define PIOS_PPM_TIM_CCR PIOS_PWM_CH1_CCR +#define PIOS_PPM_TIM TIM1 +#define PIOS_PPM_TIM_IRQ TIM1_CC_IRQn +#define PIOS_PPM_NUM_INPUTS 8 //Could be more if needed +#define PIOS_PPM_SUPV_ENABLED 1 +#define PIOS_PPM_SUPV_TIMER TIM6 +#define PIOS_PPM_SUPV_TIMER_RCC_FUNC RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE) +#define PIOS_PPM_SUPV_HZ 25 +#define PIOS_PPM_SUPV_IRQ_CHANNEL TIM6_IRQn +#define PIOS_PPM_SUPV_IRQ_FUNC void TIM6_IRQHandler(void) + + +//------------------------- +// Servo outputs +//------------------------- +#define PIOS_SERVO_GPIO_PORT_1TO4 GPIOB +#define PIOS_SERVO_GPIO_PIN_1 GPIO_Pin_6 +#define PIOS_SERVO_GPIO_PIN_2 GPIO_Pin_7 +#define PIOS_SERVO_GPIO_PIN_3 GPIO_Pin_8 +#define PIOS_SERVO_GPIO_PIN_4 GPIO_Pin_9 +#define PIOS_SERVO_GPIO_PORT_5TO8 GPIOC +#define PIOS_SERVO_GPIO_PIN_5 GPIO_Pin_6 +#define PIOS_SERVO_GPIO_PIN_6 GPIO_Pin_7 +#define PIOS_SERVO_GPIO_PIN_7 GPIO_Pin_8 +#define PIOS_SERVO_GPIO_PIN_8 GPIO_Pin_9 +#define PIOS_SERVO_NUM_OUTPUTS 8 +#define PIOS_SERVO_NUM_TIMERS PIOS_SERVO_NUM_OUTPUTS +#define PIOS_SERVO_UPDATE_HZ 50 +#define PIOS_SERVOS_INITIAL_POSITION 1500 + +//------------------------- +// ADC +// PIOS_ADC_PinGet(0) = Temperature Sensor (On-board) +// PIOS_ADC_PinGet(1) = Power Sensor (Current) +// PIOS_ADC_PinGet(2) = Power Sensor (Voltage) +// PIOS_ADC_PinGet(3) = On-board 5v Rail Sensor +// PIOS_ADC_PinGet(4) = Auxiliary Input 1 +// PIOS_ADC_PinGet(5) = Auxiliary Input 2 +// PIOS_ADC_PinGet(6) = Auxiliary Input 3 +//------------------------- +//#define PIOS_ADC_OVERSAMPLING_RATE 1 +#define PIOS_ADC_USE_TEMP_SENSOR 1 +#define PIOS_ADC_TEMP_SENSOR_ADC ADC1 +#define PIOS_ADC_TEMP_SENSOR_ADC_CHANNEL 1 +#define PIOS_ADC_PIN1_GPIO_PORT GPIOA // PA1 (Power Sense - Voltage) +#define PIOS_ADC_PIN1_GPIO_PIN GPIO_Pin_1 // ADC123_IN1 +#define PIOS_ADC_PIN1_GPIO_CHANNEL ADC_Channel_1 +#define PIOS_ADC_PIN1_ADC ADC1 +#define PIOS_ADC_PIN1_ADC_NUMBER 2 +#define PIOS_ADC_PIN2_GPIO_PORT GPIOC // PC3 (Power Sense - Current) +#define PIOS_ADC_PIN2_GPIO_PIN GPIO_Pin_3 // ADC123_IN13 +#define PIOS_ADC_PIN2_GPIO_CHANNEL ADC_Channel_13 +#define PIOS_ADC_PIN2_ADC ADC2 +#define PIOS_ADC_PIN2_ADC_NUMBER 1 +#define PIOS_ADC_PIN3_GPIO_PORT GPIOC // PC5 (Onboard 5v Sensor) PC5 +#define PIOS_ADC_PIN3_GPIO_PIN GPIO_Pin_5 // ADC12_IN15 +#define PIOS_ADC_PIN3_GPIO_CHANNEL ADC_Channel_15 +#define PIOS_ADC_PIN3_ADC ADC2 +#define PIOS_ADC_PIN3_ADC_NUMBER 2 +#define PIOS_ADC_PIN4_GPIO_PORT GPIOC // PC0 (AUX 1) +#define PIOS_ADC_PIN4_GPIO_PIN GPIO_Pin_0 // ADC123_IN10 +#define PIOS_ADC_PIN4_GPIO_CHANNEL ADC_Channel_10 +#define PIOS_ADC_PIN4_ADC ADC1 +#define PIOS_ADC_PIN4_ADC_NUMBER 3 +#define PIOS_ADC_PIN5_GPIO_PORT GPIOC // PC1 (AUX 2) +#define PIOS_ADC_PIN5_GPIO_PIN GPIO_Pin_1 // ADC123_IN11 +#define PIOS_ADC_PIN5_GPIO_CHANNEL ADC_Channel_11 +#define PIOS_ADC_PIN5_ADC ADC2 +#define PIOS_ADC_PIN5_ADC_NUMBER 3 +#define PIOS_ADC_PIN6_GPIO_PORT GPIOC // PC2 (AUX 3) +#define PIOS_ADC_PIN6_GPIO_PIN GPIO_Pin_2 // ADC123_IN12 +#define PIOS_ADC_PIN6_GPIO_CHANNEL ADC_Channel_12 +#define PIOS_ADC_PIN6_ADC ADC1 +#define PIOS_ADC_PIN6_ADC_NUMBER 4 +#define PIOS_ADC_NUM_PINS 6 +#define PIOS_ADC_PORTS { PIOS_ADC_PIN1_GPIO_PORT, PIOS_ADC_PIN2_GPIO_PORT, PIOS_ADC_PIN3_GPIO_PORT, PIOS_ADC_PIN4_GPIO_PORT, PIOS_ADC_PIN5_GPIO_PORT, PIOS_ADC_PIN6_GPIO_PORT } +#define PIOS_ADC_PINS { PIOS_ADC_PIN1_GPIO_PIN, PIOS_ADC_PIN2_GPIO_PIN, PIOS_ADC_PIN3_GPIO_PIN, PIOS_ADC_PIN4_GPIO_PIN, PIOS_ADC_PIN5_GPIO_PIN, PIOS_ADC_PIN6_GPIO_PIN } +#define PIOS_ADC_CHANNELS { PIOS_ADC_PIN1_GPIO_CHANNEL, PIOS_ADC_PIN2_GPIO_CHANNEL, PIOS_ADC_PIN3_GPIO_CHANNEL, PIOS_ADC_PIN4_GPIO_CHANNEL, PIOS_ADC_PIN5_GPIO_CHANNEL, PIOS_ADC_PIN6_GPIO_CHANNEL } +#define PIOS_ADC_MAPPING { PIOS_ADC_PIN1_ADC, PIOS_ADC_PIN2_ADC, PIOS_ADC_PIN3_ADC, PIOS_ADC_PIN4_ADC, PIOS_ADC_PIN5_ADC, PIOS_ADC_PIN6_ADC } +#define PIOS_ADC_CHANNEL_MAPPING { PIOS_ADC_PIN1_ADC_NUMBER, PIOS_ADC_PIN2_ADC_NUMBER, PIOS_ADC_PIN3_ADC_NUMBER, PIOS_ADC_PIN4_ADC_NUMBER, PIOS_ADC_PIN5_ADC_NUMBER, PIOS_ADC_PIN6_ADC_NUMBER } +#define PIOS_ADC_NUM_CHANNELS (PIOS_ADC_NUM_PINS + PIOS_ADC_USE_TEMP_SENSOR) +#define PIOS_ADC_NUM_ADC_CHANNELS 2 +#define PIOS_ADC_USE_ADC2 1 +#define PIOS_ADC_CLOCK_FUNCTION RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_ADC2, ENABLE) +#define PIOS_ADC_ADCCLK RCC_PCLK2_Div8 + /* RCC_PCLK2_Div2: ADC clock = PCLK2/2 */ + /* RCC_PCLK2_Div4: ADC clock = PCLK2/4 */ + /* RCC_PCLK2_Div6: ADC clock = PCLK2/6 */ + /* RCC_PCLK2_Div8: ADC clock = PCLK2/8 */ +#define PIOS_ADC_SAMPLE_TIME ADC_SampleTime_239Cycles5 + /* Sample time: */ + /* With an ADCCLK = 14 MHz and a sampling time of 293.5 cycles: */ + /* Tconv = 239.5 + 12.5 = 252 cycles = 18?s */ + /* (1 / (ADCCLK / CYCLES)) = Sample Time (?S) */ +#define PIOS_ADC_IRQ_PRIO PIOS_IRQ_PRIO_HIGH + +//------------------------- +// GPIO +//------------------------- +#define PIOS_GPIO_1_PORT GPIOC +#define PIOS_GPIO_1_PIN GPIO_Pin_0 +#define PIOS_GPIO_1_GPIO_CLK RCC_APB2Periph_GPIOC +#define PIOS_GPIO_2_PORT GPIOC +#define PIOS_GPIO_2_PIN GPIO_Pin_1 +#define PIOS_GPIO_2_GPIO_CLK RCC_APB2Periph_GPIOC +#define PIOS_GPIO_3_PORT GPIOC +#define PIOS_GPIO_3_PIN GPIO_Pin_2 +#define PIOS_GPIO_3_GPIO_CLK RCC_APB2Periph_GPIOC +#define PIOS_GPIO_4_PORT GPIOD +#define PIOS_GPIO_4_PIN GPIO_Pin_2 +#define PIOS_GPIO_4_GPIO_CLK RCC_APB2Periph_GPIOD +#define PIOS_GPIO_PORTS { PIOS_GPIO_1_PORT, PIOS_GPIO_2_PORT, PIOS_GPIO_3_PORT, PIOS_GPIO_4_PORT } +#define PIOS_GPIO_PINS { PIOS_GPIO_1_PIN, PIOS_GPIO_2_PIN, PIOS_GPIO_3_PIN, PIOS_GPIO_4_PIN } +#define PIOS_GPIO_CLKS { PIOS_GPIO_1_GPIO_CLK, PIOS_GPIO_2_GPIO_CLK, PIOS_GPIO_3_GPIO_CLK, PIOS_GPIO_4_GPIO_CLK } +#define PIOS_GPIO_NUM 4 + +//------------------------- +// USB +//------------------------- +#define PIOS_USB_ENABLED 1 +#define PIOS_USB_DETECT_GPIO_PORT GPIOC +#define PIOS_USB_DETECT_GPIO_PIN GPIO_Pin_4 +#define PIOS_USB_DETECT_EXTI_LINE EXTI_Line4 +#define PIOS_IRQ_USB_PRIORITY PIOS_IRQ_PRIO_MID + +/** + * glue macros for file IO + * STM32 uses DOSFS for file IO + */ +#define PIOS_FOPEN_READ(filename,file) DFS_OpenFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, DFS_READ, PIOS_SDCARD_Sector, &file) != DFS_OK + +#define PIOS_FOPEN_WRITE(filename,file) DFS_OpenFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, DFS_WRITE, PIOS_SDCARD_Sector, &file) != DFS_OK + +#define PIOS_FREAD(file,bufferadr,length,resultadr) DFS_ReadFile(file, PIOS_SDCARD_Sector, (uint8_t*)bufferadr, resultadr, length) != DFS_OK + +#define PIOS_FWRITE(file,bufferadr,length,resultadr) DFS_WriteFile(file, PIOS_SDCARD_Sector, (uint8_t*)bufferadr, resultadr, length) + +#define PIOS_FCLOSE(file) DFS_Close(&file) + +#define PIOS_FUNLINK(filename) DFS_UnlinkFile(&PIOS_SDCARD_VolInfo, (uint8_t *)filename, PIOS_SDCARD_Sector) + + + +#endif /* STM3210E_OP_H_ */ +/** + * @} + * @} + */ diff --git a/flight/PiOS/Boards/pios_board.h b/flight/PiOS/Boards/pios_board.h new file mode 100644 index 000000000..fdbacdab3 --- /dev/null +++ b/flight/PiOS/Boards/pios_board.h @@ -0,0 +1,10 @@ +#ifndef PIOS_BOARD_H_ +#define PIOS_BOARD_H_ + +#ifdef USE_STM32103CB_AHRS +#include "STM32103CB_AHRS.h" +#elif USE_STM3210E_OP +#include "STM3210E_OP.h" +#endif + +#endif /* PIOS_BOARD_H_ */