diff --git a/conf/autopilot/rotorcraft.makefile b/conf/autopilot/rotorcraft.makefile index 5123dfca67..1065e3fc00 100644 --- a/conf/autopilot/rotorcraft.makefile +++ b/conf/autopilot/rotorcraft.makefile @@ -54,6 +54,8 @@ ap.ARCHDIR = $(ARCH) ap.CFLAGS += $(ROTORCRAFT_INC) ap.CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG) -DPERIPHERALS_AUTO_INIT ap.srcs = $(SRC_FIRMWARE)/main.c +ap.srcs += mcu.c +ap.srcs += $(SRC_ARCH)/mcu_arch.c ifeq ($(ARCH), stm32) ap.srcs += lisa/plug_sys.c diff --git a/conf/autopilot/subsystems/fixedwing/autopilot.makefile b/conf/autopilot/subsystems/fixedwing/autopilot.makefile index 7a334a7338..7bf9f40dc4 100644 --- a/conf/autopilot/subsystems/fixedwing/autopilot.makefile +++ b/conf/autopilot/subsystems/fixedwing/autopilot.makefile @@ -29,7 +29,7 @@ # temporary hack for ADCs ifeq ($(ARCH), stm32) -$(TARGET).CFLAGS += -DSTM32 +# FIXME : this is for the battery $(TARGET).CFLAGS += -DUSE_AD1_3 endif # @@ -37,8 +37,12 @@ endif # $(TARGET).CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG) +$(TARGET).CFLAGS += -DPERIPHERALS_AUTO_INIT $(TARGET).CFLAGS += $(FIXEDWING_INC) +$(TARGET).srcs += mcu.c +$(TARGET).srcs += $(SRC_ARCH)/mcu_arch.c + # # Common Options # @@ -54,7 +58,7 @@ $(TARGET).CFLAGS += -DTRAFFIC_INFO # LEDs # -$(TARGET).CFLAGS += -DLED +$(TARGET).CFLAGS += -DUSE_LED ifneq ($(ARCH), lpc21) ifneq ($(ARCH), jsbsim) $(TARGET).srcs += $(SRC_ARCH)/led_hw.c @@ -135,9 +139,6 @@ ns_srcs += $(SRC_ARCH)/uart_hw.c ns_CFLAGS += -DADC #ifeq ($(ARCH), lpc21) ns_srcs += $(SRC_ARCH)/adc_hw.c -#else ifeq ($(ARCH), stm32) -# ns_srcs += lisa/lisa_analog_plug.c -#endif ifeq ($(ARCH), stm32) ns_CFLAGS += -DUSE_ADC1_2_IRQ_HANDLER endif diff --git a/conf/boards/lisa_l_1.0.makefile b/conf/boards/lisa_l_1.0.makefile index d98f433b5e..24fc846132 100644 --- a/conf/boards/lisa_l_1.0.makefile +++ b/conf/boards/lisa_l_1.0.makefile @@ -78,8 +78,8 @@ ADC_IR2 = 2 ADC_IR2_CHAN = 1 endif ifndef ADC_IR3 -ADC_IR_TOP = 3 -ADC_IR_TOP_CHAN = 2 +ADC_IR_TOP = 4 +ADC_IR_TOP_CHAN = 3 endif ifndef ADC_IR_NB_SAMPLES ADC_IR_NB_SAMPLES = 16 diff --git a/sw/airborne/adc.h b/sw/airborne/adc.h index 803b9c5100..9eea05b9f9 100644 --- a/sw/airborne/adc.h +++ b/sw/airborne/adc.h @@ -58,7 +58,7 @@ See @ref adc_buf_channel. */ struct adc_buf { - uint16_t sum; /* Sum of samples in buffer (avg = sum / av_nb_sample) */ + uint32_t sum; /* Sum of samples in buffer (avg = sum / av_nb_sample) */ uint16_t values[MAX_AV_NB_SAMPLE]; /* Buffer for sample values from ADC */ uint8_t head; /* Position index of write head in buffer */ uint8_t av_nb_sample; /* Number of samples to use in buffer (used for avg) */ diff --git a/sw/airborne/arch/lpc21/mcu_arch.c b/sw/airborne/arch/lpc21/mcu_arch.c new file mode 100644 index 0000000000..a99d484ba4 --- /dev/null +++ b/sw/airborne/arch/lpc21/mcu_arch.c @@ -0,0 +1,75 @@ +/* + * Paparazzi lpc21 arch dependant microcontroller initialisation function + * + * Copyright (C) 2010 The Paparazzi team + * + * This file is part of Paparazzi. + * + * Paparazzi 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 2, or (at your option) + * any later version. + * + * Paparazzi 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 Paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#include "mcu.h" + + +#include +#include BOARD_CONFIG +#include "LPC21xx.h" + + +/* declare functions and values from crt0.S & the linker control file */ +extern void reset(void); + +void mcu_arch_init(void) { + + /* set PLL multiplier & divisor. */ + /* values computed from config.h */ + PLLCFG = PLLCFG_MSEL | PLLCFG_PSEL; + /* enable PLL */ + PLLCON = PLLCON_PLLE; + /* commit changes */ + PLLFEED = 0xAA; + PLLFEED = 0x55; + + /* wait for PLL lock */ + while (!(PLLSTAT & PLLSTAT_LOCK)) + continue; + + /* enable & connect PLL */ + PLLCON = PLLCON_PLLE | PLLCON_PLLC; + /* commit changes */ + PLLFEED = 0xAA; + PLLFEED = 0x55; + + /* setup & enable the MAM */ + MAMTIM = MAMTIM_CYCLES; + MAMCR = MAMCR_FULL; + + /* set the peripheral bus speed */ + /* value computed from config.h */ + VPBDIV = VPBDIV_VALUE; + + /* set the interrupt controller to flash */ + MEMMAP = MEMMAP_FLASH; + + /* clear all interrupts */ + VICIntEnClear = 0xFFFFFFFF; + /* clear all FIQ selections */ + VICIntSelect = 0x00000000; + /* point unvectored IRQs to reset() */ + VICDefVectAddr = (uint32_t)reset; + +} diff --git a/sw/airborne/arch/lpc21/mcu_arch.h b/sw/airborne/arch/lpc21/mcu_arch.h new file mode 100644 index 0000000000..a677d396c2 --- /dev/null +++ b/sw/airborne/arch/lpc21/mcu_arch.h @@ -0,0 +1,35 @@ +/* + * Paparazzi lpc21 arch dependant microcontroller initialisation functions + * + * Copyright (C) 2010 The Paparazzi team + * + * This file is part of Paparazzi. + * + * Paparazzi 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 2, or (at your option) + * any later version. + * + * Paparazzi 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 Paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifndef LPC21_MCU_ARCH_H +#define LPC21_MCU_ARCH_H + +extern void mcu_arch_init(void); + +#include "armVIC.h" + +#define mcu_int_enable() enableIRQ() +#define mcu_int_disable() disableIRQ() + +#endif /* LPC21_MCU_ARCH_H */ diff --git a/sw/airborne/arch/stm32/adc_hw.c b/sw/airborne/arch/stm32/adc_hw.c index bbea45a95c..513a766796 100644 --- a/sw/airborne/arch/stm32/adc_hw.c +++ b/sw/airborne/arch/stm32/adc_hw.c @@ -125,16 +125,16 @@ static inline void adc_init_irq( void ); // {{{ /* - GPIO mapping for ADC1 pins (PA.B, PB.1, PC.3, PC.5). + GPIO mapping for ADC1 pins (PB.1, PB.0, PC.5, PC.3). Can be changed by predefining ADC1_GPIO_INIT. */ #ifdef USE_AD1 #ifndef ADC1_GPIO_INIT #define ADC1_GPIO_INIT(gpio) { \ - (gpio).GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; \ + (gpio).GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_0; \ (gpio).GPIO_Mode = GPIO_Mode_AIN; \ GPIO_Init(GPIOB, (&gpio)); \ - (gpio).GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_5; \ + (gpio).GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_3; \ GPIO_Init(GPIOC, (&gpio)); \ } #endif // ADC1_GPIO_INIT @@ -387,7 +387,9 @@ void adc_init( void ) { // using defines. adc_channel_map[0] = ADC_Channel_8; adc_channel_map[1] = ADC_Channel_9; - adc_channel_map[2] = ADC_Channel_13; + // adc_channel_map[2] = ADC_Channel_13; + // FIXME for now we get battery voltage this way + adc_channel_map[2] = ADC_Channel_0; adc_channel_map[3] = ADC_Channel_15; adc_init_rcc(); diff --git a/sw/airborne/arch/stm32/mcu_arch.c b/sw/airborne/arch/stm32/mcu_arch.c new file mode 100644 index 0000000000..eb6760b1c6 --- /dev/null +++ b/sw/airborne/arch/stm32/mcu_arch.c @@ -0,0 +1,82 @@ +/* + * Paparazzi stm32 arch dependant microcontroller initialisation function + * + * Copyright (C) 2010 The Paparazzi team + * + * This file is part of Paparazzi. + * + * Paparazzi 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 2, or (at your option) + * any later version. + * + * Paparazzi 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 Paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#include "mcu.h" + + +#include +#include +#include +#include +#include + +#include BOARD_CONFIG + +void mcu_arch_init(void) { + +#ifdef HSE_TYPE_EXT_CLK + /* Setup the microcontroller system. + * Initialize the Embedded Flash Interface, + * initialize the PLL and update the SystemFrequency variable. + */ + /* RCC system reset(for debug purpose) */ + RCC_DeInit(); + /* Enable HSE with external clock ( HSE_Bypass ) */ + RCC_HSEConfig( RCC_HSE_Bypass ); + /* Wait till HSE is ready */ + ErrorStatus HSEStartUpStatus = RCC_WaitForHSEStartUp(); + if (HSEStartUpStatus != SUCCESS) { + /* block if something went wrong */ + while(1) {} + } + else { + /* Enable Prefetch Buffer */ + FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); + /* Flash 2 wait state */ + FLASH_SetLatency(FLASH_Latency_2); + /* HCLK = SYSCLK */ + RCC_HCLKConfig(RCC_SYSCLK_Div1); + /* PCLK2 = HCLK */ + RCC_PCLK2Config(RCC_HCLK_Div1); + /* PCLK1 = HCLK/2 */ + RCC_PCLK1Config(RCC_HCLK_Div2); + /* PLLCLK = 8MHz * 9 = 72 MHz */ + RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); + /* Enable PLL */ + RCC_PLLCmd(ENABLE); + /* Wait till PLL is ready */ + while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) {} + /* Select PLL as system clock source */ + RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); + /* Wait till PLL is used as system clock source */ + while(RCC_GetSYSCLKSource() != 0x08) {} + } +#else /* HSE_TYPE_EXT_CLK */ + SystemInit(); +#endif /* HSE_TYPE_EXT_CLK */ + /* Set the Vector Table base location at 0x08000000 */ + NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); + +} + diff --git a/sw/airborne/arch/stm32/mcu_arch.h b/sw/airborne/arch/stm32/mcu_arch.h new file mode 100644 index 0000000000..b8110a16cc --- /dev/null +++ b/sw/airborne/arch/stm32/mcu_arch.h @@ -0,0 +1,45 @@ +/* + * Paparazzi stm32 arch dependant microcontroller initialisation function + * + * Copyright (C) 2010 The Paparazzi team + * + * This file is part of Paparazzi. + * + * Paparazzi 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 2, or (at your option) + * any later version. + * + * Paparazzi 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 Paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifndef STM32_MCU_ARCH_H +#define STM32_MCU_ARCH_H + +extern void mcu_arch_init(void); + + +/* should probably not be here + * a couple of macros to use the rev instruction + */ +#define MyByteSwap16(in, out) { \ + asm volatile ( \ + "rev16 %0, %1\n\t" \ + : "=r" (out) \ + : "r"(in) \ + ); \ + } + +#define mcu_int_enable() {} +#define mcu_int_disable() {} + +#endif /* STM32_MCU_ARCH_H */ diff --git a/sw/airborne/boards/lisa_l_1.0.h b/sw/airborne/boards/lisa_l_1.0.h index 417fd309f0..4d96d272e0 100644 --- a/sw/airborne/boards/lisa_l_1.0.h +++ b/sw/airborne/boards/lisa_l_1.0.h @@ -20,8 +20,8 @@ #define IMU_ACC_DRDY_GPIO_PORTSOURCE GPIO_PortSourceGPIOD -#define ADC_CHANNEL_VSUPPLY 4 -#define DefaultVoltageOfAdc(adc) (0.01787109375*adc) +#define ADC_CHANNEL_VSUPPLY 2 +#define DefaultVoltageOfAdc(adc) (0.0059*adc) #endif /* CONFIG_LISA_V1_0_H */ diff --git a/sw/airborne/firmwares/fixedwing/main_ap.c b/sw/airborne/firmwares/fixedwing/main_ap.c index 7b1eef509c..bbd23299bd 100644 --- a/sw/airborne/firmwares/fixedwing/main_ap.c +++ b/sw/airborne/firmwares/fixedwing/main_ap.c @@ -34,9 +34,8 @@ #include #include "firmwares/fixedwing/main_ap.h" +#include "mcu.h" -#include "interrupt_hw.h" -#include "init_hw.h" #include "adc.h" #include "firmwares/fixedwing/stabilization/stabilization_attitude.h" #include "firmwares/fixedwing/guidance/guidance_v.h" @@ -60,13 +59,6 @@ #include "rc_settings.h" #endif -#ifdef LED -#include "led.h" -#endif - -#if defined USE_I2C0 || USE_I2C1 -#include "i2c.h" -#endif #ifdef USE_SPI #include "spi.h" @@ -480,12 +472,9 @@ void periodic_task_ap( void ) { void init_ap( void ) { #ifndef SINGLE_MCU /** init done in main_fbw in single MCU */ - hw_init(); + mcu_init(); sys_time_init(); -#ifdef LED - led_init(); -#endif #ifdef ADC adc_init(); @@ -502,35 +491,11 @@ void init_ap( void ) { #ifdef USE_GPS gps_init(); #endif -#ifdef USE_UART0 - Uart0Init(); -#endif -#ifdef USE_UART1 - Uart1Init(); -#endif -#ifdef USE_UART2 - Uart2Init(); -#endif -#ifdef USE_UART3 - Uart3Init(); -#endif -#ifdef USE_USB_SERIAL - VCOM_init(); -#endif #ifdef USE_GPIO GpioInit(); #endif -#ifdef USE_I2C0 - i2c0_init(); -#endif -#ifdef USE_I2C1 - i2c1_init(); -#endif -#ifdef USE_I2C2 - i2c2_init(); -#endif /************* Links initialization ***************/ #if defined USE_SPI @@ -555,7 +520,7 @@ void init_ap( void ) { modules_init(); /** - start interrupt task */ - int_enable(); + mcu_int_enable(); /** wait 0.5s (historical :-) */ sys_time_usleep(500000); diff --git a/sw/airborne/firmwares/fixedwing/main_fbw.c b/sw/airborne/firmwares/fixedwing/main_fbw.c index d3954ce44d..644ff5ad6d 100644 --- a/sw/airborne/firmwares/fixedwing/main_fbw.c +++ b/sw/airborne/firmwares/fixedwing/main_fbw.c @@ -1,22 +1,22 @@ /* * Paparazzi $Id$ * - * Copyright (C) 2003-2006 Pascal Brisset, Antoine Drouin + * Copyright (C) 2003-2010 The Paparazzi Team * - * This file is part of paparazzi. + * This file is part of Paparazzi. * - * paparazzi is free software; you can redistribute it and/or modify + * Paparazzi 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 2, or (at your option) * any later version. * - * paparazzi is distributed in the hope that it will be useful, + * Paparazzi 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 paparazzi; see the file COPYING. If not, write to + * along with Paparazzi; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * @@ -31,11 +31,11 @@ * ( for parameters like the supply ) */ -#include "firmwares/fixedwing/main_fbw.h" #include "generated/airframe.h" -#include "init_hw.h" -#include "interrupt_hw.h" +#include "firmwares/fixedwing/main_fbw.h" +#include "mcu.h" + #include "led.h" #include "uart.h" #include "spi.h" @@ -84,33 +84,17 @@ uint8_t fbw_mode; /********** INIT *************************************************************/ void init_fbw( void ) { - hw_init(); + mcu_init(); sys_time_init(); -#ifdef LED - led_init(); -#endif -#ifdef USE_UART0 - uart0_init(); -#endif -#ifdef USE_UART1 - uart1_init(); -#endif -#ifdef USE_UART2 - uart2_init(); -#endif -#ifdef USE_UART3 - uart3_init(); -#endif - // FIXME: remove STM32 flag #ifdef ADC adc_init(); -#ifndef STM32 +#ifdef ADC_CHANNEL_VSUPPLY adc_buf_channel(ADC_CHANNEL_VSUPPLY, &vsupply_adc_buf, DEFAULT_AV_NB_SAMPLE); -# ifdef ADC_CHANNEL_CURRENT +#endif +#ifdef ADC_CHANNEL_CURRENT adc_buf_channel(ADC_CHANNEL_CURRENT, ¤t_adc_buf, DEFAULT_AV_NB_SAMPLE); -# endif -#endif /* ! STM32 */ +#endif #endif /* ADC */ #ifdef ACTUATORS @@ -229,10 +213,12 @@ void periodic_task_fbw( void ) { if (!_10Hz) { #ifdef ADC +#ifdef ADC_CHANNEL_VSUPPLY fbw_vsupply_decivolt = VoltageOfAdc((10*(vsupply_adc_buf.sum/vsupply_adc_buf.av_nb_sample))); -# ifdef ADC_CHANNEL_CURRENT +#endif +#ifdef ADC_CHANNEL_CURRENT fbw_current_milliamp = MilliAmpereOfAdc((current_adc_buf.sum/current_adc_buf.av_nb_sample)); -# endif +#endif #endif #if ((! defined ADC_CHANNEL_CURRENT) && defined MILLIAMP_AT_FULL_THROTTLE) diff --git a/sw/airborne/firmwares/rotorcraft/main.c b/sw/airborne/firmwares/rotorcraft/main.c index 5f6cd5485d..7902eeff6d 100644 --- a/sw/airborne/firmwares/rotorcraft/main.c +++ b/sw/airborne/firmwares/rotorcraft/main.c @@ -25,10 +25,9 @@ #define MODULES_C #include -#include "init_hw.h" +#include "mcu.h" #include "sys_time.h" #include "led.h" -#include "interrupt_hw.h" #include "downlink.h" #include "firmwares/rotorcraft/telemetry.h" @@ -95,7 +94,7 @@ STATIC_INLINE void main_init( void ) { } #endif - hw_init(); + mcu_init(); sys_time_init(); @@ -130,7 +129,7 @@ STATIC_INLINE void main_init( void ) { modules_init(); - int_enable(); + mcu_int_enable(); } diff --git a/sw/airborne/firmwares/rotorcraft/main.h b/sw/airborne/firmwares/rotorcraft/main.h index 7bf6d26716..9e9a651b53 100644 --- a/sw/airborne/firmwares/rotorcraft/main.h +++ b/sw/airborne/firmwares/rotorcraft/main.h @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) 2008-2009 Antoine Drouin + * Copyright (C) 2008-2010 The Paparazzi Team * * This file is part of paparazzi. * diff --git a/sw/airborne/mcu.c b/sw/airborne/mcu.c new file mode 100644 index 0000000000..42fd01d03c --- /dev/null +++ b/sw/airborne/mcu.c @@ -0,0 +1,88 @@ +/* + * Paparazzi microcontroller initialisation function + * + * Copyright (C) 2010 The Paparazzi team + * + * This file is part of Paparazzi. + * + * Paparazzi 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 2, or (at your option) + * any later version. + * + * Paparazzi 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 Paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#include "mcu.h" + +#ifdef PERIPHERALS_AUTO_INIT +#ifdef USE_LED +#include "led.h" +#endif +#if defined RADIO_CONTROL +#if defined RADIO_CONTROL_LINK || defined RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT +#include "subsystems/radio_control.h" +#endif +#endif +#if defined USE_UART0 || defined USE_UART1 || defined USE_UART2 || defined USE_UART3 || defined USE_UART4 || defined USE_UART5 +#include "uart.h" +#endif +#if defined USE_I2C1 || defined USE_I2C2 +#include "i2c.h" +#endif +#endif /* PERIPHERALS_AUTO_INIT */ + +void mcu_init(void) { + + mcu_arch_init(); + +#ifdef PERIPHERALS_AUTO_INIT +#ifdef USE_LED + led_init(); +#endif + /* for now this means using spektrum */ +#if defined RADIO_CONTROL & defined RADIO_CONTROL_SPEKTRUM_PRIMARY_PORT & defined RADIO_CONTROL_BIND_IMPL_FUNC + RADIO_CONTROL_BIND_IMPL_FUNC(); +#endif +#ifdef USE_UART0 + uart0_init(); +#endif +#ifdef USE_UART1 + uart1_init(); +#endif +#ifdef USE_UART2 + uart2_init(); +#endif +#ifdef USE_UART3 + uart3_init(); +#endif +#ifdef USE_UART4 + uart4_init(); +#endif +#ifdef USE_UART5 + uart5_init(); +#endif +#ifdef USE_I2C0 + i2c0_init(); +#endif +#ifdef USE_I2C1 + i2c1_init(); +#endif +#ifdef USE_I2C2 + i2c2_init(); +#endif +#ifdef USE_USB_SERIAL + VCOM_init(); +#endif +#endif /* PERIPHERALS_AUTO_INIT */ + +} diff --git a/sw/airborne/mcu.h b/sw/airborne/mcu.h new file mode 100644 index 0000000000..0372433374 --- /dev/null +++ b/sw/airborne/mcu.h @@ -0,0 +1,45 @@ +/* + * Paparazzi microcontroller functions + * + * Copyright (C) 2010 The Paparazzi team + * + * This file is part of Paparazzi. + * + * Paparazzi 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 2, or (at your option) + * any later version. + * + * Paparazzi 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 Paparazzi; see the file COPYING. If not, write to + * the Free Software Foundation, 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +/** \file mcu.h + * \brief arch independant mcu ( Micro Controller Unit ) utilities + */ + +#ifndef MCU_H +#define MCU_H + + +#include + +/* + * Microcontroller initialisation + * This function is responisble for setting up the microcontroller + * after Reset. + */ +extern void mcu_init(void); + + +#endif /* MCU_H */ + +