From 01691e626bcae674a6b36a9ee0c6053fe7f52565 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Wed, 22 Nov 2017 23:56:13 -0500 Subject: [PATCH] Merge FMUv3 into FMUv2 --- cmake/configs/nuttx_px4fmu-v2_default.cmake | 14 +- cmake/configs/nuttx_px4fmu-v3_default.cmake | 7 +- .../scripts/ld_full.script} | 0 nuttx-configs/px4fmu-v3/Kconfig | 22 - nuttx-configs/px4fmu-v3/include/board.h | 368 ---- .../px4fmu-v3/include/nsh_romfsimg.h | 42 - nuttx-configs/px4fmu-v3/nsh/Make.defs | 164 -- nuttx-configs/px4fmu-v3/nsh/defconfig | 1686 ----------------- nuttx-configs/px4fmu-v3/src/Makefile | 86 - nuttx-configs/px4fmu-v3/src/empty.c | 4 - src/drivers/boards/px4fmu-v2/CMakeLists.txt | 1 + src/drivers/boards/px4fmu-v2/board_config.h | 140 ++ .../{px4fmu-v3 => px4fmu-v2}/px4fmu_i2c.c | 0 src/drivers/boards/px4fmu-v2/px4fmu_init.c | 13 +- src/drivers/boards/px4fmu-v2/px4fmu_spi.c | 15 + src/drivers/boards/px4fmu-v3/CMakeLists.txt | 45 - src/drivers/boards/px4fmu-v3/board_config.h | 187 -- src/drivers/boards/px4fmu-v3/px4fmu_can.c | 130 -- src/drivers/boards/px4fmu-v3/px4fmu_init.c | 676 ------- src/drivers/boards/px4fmu-v3/px4fmu_led.c | 96 - src/drivers/boards/px4fmu-v3/px4fmu_spi.c | 468 ----- .../boards/px4fmu-v3/px4fmu_timer_config.c | 126 -- src/drivers/boards/px4fmu-v3/px4fmu_usb.c | 107 -- src/firmware/nuttx/CMakeLists.txt | 6 +- 24 files changed, 178 insertions(+), 4225 deletions(-) rename nuttx-configs/{px4fmu-v3/scripts/ld.script => px4fmu-v2/scripts/ld_full.script} (100%) delete mode 100644 nuttx-configs/px4fmu-v3/Kconfig delete mode 100755 nuttx-configs/px4fmu-v3/include/board.h delete mode 100644 nuttx-configs/px4fmu-v3/include/nsh_romfsimg.h delete mode 100644 nuttx-configs/px4fmu-v3/nsh/Make.defs delete mode 100644 nuttx-configs/px4fmu-v3/nsh/defconfig delete mode 100644 nuttx-configs/px4fmu-v3/src/Makefile delete mode 100644 nuttx-configs/px4fmu-v3/src/empty.c rename src/drivers/boards/{px4fmu-v3 => px4fmu-v2}/px4fmu_i2c.c (100%) delete mode 100644 src/drivers/boards/px4fmu-v3/CMakeLists.txt delete mode 100644 src/drivers/boards/px4fmu-v3/board_config.h delete mode 100644 src/drivers/boards/px4fmu-v3/px4fmu_can.c delete mode 100644 src/drivers/boards/px4fmu-v3/px4fmu_init.c delete mode 100644 src/drivers/boards/px4fmu-v3/px4fmu_led.c delete mode 100644 src/drivers/boards/px4fmu-v3/px4fmu_spi.c delete mode 100644 src/drivers/boards/px4fmu-v3/px4fmu_timer_config.c delete mode 100644 src/drivers/boards/px4fmu-v3/px4fmu_usb.c diff --git a/cmake/configs/nuttx_px4fmu-v2_default.cmake b/cmake/configs/nuttx_px4fmu-v2_default.cmake index 3bb8b1cc77..b409651e27 100644 --- a/cmake/configs/nuttx_px4fmu-v2_default.cmake +++ b/cmake/configs/nuttx_px4fmu-v2_default.cmake @@ -15,7 +15,7 @@ set(config_module_list drivers/boards drivers/rgbled drivers/mpu6000 - #drivers/mpu9250 + drivers/mpu9250 drivers/lsm303d drivers/l3gd20 drivers/hmc5883 @@ -49,20 +49,20 @@ set(config_module_list #drivers/snapdragon_rc_pwm drivers/lis3mdl #drivers/iridiumsbd - drivers/ulanding + #drivers/ulanding # # System commands # - systemcmds/bl_update - systemcmds/config + #systemcmds/bl_update + #systemcmds/config #systemcmds/dumpfile #systemcmds/esc_calib systemcmds/hardfault_log systemcmds/mixer #systemcmds/motor_ramp systemcmds/mtd - systemcmds/nshterm + #systemcmds/nshterm systemcmds/param systemcmds/perf systemcmds/pwm @@ -92,7 +92,7 @@ set(config_module_list modules/load_mon modules/navigator modules/mavlink - modules/gpio_led + #modules/gpio_led #modules/uavcan modules/land_detector modules/camera_feedback @@ -146,7 +146,7 @@ set(config_module_list lib/mixer lib/runway_takeoff lib/tailsitter_recovery - lib/terrain_estimation + #lib/terrain_estimation lib/version platforms/nuttx diff --git a/cmake/configs/nuttx_px4fmu-v3_default.cmake b/cmake/configs/nuttx_px4fmu-v3_default.cmake index da641b297c..a96668d6c9 100644 --- a/cmake/configs/nuttx_px4fmu-v3_default.cmake +++ b/cmake/configs/nuttx_px4fmu-v3_default.cmake @@ -1,3 +1,8 @@ + +# FMUv3 is FMUv2 with access to the full 2MB flash +set(BOARD px4fmu-v2 CACHE string "" FORCE) +set(LD_SCRIPT ld_full.script CACHE string "" FORCE) + include(nuttx/px4_impl_nuttx) px4_nuttx_configure(HWCLASS m4 CONFIG nsh ROMFS y ROMFSROOT px4fmu_common IO px4io-v2) @@ -203,4 +208,4 @@ set(config_module_list # EKF examples/ekf_att_pos_estimator -) \ No newline at end of file +) diff --git a/nuttx-configs/px4fmu-v3/scripts/ld.script b/nuttx-configs/px4fmu-v2/scripts/ld_full.script similarity index 100% rename from nuttx-configs/px4fmu-v3/scripts/ld.script rename to nuttx-configs/px4fmu-v2/scripts/ld_full.script diff --git a/nuttx-configs/px4fmu-v3/Kconfig b/nuttx-configs/px4fmu-v3/Kconfig deleted file mode 100644 index f9f0c5e6a8..0000000000 --- a/nuttx-configs/px4fmu-v3/Kconfig +++ /dev/null @@ -1,22 +0,0 @@ -# -# For a description of the syntax of this configuration file, -# see misc/tools/kconfig-language.txt. -# - -if ARCH_BOARD_PX4FMU_V2 - -config BOARD_HAS_PROBES - bool "Board provides GPIO or other Hardware for signaling to timing analyze." - default y - ---help--- - This board provides GPIO FMU-CH1-6 as PROBE_1-6 to provide timing signals from selected drivers. - -config BOARD_USE_PROBES - bool "Enable the use the board provided GPIO FMU-CH1-6 as PROBE_1-6 to provide timing signals from selected drivers" - default n - depends on BOARD_HAS_PROBES - - ---help--- - Select to use GPIO FMU-CH1-6 to provide timing signals from selected drivers. - -endif diff --git a/nuttx-configs/px4fmu-v3/include/board.h b/nuttx-configs/px4fmu-v3/include/board.h deleted file mode 100755 index 827d4f1221..0000000000 --- a/nuttx-configs/px4fmu-v3/include/board.h +++ /dev/null @@ -1,368 +0,0 @@ -/************************************************************************************ - * nuttx-configs/px4fmu-v3/include/board.h - * include/arch/board/board.h - * - * Copyright (C) 2009 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ************************************************************************************/ - -#ifndef __ARCH_BOARD_BOARD_H -#define __ARCH_BOARD_BOARD_H - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include -#ifndef __ASSEMBLY__ -# include -#endif - -#include - -/************************************************************************************ - * Definitions - ************************************************************************************/ - -/* Clocking *************************************************************************/ -/* The PX4FMUV2 uses a 24MHz crystal connected to the HSE. - * - * This is the "standard" configuration as set up by arch/arm/src/stm32f40xx_rcc.c: - * System Clock source : PLL (HSE) - * SYSCLK(Hz) : 168000000 Determined by PLL configuration - * HCLK(Hz) : 168000000 (STM32_RCC_CFGR_HPRE) - * AHB Prescaler : 1 (STM32_RCC_CFGR_HPRE) - * APB1 Prescaler : 4 (STM32_RCC_CFGR_PPRE1) - * APB2 Prescaler : 2 (STM32_RCC_CFGR_PPRE2) - * HSE Frequency(Hz) : 24000000 (STM32_BOARD_XTAL) - * PLLM : 24 (STM32_PLLCFG_PLLM) - * PLLN : 336 (STM32_PLLCFG_PLLN) - * PLLP : 2 (STM32_PLLCFG_PLLP) - * PLLQ : 7 (STM32_PLLCFG_PPQ) - * Main regulator output voltage : Scale1 mode Needed for high speed SYSCLK - * Flash Latency(WS) : 5 - * Prefetch Buffer : OFF - * Instruction cache : ON - * Data cache : ON - * Require 48MHz for USB OTG FS, : Enabled - * SDIO and RNG clock - */ - -/* HSI - 16 MHz RC factory-trimmed - * LSI - 32 KHz RC - * HSE - On-board crystal frequency is 24MHz - * LSE - not installed - */ - -#define STM32_BOARD_XTAL 24000000ul - -#define STM32_HSI_FREQUENCY 16000000ul -#define STM32_LSI_FREQUENCY 32000 -#define STM32_HSE_FREQUENCY STM32_BOARD_XTAL -//#define STM32_LSE_FREQUENCY 32768 - -/* Main PLL Configuration. - * - * PLL source is HSE - * PLL_VCO = (STM32_HSE_FREQUENCY / PLLM) * PLLN - * = (25,000,000 / 25) * 336 - * = 336,000,000 - * SYSCLK = PLL_VCO / PLLP - * = 336,000,000 / 2 = 168,000,000 - * USB OTG FS, SDIO and RNG Clock - * = PLL_VCO / PLLQ - * = 48,000,000 - */ - -#define STM32_PLLCFG_PLLM RCC_PLLCFG_PLLM(24) -#define STM32_PLLCFG_PLLN RCC_PLLCFG_PLLN(336) -#define STM32_PLLCFG_PLLP RCC_PLLCFG_PLLP_2 -#define STM32_PLLCFG_PLLQ RCC_PLLCFG_PLLQ(7) - -#define STM32_SYSCLK_FREQUENCY 168000000ul - -/* AHB clock (HCLK) is SYSCLK (168MHz) */ - -#define STM32_RCC_CFGR_HPRE RCC_CFGR_HPRE_SYSCLK /* HCLK = SYSCLK / 1 */ -#define STM32_HCLK_FREQUENCY STM32_SYSCLK_FREQUENCY -#define STM32_BOARD_HCLK STM32_HCLK_FREQUENCY /* same as above, to satisfy compiler */ - -/* APB1 clock (PCLK1) is HCLK/4 (42MHz) */ - -#define STM32_RCC_CFGR_PPRE1 RCC_CFGR_PPRE1_HCLKd4 /* PCLK1 = HCLK / 4 */ -#define STM32_PCLK1_FREQUENCY (STM32_HCLK_FREQUENCY/4) - -/* Timers driven from APB1 will be twice PCLK1 */ - -#define STM32_APB1_TIM2_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM3_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM4_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM5_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM6_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM7_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM12_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM13_CLKIN (2*STM32_PCLK1_FREQUENCY) -#define STM32_APB1_TIM14_CLKIN (2*STM32_PCLK1_FREQUENCY) - -/* APB2 clock (PCLK2) is HCLK/2 (84MHz) */ - -#define STM32_RCC_CFGR_PPRE2 RCC_CFGR_PPRE2_HCLKd2 /* PCLK2 = HCLK / 2 */ -#define STM32_PCLK2_FREQUENCY (STM32_HCLK_FREQUENCY/2) - -/* Timers driven from APB2 will be twice PCLK2 */ - -#define STM32_APB2_TIM1_CLKIN (2*STM32_PCLK2_FREQUENCY) -#define STM32_APB2_TIM8_CLKIN (2*STM32_PCLK2_FREQUENCY) -#define STM32_APB2_TIM9_CLKIN (2*STM32_PCLK2_FREQUENCY) -#define STM32_APB2_TIM10_CLKIN (2*STM32_PCLK2_FREQUENCY) -#define STM32_APB2_TIM11_CLKIN (2*STM32_PCLK2_FREQUENCY) - -/* Timer Frequencies, if APBx is set to 1, frequency is same to APBx - * otherwise frequency is 2xAPBx. - * Note: TIM1,8-11 are on APB2, others on APB1 - */ - -#define BOARD_TIM1_FREQUENCY STM32_APB2_TIM1_CLKIN -#define BOARD_TIM2_FREQUENCY STM32_APB1_TIM2_CLKIN -#define BOARD_TIM3_FREQUENCY STM32_APB1_TIM3_CLKIN -#define BOARD_TIM4_FREQUENCY STM32_APB1_TIM4_CLKIN -#define BOARD_TIM5_FREQUENCY STM32_APB1_TIM5_CLKIN -#define BOARD_TIM6_FREQUENCY STM32_APB1_TIM6_CLKIN -#define BOARD_TIM7_FREQUENCY STM32_APB1_TIM7_CLKIN -#define BOARD_TIM8_FREQUENCY STM32_APB2_TIM8_CLKIN -#define BOARD_TIM9_FREQUENCY STM32_APB2_TIM9_CLKIN -#define BOARD_TIM10_FREQUENCY STM32_APB2_TIM10_CLKIN -#define BOARD_TIM11_FREQUENCY STM32_APB2_TIM11_CLKIN -#define BOARD_TIM12_FREQUENCY STM32_APB1_TIM12_CLKIN -#define BOARD_TIM13_FREQUENCY STM32_APB1_TIM13_CLKIN -#define BOARD_TIM14_FREQUENCY STM32_APB1_TIM14_CLKIN - -/* SDIO dividers. Note that slower clocking is required when DMA is disabled - * in order to avoid RX overrun/TX underrun errors due to delayed responses - * to service FIFOs in interrupt driven mode. These values have not been - * tuned!!! - * - * SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(118+2)=400 KHz - */ - -#define SDIO_INIT_CLKDIV (118 << SDIO_CLKCR_CLKDIV_SHIFT) - -/* DMA ON: SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(1+2)=16 MHz - * DMA OFF: SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(2+2)=12 MHz - */ - -#ifdef CONFIG_STM32_SDIO_DMA -# define SDIO_MMCXFR_CLKDIV (1 << SDIO_CLKCR_CLKDIV_SHIFT) -#else -# define SDIO_MMCXFR_CLKDIV (2 << SDIO_CLKCR_CLKDIV_SHIFT) -#endif - -/* DMA ON: SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(1+2)=16 MHz - * DMA OFF: SDIOCLK=48MHz, SDIO_CK=SDIOCLK/(2+2)=12 MHz - */ - -#ifdef CONFIG_STM32_SDIO_DMA -# define SDIO_SDXFR_CLKDIV (1 << SDIO_CLKCR_CLKDIV_SHIFT) -#else -# define SDIO_SDXFR_CLKDIV (2 << SDIO_CLKCR_CLKDIV_SHIFT) -#endif - -/* DMA Channl/Stream Selections *****************************************************/ -/* Stream selections are arbitrary for now but might become important in the future - * is we set aside more DMA channels/streams. - * - * SDIO DMA - *   DMAMAP_SDIO_1 = Channel 4, Stream 3 <- may later be used by SPI DMA - *   DMAMAP_SDIO_2 = Channel 4, Stream 6 - */ - -#define DMAMAP_SDIO DMAMAP_SDIO_1 - -/* Alternate function pin selections ************************************************/ - -/* UARTs */ - -#define GPIO_USART1_RX GPIO_USART1_RX_1 /* Console in from IO */ -#define GPIO_USART1_TX 0 /* USART1 is RX-only */ - -#define GPIO_USART2_RX GPIO_USART2_RX_2 -#define GPIO_USART2_TX GPIO_USART2_TX_2 -#define GPIO_USART2_RTS GPIO_USART2_RTS_2 -#define GPIO_USART2_CTS GPIO_USART2_CTS_2 - -#define GPIO_USART3_RX GPIO_USART3_RX_3 -#define GPIO_USART3_TX GPIO_USART3_TX_3 -#define GPIO_USART3_RTS GPIO_USART3_RTS_2 -#define GPIO_USART3_CTS GPIO_USART3_CTS_2 - -#define GPIO_UART4_RX GPIO_UART4_RX_1 -#define GPIO_UART4_TX GPIO_UART4_TX_1 - -#define GPIO_USART6_RX GPIO_USART6_RX_1 -#define GPIO_USART6_TX GPIO_USART6_TX_1 - -#define GPIO_UART7_RX GPIO_UART7_RX_1 -#define GPIO_UART7_TX GPIO_UART7_TX_1 - -/* UART8 has no alternate pin config */ - -/* UART RX DMA configurations */ - -#define DMAMAP_USART1_RX DMAMAP_USART1_RX_2 -#define DMAMAP_USART6_RX DMAMAP_USART6_RX_2 - -/* CAN - * - * CAN1 is routed to the onboard transceiver. - * CAN2 is routed to the expansion connector. - */ - -#define GPIO_CAN1_RX GPIO_CAN1_RX_3 -#define GPIO_CAN1_TX GPIO_CAN1_TX_3 -#define GPIO_CAN2_RX GPIO_CAN2_RX_1 -#define GPIO_CAN2_TX GPIO_CAN2_TX_2 - -/* I2C - * - * The optional _GPIO configurations allow the I2C driver to manually - * reset the bus to clear stuck slaves. They match the pin configuration, - * but are normally-high GPIOs. - */ - -#define GPIO_I2C1_SCL GPIO_I2C1_SCL_2 -#define GPIO_I2C1_SDA GPIO_I2C1_SDA_2 -#define GPIO_I2C1_SCL_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN8) -#define GPIO_I2C1_SDA_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN9) - -#define GPIO_I2C2_SCL GPIO_I2C2_SCL_1 -#define GPIO_I2C2_SDA GPIO_I2C2_SDA_1 -#define GPIO_I2C2_SCL_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN10) -#define GPIO_I2C2_SDA_GPIO \ - (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN11) - -/* SPI - * - * There are sensors on SPI1, and SPI2 is connected to the FRAM. - */ - -#define GPIO_SPI1_MISO GPIO_SPI1_MISO_1 -#define GPIO_SPI1_MOSI GPIO_SPI1_MOSI_1 -#define GPIO_SPI1_SCK GPIO_SPI1_SCK_1 - -#define GPIO_SPI2_MISO GPIO_SPI2_MISO_1 -#define GPIO_SPI2_MOSI GPIO_SPI2_MOSI_1 -#define GPIO_SPI2_SCK GPIO_SPI2_SCK_2 - -#define GPIO_SPI4_MISO GPIO_SPI4_MISO_1 -#define GPIO_SPI4_MOSI GPIO_SPI4_MOSI_1 -#define GPIO_SPI4_SCK GPIO_SPI4_SCK_1 - -/* LED Definitions. Needed if CONFIG_ARCH_LEDs is defined */ - -#define LED_STARTED 0 -#define LED_HEAPALLOCATE 0 -#define LED_IRQSENABLED 0 -#define LED_STACKCREATED 1 -#define LED_INIRQ 1 -#define LED_SIGNAL 1 -#define LED_ASSERTION 1 -#define LED_PANIC 1 - -/* Board provides GPIO or other Hardware for signaling to timing analyzer */ - -#if defined(CONFIG_BOARD_USE_PROBES) -# define PROBE_N(n) (1<<((n)-1)) -# define PROBE_1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN14) -# define PROBE_2 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN13) -# define PROBE_3 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN11) -# define PROBE_4 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN9) -# define PROBE_5 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN13) -# define PROBE_6 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN14) - -# define PROBE_INIT(mask) \ - do { \ - if ((mask)& PROBE_N(1)) { stm32_configgpio(PROBE_1); } \ - if ((mask)& PROBE_N(2)) { stm32_configgpio(PROBE_2); } \ - if ((mask)& PROBE_N(3)) { stm32_configgpio(PROBE_3); } \ - if ((mask)& PROBE_N(4)) { stm32_configgpio(PROBE_4); } \ - if ((mask)& PROBE_N(5)) { stm32_configgpio(PROBE_5); } \ - if ((mask)& PROBE_N(6)) { stm32_configgpio(PROBE_6); } \ - } while(0) - -# define PROBE(n,s) do {stm32_gpiowrite(PROBE_##n,(s));}while(0) -# define PROBE_MARK(n) PROBE(n,false);PROBE(n,true) -#else -# define PROBE_INIT(mask) -# define PROBE(n,s) -# define PROBE_MARK(n) -#endif - - - -/************************************************************************************ - * Public Data - ************************************************************************************/ - -#ifndef __ASSEMBLY__ - -#undef EXTERN -#if defined(__cplusplus) -#define EXTERN extern "C" -extern "C" { -#else -#define EXTERN extern -#endif - -/************************************************************************************ - * Public Function Prototypes - ************************************************************************************/ -/************************************************************************************ - * Name: stm32_boardinitialize - * - * Description: - * All STM32 architectures must provide the following entry point. This entry point - * is called early in the initialization -- after all memory has been configured - * and mapped but before any devices have been initialized. - * - ************************************************************************************/ - -EXTERN void stm32_boardinitialize(void); - -#undef EXTERN -#if defined(__cplusplus) -} -#endif - -#endif /* __ASSEMBLY__ */ -#endif /* __ARCH_BOARD_BOARD_H */ diff --git a/nuttx-configs/px4fmu-v3/include/nsh_romfsimg.h b/nuttx-configs/px4fmu-v3/include/nsh_romfsimg.h deleted file mode 100644 index 15e4e7a8d5..0000000000 --- a/nuttx-configs/px4fmu-v3/include/nsh_romfsimg.h +++ /dev/null @@ -1,42 +0,0 @@ -/**************************************************************************** - * - * Copyright (C) 2013 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * nsh_romfsetc.h - * - * This file is a stub for 'make export' purposes; the actual ROMFS - * must be supplied by the library client. - */ - -extern unsigned char romfs_img[]; -extern unsigned int romfs_img_len; diff --git a/nuttx-configs/px4fmu-v3/nsh/Make.defs b/nuttx-configs/px4fmu-v3/nsh/Make.defs deleted file mode 100644 index 2cca39c75a..0000000000 --- a/nuttx-configs/px4fmu-v3/nsh/Make.defs +++ /dev/null @@ -1,164 +0,0 @@ -############################################################################ -# nuttx-configs/px4fmu-v3/nsh/Make.defs -# -# Copyright (C) 2011 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name NuttX nor the names of its contributors may be -# used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################ - -include ${TOPDIR}/.config -include ${TOPDIR}/tools/Config.mk -include $(TOPDIR)/PX4_Warnings.mk -include $(TOPDIR)/PX4_Config.mk - -# -# We only support building with the ARM bare-metal toolchain from -# https://launchpad.net/gcc-arm-embedded on Windows, Linux or Mac OS. -# -CONFIG_ARMV7M_TOOLCHAIN := GNU_EABI${HOST_OS_FIRST_LETTER} - -include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs - -CC = $(CROSSDEV)gcc -CXX = $(CROSSDEV)g++ -CPP = $(CROSSDEV)gcc -E -LD = $(CROSSDEV)ld -AR = $(CROSSDEV)ar rcs -NM = $(CROSSDEV)nm -OBJCOPY = $(CROSSDEV)objcopy -OBJDUMP = $(CROSSDEV)objdump - -MAXOPTIMIZATION = -Os -ARCHCPUFLAGS = -mcpu=cortex-m4 \ - -mthumb \ - -march=armv7e-m \ - -mfpu=fpv4-sp-d16 \ - -mfloat-abi=hard - -# Enable precise stack overflow tracking - -ifeq ($(CONFIG_ARMV7M_STACKCHECK),y) -INSTRUMENTATIONDEFINES = -finstrument-functions -ffixed-r10 -endif - -# Pull in *just* libm from the toolchain ... this is grody - -LIBM = "${shell $(CC) $(ARCHCPUFLAGS) -print-file-name=libm.a}" -EXTRA_LIBS += $(LIBM) - -# Use our linker script - -LDSCRIPT = ld.script - -ifeq ($(WINTOOL),y) - # Windows-native toolchains - DIRLINK = $(TOPDIR)/tools/copydir.sh - DIRUNLINK = $(TOPDIR)/tools/unlink.sh - MKDEP = $(TOPDIR)/tools/mknulldeps.sh - ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" - ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}" - ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)}" -else - ifeq ($(PX4_WINTOOL),y) - # Windows-native toolchains (MSYS) - DIRLINK = $(TOPDIR)/tools/copydir.sh - DIRUNLINK = $(TOPDIR)/tools/unlink.sh - MKDEP = $(TOPDIR)/tools/mknulldeps.sh - ARCHINCLUDES = -I. -isystem $(TOPDIR)/include - ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx - ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) - else - # Linux/Cygwin-native toolchain - MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT) - ARCHINCLUDES = -I. -isystem $(TOPDIR)/include - ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx - ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT) - endif -endif - -# Tool versions - -ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'} -ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1} - -# Optimization flags - -ARCHOPTIMIZATION = $(MAXOPTIMIZATION) \ - -fno-strict-aliasing \ - -fno-strength-reduce \ - -fomit-frame-pointer \ - -funsafe-math-optimizations \ - -fno-builtin-printf \ - -ffunction-sections \ - -fdata-sections - -ifeq ("${CONFIG_DEBUG_SYMBOLS}","y") -ARCHOPTIMIZATION += -g -endif - -ARCHCFLAGS = -std=gnu99 -ARCHCXXFLAGS = -fno-exceptions -fno-rtti -std=gnu++0x -ARCHWARNINGS = $(PX4_ARCHWARNINGS) -ARCHCWARNINGS = $(PX4_ARCHWARNINGS) $(PX4_ARCHCWARNINGS) -ARCHWARNINGSXX = $(ARCHWARNINGS) $(PX4_ARCHWARNINGSXX) -ARCHDEFINES = -ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10 - -# This seems to be the only way to add linker flags - -EXTRA_LIBS += --warn-common \ - --gc-sections - -CFLAGS = $(ARCHCFLAGS) $(ARCHCWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(INSTRUMENTATIONDEFINES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe -fno-common -CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS) -CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(INSTRUMENTATIONDEFINES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe -CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS) -CPPFLAGS = $(ARCHINCLUDES) $(INSTRUMENTATIONDEFINES) $(ARCHDEFINES) $(EXTRADEFINES) -AFLAGS = $(CFLAGS) -D__ASSEMBLY__ - -NXFLATLDFLAGS1 = -r -d -warn-common -NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat.ld -no-check-sections -LDNXFLATFLAGS = -e main -s 2048 - -OBJEXT = .o -LIBEXT = .a -EXEEXT = - -# Produce partially-linked $1 from files in $2 - -define PRELINK - @echo "PRELINK: $1" - $(Q) $(LD) -Ur -o $1 $2 && $(OBJCOPY) --localize-hidden $1 -endef - -HOSTCC = gcc -HOSTINCLUDES = -I. -HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe -HOSTLDFLAGS = diff --git a/nuttx-configs/px4fmu-v3/nsh/defconfig b/nuttx-configs/px4fmu-v3/nsh/defconfig deleted file mode 100644 index 1162058815..0000000000 --- a/nuttx-configs/px4fmu-v3/nsh/defconfig +++ /dev/null @@ -1,1686 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Nuttx/ Configuration -# - -# -# Build Setup -# -# CONFIG_EXPERIMENTAL is not set -# CONFIG_DEFAULT_SMALL is not set -CONFIG_HOST_LINUX=y -# CONFIG_HOST_OSX is not set -# CONFIG_HOST_WINDOWS is not set -# CONFIG_HOST_OTHER is not set - -# -# Build Configuration -# -CONFIG_APPS_DIR="../apps" -CONFIG_BUILD_FLAT=y -# CONFIG_BUILD_2PASS is not set - -# -# Binary Output Formats -# -# CONFIG_RRLOAD_BINARY is not set -# CONFIG_INTELHEX_BINARY is not set -# CONFIG_MOTOROLA_SREC is not set -CONFIG_RAW_BINARY=y -# CONFIG_UBOOT_UIMAGE is not set -# CONFIG_DFU_BINARY is not set - -# -# Customize Header Files -# -# CONFIG_ARCH_STDINT_H is not set -# CONFIG_ARCH_STDBOOL_H is not set -CONFIG_ARCH_MATH_H=y -# CONFIG_ARCH_FLOAT_H is not set -# CONFIG_ARCH_STDARG_H is not set -# CONFIG_ARCH_DEBUG_H is not set - -# -# Debug Options -# -CONFIG_DEBUG_ALERT=y -# CONFIG_DEBUG_FEATURES is not set -CONFIG_ARCH_HAVE_STACKCHECK=y -CONFIG_STACK_COLORATION=y -CONFIG_ARCH_HAVE_HEAPCHECK=y -# CONFIG_HEAP_COLORATION is not set -CONFIG_DEBUG_SYMBOLS=y -CONFIG_ARCH_HAVE_CUSTOMOPT=y -CONFIG_DEBUG_NOOPT=y -# CONFIG_DEBUG_CUSTOMOPT is not set -# CONFIG_DEBUG_FULLOPT is not set - -# -# System Type -# -CONFIG_ARCH_ARM=y -# CONFIG_ARCH_AVR is not set -# CONFIG_ARCH_HC is not set -# CONFIG_ARCH_MIPS is not set -# CONFIG_ARCH_MISOC is not set -# CONFIG_ARCH_RENESAS is not set -# CONFIG_ARCH_RISCV is not set -# CONFIG_ARCH_SIM is not set -# CONFIG_ARCH_X86 is not set -# CONFIG_ARCH_XTENSA is not set -# CONFIG_ARCH_Z16 is not set -# CONFIG_ARCH_Z80 is not set -CONFIG_ARCH="arm" - -# -# ARM Options -# -# CONFIG_ARCH_CHIP_A1X is not set -# CONFIG_ARCH_CHIP_C5471 is not set -# CONFIG_ARCH_CHIP_DM320 is not set -# CONFIG_ARCH_CHIP_EFM32 is not set -# CONFIG_ARCH_CHIP_IMX1 is not set -# CONFIG_ARCH_CHIP_IMX6 is not set -# CONFIG_ARCH_CHIP_KINETIS is not set -# CONFIG_ARCH_CHIP_KL is not set -# CONFIG_ARCH_CHIP_LC823450 is not set -# CONFIG_ARCH_CHIP_LM is not set -# CONFIG_ARCH_CHIP_TIVA is not set -# CONFIG_ARCH_CHIP_LPC11XX is not set -# CONFIG_ARCH_CHIP_LPC17XX is not set -# CONFIG_ARCH_CHIP_LPC214X is not set -# CONFIG_ARCH_CHIP_LPC2378 is not set -# CONFIG_ARCH_CHIP_LPC31XX is not set -# CONFIG_ARCH_CHIP_LPC43XX is not set -# CONFIG_ARCH_CHIP_MOXART is not set -# CONFIG_ARCH_CHIP_NUC1XX is not set -# CONFIG_ARCH_CHIP_SAMA5 is not set -# CONFIG_ARCH_CHIP_SAMD is not set -# CONFIG_ARCH_CHIP_SAML is not set -# CONFIG_ARCH_CHIP_SAM34 is not set -# CONFIG_ARCH_CHIP_SAMV7 is not set -CONFIG_ARCH_CHIP_STM32=y -# CONFIG_ARCH_CHIP_STM32F0 is not set -# CONFIG_ARCH_CHIP_STM32F7 is not set -# CONFIG_ARCH_CHIP_STM32L4 is not set -# CONFIG_ARCH_CHIP_STR71X is not set -# CONFIG_ARCH_CHIP_TMS570 is not set -# CONFIG_ARCH_CHIP_XMC4 is not set -# CONFIG_ARCH_ARM7TDMI is not set -# CONFIG_ARCH_ARM926EJS is not set -# CONFIG_ARCH_ARM920T is not set -# CONFIG_ARCH_CORTEXM0 is not set -# CONFIG_ARCH_CORTEXM23 is not set -# CONFIG_ARCH_CORTEXM3 is not set -# CONFIG_ARCH_CORTEXM33 is not set -CONFIG_ARCH_CORTEXM4=y -# CONFIG_ARCH_CORTEXM7 is not set -# CONFIG_ARCH_CORTEXA5 is not set -# CONFIG_ARCH_CORTEXA8 is not set -# CONFIG_ARCH_CORTEXA9 is not set -# CONFIG_ARCH_CORTEXR4 is not set -# CONFIG_ARCH_CORTEXR4F is not set -# CONFIG_ARCH_CORTEXR5 is not set -# CONFIG_ARCH_CORTEXR5F is not set -# CONFIG_ARCH_CORTEXR7 is not set -# CONFIG_ARCH_CORTEXR7F is not set -CONFIG_ARCH_FAMILY="armv7-m" -CONFIG_ARCH_CHIP="stm32" -CONFIG_ARMV7M_USEBASEPRI=y -CONFIG_ARCH_HAVE_CMNVECTOR=y -CONFIG_ARMV7M_CMNVECTOR=y -# CONFIG_ARMV7M_LAZYFPU is not set -CONFIG_ARCH_HAVE_FPU=y -# CONFIG_ARCH_HAVE_DPFPU is not set -CONFIG_ARCH_FPU=y -# CONFIG_ARCH_HAVE_TRUSTZONE is not set -CONFIG_ARM_HAVE_MPU_UNIFIED=y -# CONFIG_ARM_MPU is not set - -# -# ARMV7M Configuration Options -# -# CONFIG_ARMV7M_HAVE_ICACHE is not set -# CONFIG_ARMV7M_HAVE_DCACHE is not set -# CONFIG_ARMV7M_HAVE_ITCM is not set -# CONFIG_ARMV7M_HAVE_DTCM is not set -# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set -# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set -# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set -# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set -CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y -# CONFIG_ARMV7M_TOOLCHAIN_CLANGL is not set -CONFIG_ARMV7M_HAVE_STACKCHECK=y -# CONFIG_ARMV7M_STACKCHECK is not set -# CONFIG_ARMV7M_ITMSYSLOG is not set -CONFIG_SERIAL_TERMIOS=y - -# -# STM32 Configuration Options -# -# CONFIG_ARCH_CHIP_STM32L151C6 is not set -# CONFIG_ARCH_CHIP_STM32L151C8 is not set -# CONFIG_ARCH_CHIP_STM32L151CB is not set -# CONFIG_ARCH_CHIP_STM32L151R6 is not set -# CONFIG_ARCH_CHIP_STM32L151R8 is not set -# CONFIG_ARCH_CHIP_STM32L151RB is not set -# CONFIG_ARCH_CHIP_STM32L151V6 is not set -# CONFIG_ARCH_CHIP_STM32L151V8 is not set -# CONFIG_ARCH_CHIP_STM32L151VB is not set -# CONFIG_ARCH_CHIP_STM32L152C6 is not set -# CONFIG_ARCH_CHIP_STM32L152C8 is not set -# CONFIG_ARCH_CHIP_STM32L152CB is not set -# CONFIG_ARCH_CHIP_STM32L152R6 is not set -# CONFIG_ARCH_CHIP_STM32L152R8 is not set -# CONFIG_ARCH_CHIP_STM32L152RB is not set -# CONFIG_ARCH_CHIP_STM32L152V6 is not set -# CONFIG_ARCH_CHIP_STM32L152V8 is not set -# CONFIG_ARCH_CHIP_STM32L152VB is not set -# CONFIG_ARCH_CHIP_STM32L152CC is not set -# CONFIG_ARCH_CHIP_STM32L152RC is not set -# CONFIG_ARCH_CHIP_STM32L152VC is not set -# CONFIG_ARCH_CHIP_STM32L162ZD is not set -# CONFIG_ARCH_CHIP_STM32L162VE is not set -# CONFIG_ARCH_CHIP_STM32F100C8 is not set -# CONFIG_ARCH_CHIP_STM32F100CB is not set -# CONFIG_ARCH_CHIP_STM32F100R8 is not set -# CONFIG_ARCH_CHIP_STM32F100RB is not set -# CONFIG_ARCH_CHIP_STM32F100RC is not set -# CONFIG_ARCH_CHIP_STM32F100RD is not set -# CONFIG_ARCH_CHIP_STM32F100RE is not set -# CONFIG_ARCH_CHIP_STM32F100V8 is not set -# CONFIG_ARCH_CHIP_STM32F100VB is not set -# CONFIG_ARCH_CHIP_STM32F100VC is not set -# CONFIG_ARCH_CHIP_STM32F100VD is not set -# CONFIG_ARCH_CHIP_STM32F100VE is not set -# CONFIG_ARCH_CHIP_STM32F102CB is not set -# CONFIG_ARCH_CHIP_STM32F103T8 is not set -# CONFIG_ARCH_CHIP_STM32F103TB is not set -# CONFIG_ARCH_CHIP_STM32F103C4 is not set -# CONFIG_ARCH_CHIP_STM32F103C8 is not set -# CONFIG_ARCH_CHIP_STM32F103CB is not set -# CONFIG_ARCH_CHIP_STM32F103R8 is not set -# CONFIG_ARCH_CHIP_STM32F103RB is not set -# CONFIG_ARCH_CHIP_STM32F103RC is not set -# CONFIG_ARCH_CHIP_STM32F103RD is not set -# CONFIG_ARCH_CHIP_STM32F103RE is not set -# CONFIG_ARCH_CHIP_STM32F103RG is not set -# CONFIG_ARCH_CHIP_STM32F103V8 is not set -# CONFIG_ARCH_CHIP_STM32F103VB is not set -# CONFIG_ARCH_CHIP_STM32F103VC is not set -# CONFIG_ARCH_CHIP_STM32F103VE is not set -# CONFIG_ARCH_CHIP_STM32F103ZE is not set -# CONFIG_ARCH_CHIP_STM32F105VB is not set -# CONFIG_ARCH_CHIP_STM32F105RB is not set -# CONFIG_ARCH_CHIP_STM32F107VC is not set -# CONFIG_ARCH_CHIP_STM32F205RG is not set -# CONFIG_ARCH_CHIP_STM32F207IG is not set -# CONFIG_ARCH_CHIP_STM32F207ZE is not set -# CONFIG_ARCH_CHIP_STM32F302K6 is not set -# CONFIG_ARCH_CHIP_STM32F302K8 is not set -# CONFIG_ARCH_CHIP_STM32F302CB is not set -# CONFIG_ARCH_CHIP_STM32F302CC is not set -# CONFIG_ARCH_CHIP_STM32F302RB is not set -# CONFIG_ARCH_CHIP_STM32F302RC is not set -# CONFIG_ARCH_CHIP_STM32F302VB is not set -# CONFIG_ARCH_CHIP_STM32F302VC is not set -# CONFIG_ARCH_CHIP_STM32F303K6 is not set -# CONFIG_ARCH_CHIP_STM32F303K8 is not set -# CONFIG_ARCH_CHIP_STM32F303C6 is not set -# CONFIG_ARCH_CHIP_STM32F303C8 is not set -# CONFIG_ARCH_CHIP_STM32F303CB is not set -# CONFIG_ARCH_CHIP_STM32F303CC is not set -# CONFIG_ARCH_CHIP_STM32F303RB is not set -# CONFIG_ARCH_CHIP_STM32F303RC is not set -# CONFIG_ARCH_CHIP_STM32F303RD is not set -# CONFIG_ARCH_CHIP_STM32F303RE is not set -# CONFIG_ARCH_CHIP_STM32F303VB is not set -# CONFIG_ARCH_CHIP_STM32F303VC is not set -# CONFIG_ARCH_CHIP_STM32F334K4 is not set -# CONFIG_ARCH_CHIP_STM32F334K6 is not set -# CONFIG_ARCH_CHIP_STM32F334K8 is not set -# CONFIG_ARCH_CHIP_STM32F334C4 is not set -# CONFIG_ARCH_CHIP_STM32F334C6 is not set -# CONFIG_ARCH_CHIP_STM32F334C8 is not set -# CONFIG_ARCH_CHIP_STM32F334R4 is not set -# CONFIG_ARCH_CHIP_STM32F334R6 is not set -# CONFIG_ARCH_CHIP_STM32F334R8 is not set -# CONFIG_ARCH_CHIP_STM32F372C8 is not set -# CONFIG_ARCH_CHIP_STM32F372R8 is not set -# CONFIG_ARCH_CHIP_STM32F372V8 is not set -# CONFIG_ARCH_CHIP_STM32F372CB is not set -# CONFIG_ARCH_CHIP_STM32F372RB is not set -# CONFIG_ARCH_CHIP_STM32F372VB is not set -# CONFIG_ARCH_CHIP_STM32F372CC is not set -# CONFIG_ARCH_CHIP_STM32F372RC is not set -# CONFIG_ARCH_CHIP_STM32F372VC is not set -# CONFIG_ARCH_CHIP_STM32F373C8 is not set -# CONFIG_ARCH_CHIP_STM32F373R8 is not set -# CONFIG_ARCH_CHIP_STM32F373V8 is not set -# CONFIG_ARCH_CHIP_STM32F373CB is not set -# CONFIG_ARCH_CHIP_STM32F373RB is not set -# CONFIG_ARCH_CHIP_STM32F373VB is not set -# CONFIG_ARCH_CHIP_STM32F373CC is not set -# CONFIG_ARCH_CHIP_STM32F373RC is not set -# CONFIG_ARCH_CHIP_STM32F373VC is not set -# CONFIG_ARCH_CHIP_STM32F401RE is not set -# CONFIG_ARCH_CHIP_STM32F410RB is not set -# CONFIG_ARCH_CHIP_STM32F411RE is not set -# CONFIG_ARCH_CHIP_STM32F411VE is not set -# CONFIG_ARCH_CHIP_STM32F405RG is not set -# CONFIG_ARCH_CHIP_STM32F405VG is not set -# CONFIG_ARCH_CHIP_STM32F405ZG is not set -# CONFIG_ARCH_CHIP_STM32F407VE is not set -# CONFIG_ARCH_CHIP_STM32F407VG is not set -# CONFIG_ARCH_CHIP_STM32F407ZE is not set -# CONFIG_ARCH_CHIP_STM32F407ZG is not set -# CONFIG_ARCH_CHIP_STM32F407IE is not set -# CONFIG_ARCH_CHIP_STM32F407IG is not set -CONFIG_ARCH_CHIP_STM32F427V=y -# CONFIG_ARCH_CHIP_STM32F427Z is not set -# CONFIG_ARCH_CHIP_STM32F427I is not set -# CONFIG_ARCH_CHIP_STM32F429V is not set -# CONFIG_ARCH_CHIP_STM32F429Z is not set -# CONFIG_ARCH_CHIP_STM32F429I is not set -# CONFIG_ARCH_CHIP_STM32F429B is not set -# CONFIG_ARCH_CHIP_STM32F429N is not set -# CONFIG_ARCH_CHIP_STM32F446M is not set -# CONFIG_ARCH_CHIP_STM32F446R is not set -# CONFIG_ARCH_CHIP_STM32F446V is not set -# CONFIG_ARCH_CHIP_STM32F446Z is not set -# CONFIG_ARCH_CHIP_STM32F469A is not set -# CONFIG_ARCH_CHIP_STM32F469I is not set -# CONFIG_ARCH_CHIP_STM32F469B is not set -# CONFIG_ARCH_CHIP_STM32F469N is not set -# CONFIG_STM32_FLASH_CONFIG_DEFAULT is not set -# CONFIG_STM32_FLASH_CONFIG_4 is not set -# CONFIG_STM32_FLASH_CONFIG_6 is not set -# CONFIG_STM32_FLASH_CONFIG_8 is not set -# CONFIG_STM32_FLASH_CONFIG_B is not set -# CONFIG_STM32_FLASH_CONFIG_C is not set -# CONFIG_STM32_FLASH_CONFIG_D is not set -# CONFIG_STM32_FLASH_CONFIG_E is not set -# CONFIG_STM32_FLASH_CONFIG_F is not set -# CONFIG_STM32_FLASH_CONFIG_G is not set -CONFIG_STM32_FLASH_CONFIG_I=y -# CONFIG_STM32_STM32L15XX is not set -# CONFIG_STM32_ENERGYLITE is not set -# CONFIG_STM32_STM32F10XX is not set -# CONFIG_STM32_VALUELINE is not set -# CONFIG_STM32_CONNECTIVITYLINE is not set -# CONFIG_STM32_PERFORMANCELINE is not set -# CONFIG_STM32_USBACCESSLINE is not set -# CONFIG_STM32_HIGHDENSITY is not set -# CONFIG_STM32_MEDIUMDENSITY is not set -# CONFIG_STM32_LOWDENSITY is not set -# CONFIG_STM32_STM32F20XX is not set -# CONFIG_STM32_STM32F205 is not set -# CONFIG_STM32_STM32F207 is not set -# CONFIG_STM32_STM32F30XX is not set -# CONFIG_STM32_STM32F302 is not set -# CONFIG_STM32_STM32F303 is not set -# CONFIG_STM32_STM32F33XX is not set -# CONFIG_STM32_STM32F37XX is not set -CONFIG_STM32_STM32F4XXX=y -# CONFIG_STM32_STM32F401 is not set -# CONFIG_STM32_STM32F410 is not set -# CONFIG_STM32_STM32F411 is not set -# CONFIG_STM32_STM32F405 is not set -# CONFIG_STM32_STM32F407 is not set -CONFIG_STM32_STM32F427=y -# CONFIG_STM32_STM32F429 is not set -# CONFIG_STM32_STM32F446 is not set -# CONFIG_STM32_STM32F469 is not set -# CONFIG_STM32_DFU is not set - -# -# STM32 Peripheral Support -# -CONFIG_STM32_HAVE_CCM=y -# CONFIG_STM32_HAVE_USBDEV is not set -CONFIG_STM32_HAVE_OTGFS=y -CONFIG_STM32_HAVE_FSMC=y -# CONFIG_STM32_HAVE_HRTIM1 is not set -# CONFIG_STM32_HAVE_LTDC is not set -CONFIG_STM32_HAVE_USART3=y -CONFIG_STM32_HAVE_UART4=y -CONFIG_STM32_HAVE_UART5=y -CONFIG_STM32_HAVE_USART6=y -CONFIG_STM32_HAVE_UART7=y -CONFIG_STM32_HAVE_UART8=y -CONFIG_STM32_HAVE_TIM1=y -# CONFIG_STM32_HAVE_TIM2 is not set -CONFIG_STM32_HAVE_TIM3=y -CONFIG_STM32_HAVE_TIM4=y -CONFIG_STM32_HAVE_TIM5=y -CONFIG_STM32_HAVE_TIM6=y -CONFIG_STM32_HAVE_TIM7=y -CONFIG_STM32_HAVE_TIM8=y -CONFIG_STM32_HAVE_TIM9=y -CONFIG_STM32_HAVE_TIM10=y -CONFIG_STM32_HAVE_TIM11=y -CONFIG_STM32_HAVE_TIM12=y -CONFIG_STM32_HAVE_TIM13=y -CONFIG_STM32_HAVE_TIM14=y -# CONFIG_STM32_HAVE_TIM15 is not set -# CONFIG_STM32_HAVE_TIM16 is not set -# CONFIG_STM32_HAVE_TIM17 is not set -CONFIG_STM32_HAVE_ADC2=y -CONFIG_STM32_HAVE_ADC3=y -# CONFIG_STM32_HAVE_ADC4 is not set -CONFIG_STM32_HAVE_ADC1_DMA=y -# CONFIG_STM32_HAVE_ADC2_DMA is not set -# CONFIG_STM32_HAVE_ADC3_DMA is not set -# CONFIG_STM32_HAVE_ADC4_DMA is not set -# CONFIG_STM32_HAVE_SDADC1 is not set -# CONFIG_STM32_HAVE_SDADC2 is not set -# CONFIG_STM32_HAVE_SDADC3 is not set -# CONFIG_STM32_HAVE_SDADC1_DMA is not set -# CONFIG_STM32_HAVE_SDADC2_DMA is not set -# CONFIG_STM32_HAVE_SDADC3_DMA is not set -CONFIG_STM32_HAVE_CAN1=y -CONFIG_STM32_HAVE_CAN2=y -# CONFIG_STM32_HAVE_COMP1 is not set -# CONFIG_STM32_HAVE_COMP2 is not set -# CONFIG_STM32_HAVE_COMP3 is not set -# CONFIG_STM32_HAVE_COMP4 is not set -# CONFIG_STM32_HAVE_COMP5 is not set -# CONFIG_STM32_HAVE_COMP6 is not set -# CONFIG_STM32_HAVE_COMP7 is not set -CONFIG_STM32_HAVE_DAC1=y -CONFIG_STM32_HAVE_DAC2=y -CONFIG_STM32_HAVE_RNG=y -CONFIG_STM32_HAVE_ETHMAC=y -CONFIG_STM32_HAVE_I2C2=y -CONFIG_STM32_HAVE_I2C3=y -CONFIG_STM32_HAVE_SPI2=y -CONFIG_STM32_HAVE_SPI3=y -CONFIG_STM32_HAVE_I2S3=y -CONFIG_STM32_HAVE_SPI4=y -CONFIG_STM32_HAVE_SPI5=y -CONFIG_STM32_HAVE_SPI6=y -# CONFIG_STM32_HAVE_SAIPLL is not set -# CONFIG_STM32_HAVE_I2SPLL is not set -# CONFIG_STM32_HAVE_OPAMP1 is not set -# CONFIG_STM32_HAVE_OPAMP2 is not set -# CONFIG_STM32_HAVE_OPAMP3 is not set -# CONFIG_STM32_HAVE_OPAMP4 is not set -CONFIG_STM32_ADC1=y -# CONFIG_STM32_ADC2 is not set -# CONFIG_STM32_ADC3 is not set -CONFIG_STM32_BKPSRAM=y -# CONFIG_STM32_CAN1 is not set -# CONFIG_STM32_CAN2 is not set -CONFIG_STM32_CCMDATARAM=y -# CONFIG_STM32_CRC is not set -# CONFIG_STM32_CRYP is not set -CONFIG_STM32_DMA1=y -CONFIG_STM32_DMA2=y -# CONFIG_STM32_DAC1 is not set -# CONFIG_STM32_DAC2 is not set -# CONFIG_STM32_DCMI is not set -# CONFIG_STM32_ETHMAC is not set -# CONFIG_STM32_FSMC is not set -# CONFIG_STM32_HASH is not set -CONFIG_STM32_I2C1=y -CONFIG_STM32_I2C2=y -# CONFIG_STM32_I2C3 is not set -# CONFIG_STM32_OPAMP is not set -CONFIG_STM32_OTGFS=y -# CONFIG_STM32_OTGHS is not set -CONFIG_STM32_PWR=y -# CONFIG_STM32_RNG is not set -CONFIG_STM32_SDIO=y -CONFIG_STM32_SPI1=y -CONFIG_STM32_SPI2=y -# CONFIG_STM32_SPI3 is not set -# CONFIG_STM32_I2S3 is not set -CONFIG_STM32_SPI4=y -# CONFIG_STM32_SPI5 is not set -# CONFIG_STM32_SPI6 is not set -CONFIG_STM32_SYSCFG=y -CONFIG_STM32_TIM1=y -# CONFIG_STM32_TIM2 is not set -CONFIG_STM32_TIM3=y -CONFIG_STM32_TIM4=y -# CONFIG_STM32_TIM5 is not set -# CONFIG_STM32_TIM6 is not set -# CONFIG_STM32_TIM7 is not set -# CONFIG_STM32_TIM8 is not set -CONFIG_STM32_TIM9=y -CONFIG_STM32_TIM10=y -CONFIG_STM32_TIM11=y -# CONFIG_STM32_TIM12 is not set -# CONFIG_STM32_TIM13 is not set -# CONFIG_STM32_TIM14 is not set -CONFIG_STM32_USART1=y -CONFIG_STM32_USART2=y -CONFIG_STM32_USART3=y -CONFIG_STM32_UART4=y -# CONFIG_STM32_UART5 is not set -CONFIG_STM32_USART6=y -CONFIG_STM32_UART7=y -CONFIG_STM32_UART8=y -# CONFIG_STM32_IWDG is not set -CONFIG_STM32_WWDG=y -CONFIG_STM32_ADC=y -CONFIG_STM32_SPI=y -CONFIG_STM32_I2C=y -# CONFIG_STM32_NOEXT_VECTORS is not set - -# -# Alternate Pin Mapping -# -CONFIG_STM32_FLASH_PREFETCH=y -# CONFIG_STM32_FLASH_WORKAROUND_DATA_CACHE_CORRUPTION_ON_RWW is not set -# CONFIG_STM32_JTAG_DISABLE is not set -# CONFIG_STM32_JTAG_FULL_ENABLE is not set -# CONFIG_STM32_JTAG_NOJNTRST_ENABLE is not set -CONFIG_STM32_JTAG_SW_ENABLE=y -CONFIG_STM32_DISABLE_IDLE_SLEEP_DURING_DEBUG=y -# CONFIG_STM32_FORCEPOWER is not set -# CONFIG_ARCH_BOARD_STM32_CUSTOM_CLOCKCONFIG is not set -# CONFIG_STM32_CCMEXCLUDE is not set -# CONFIG_STM32_CCM_PROCFS is not set -CONFIG_STM32_DMACAPABLE=y - -# -# Timer Configuration -# -# CONFIG_STM32_ONESHOT is not set -# CONFIG_STM32_FREERUN is not set -# CONFIG_STM32_TIM1_PWM is not set -# CONFIG_STM32_TIM3_PWM is not set -# CONFIG_STM32_TIM4_PWM is not set -# CONFIG_STM32_TIM9_PWM is not set -# CONFIG_STM32_TIM10_PWM is not set -# CONFIG_STM32_TIM11_PWM is not set -# CONFIG_STM32_TIM1_ADC is not set -# CONFIG_STM32_TIM3_ADC is not set -# CONFIG_STM32_TIM4_ADC is not set -# CONFIG_STM32_TIM1_CAP is not set -# CONFIG_STM32_TIM3_CAP is not set -# CONFIG_STM32_TIM4_CAP is not set -# CONFIG_STM32_TIM5_CAP is not set -# CONFIG_STM32_TIM8_CAP is not set -# CONFIG_STM32_TIM9_CAP is not set -# CONFIG_STM32_TIM10_CAP is not set -# CONFIG_STM32_TIM11_CAP is not set -# CONFIG_STM32_TIM12_CAP is not set -# CONFIG_STM32_TIM13_CAP is not set -# CONFIG_STM32_TIM14_CAP is not set - -# -# ADC Configuration -# -# CONFIG_STM32_ADC_NO_STARTUP_CONV is not set -# CONFIG_STM32_ADC1_DMA is not set -CONFIG_STM32_USART=y -CONFIG_STM32_SERIALDRIVER=y - -# -# U[S]ART Configuration -# - -# -# U[S]ART Device Configuration -# -CONFIG_STM32_USART1_SERIALDRIVER=y -# CONFIG_STM32_USART1_1WIREDRIVER is not set -# CONFIG_USART1_RS485 is not set -CONFIG_USART1_RXDMA=y -CONFIG_STM32_USART2_SERIALDRIVER=y -# CONFIG_STM32_USART2_1WIREDRIVER is not set -# CONFIG_USART2_RS485 is not set -CONFIG_USART2_RXDMA=y -CONFIG_STM32_USART3_SERIALDRIVER=y -# CONFIG_STM32_USART3_1WIREDRIVER is not set -# CONFIG_USART3_RS485 is not set -CONFIG_USART3_RXDMA=y -CONFIG_STM32_UART4_SERIALDRIVER=y -# CONFIG_STM32_UART4_1WIREDRIVER is not set -# CONFIG_UART4_RS485 is not set -CONFIG_UART4_RXDMA=y -CONFIG_STM32_USART6_SERIALDRIVER=y -# CONFIG_STM32_USART6_1WIREDRIVER is not set -# CONFIG_USART6_RS485 is not set -CONFIG_USART6_RXDMA=y -CONFIG_STM32_UART7_SERIALDRIVER=y -# CONFIG_STM32_UART7_1WIREDRIVER is not set -# CONFIG_UART7_RS485 is not set -CONFIG_UART7_RXDMA=y -CONFIG_STM32_UART8_SERIALDRIVER=y -# CONFIG_STM32_UART8_1WIREDRIVER is not set -# CONFIG_UART8_RS485 is not set -CONFIG_UART8_RXDMA=y - -# -# Serial Driver Configuration -# -CONFIG_STM32_SERIAL_RXDMA_BUFFER_SIZE=32 -CONFIG_SERIAL_DISABLE_REORDERING=y -CONFIG_STM32_FLOWCONTROL_BROKEN=y -CONFIG_STM32_USART_BREAKS=y -CONFIG_STM32_SERIALBRK_BSDCOMPAT=y -CONFIG_STM32_USART_SINGLEWIRE=y - -# -# SPI Configuration -# -# CONFIG_STM32_SPI_INTERRUPTS is not set -# CONFIG_STM32_SPI_DMA is not set - -# -# I2C Configuration -# -# CONFIG_STM32_I2C_ALT is not set -# CONFIG_STM32_I2C_DYNTIMEO is not set -CONFIG_STM32_I2CTIMEOSEC=0 -CONFIG_STM32_I2CTIMEOMS=10 -CONFIG_STM32_I2CTIMEOTICKS=10 -# CONFIG_STM32_I2C_DUTY16_9 is not set -# CONFIG_STM32_I2C_DMA is not set - -# -# SDIO Configuration -# -CONFIG_STM32_SDIO_DMA=y -CONFIG_STM32_SDIO_DMAPRIO=0x00010000 -# CONFIG_STM32_SDIO_WIDTH_D1_ONLY is not set -CONFIG_STM32_BBSRAM=y -CONFIG_STM32_BBSRAM_FILES=5 -CONFIG_STM32_SAVE_CRASHDUMP=y -# CONFIG_STM32_HAVE_RTC_COUNTER is not set -# CONFIG_STM32_HAVE_RTC_SUBSECONDS is not set -CONFIG_RTC_MAGIC_REG=1 -CONFIG_RTC_MAGIC=0xfacefeee -CONFIG_RTC_MAGIC_TIME_SET=0xfacefeef -# CONFIG_RTC_LSECLOCK is not set -# CONFIG_RTC_LSICLOCK is not set -CONFIG_RTC_HSECLOCK=y - -# -# USB FS Host Configuration -# - -# -# USB HS Host Configuration -# - -# -# USB Host Debug Configuration -# - -# -# USB Device Configuration -# -# CONFIG_ARCH_TOOLCHAIN_IAR is not set -CONFIG_ARCH_TOOLCHAIN_GNU=y - -# -# Architecture Options -# -# CONFIG_ARCH_NOINTC is not set -# CONFIG_ARCH_VECNOTIRQ is not set -CONFIG_ARCH_DMA=y -CONFIG_ARCH_HAVE_IRQPRIO=y -# CONFIG_ARCH_L2CACHE is not set -# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set -# CONFIG_ARCH_HAVE_ADDRENV is not set -# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set -# CONFIG_ARCH_HAVE_MULTICPU is not set -CONFIG_ARCH_HAVE_VFORK=y -# CONFIG_ARCH_HAVE_MMU is not set -CONFIG_ARCH_HAVE_MPU=y -# CONFIG_ARCH_NAND_HWECC is not set -# CONFIG_ARCH_HAVE_EXTCLK is not set -# CONFIG_ARCH_HAVE_POWEROFF is not set -CONFIG_ARCH_HAVE_RESET=y -# CONFIG_ARCH_HAVE_RTC_SUBSECONDS is not set -# CONFIG_ARCH_USE_MPU is not set -CONFIG_ARCH_IRQPRIO=y -CONFIG_ARCH_STACKDUMP=y -# CONFIG_ENDIAN_BIG is not set -# CONFIG_ARCH_IDLE_CUSTOM is not set -# CONFIG_ARCH_HAVE_RAMFUNCS is not set -CONFIG_ARCH_HAVE_RAMVECTORS=y -# CONFIG_ARCH_RAMVECTORS is not set -# CONFIG_ARCH_MINIMAL_VECTORTABLE is not set - -# -# Board Settings -# -CONFIG_BOARD_LOOPSPERMSEC=16717 -# CONFIG_ARCH_CALIBRATION is not set - -# -# Interrupt options -# -CONFIG_ARCH_HAVE_INTERRUPTSTACK=y -CONFIG_ARCH_INTERRUPTSTACK=750 -CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y -CONFIG_ARCH_HIPRI_INTERRUPT=y - -# -# Boot options -# -# CONFIG_BOOT_RUNFROMEXTSRAM is not set -CONFIG_BOOT_RUNFROMFLASH=y -# CONFIG_BOOT_RUNFROMISRAM is not set -# CONFIG_BOOT_RUNFROMSDRAM is not set -# CONFIG_BOOT_COPYTORAM is not set - -# -# Boot Memory Configuration -# -CONFIG_RAM_START=0x20000000 -CONFIG_RAM_SIZE=262144 -# CONFIG_ARCH_HAVE_SDRAM is not set - -# -# Board Selection -# -CONFIG_ARCH_BOARD_PX4FMU_V3=y -CONFIG_ARCH_BOARD="px4fmu-v3" - -# -# Custom Board Configuration -# -# CONFIG_BOARD_CUSTOM_LEDS is not set -# CONFIG_BOARD_CUSTOM_BUTTONS is not set -CONFIG_BOARD_HAS_PROBES=y -# CONFIG_BOARD_USE_PROBES is not set - -# -# Common Board Options -# - -# -# Board-Specific Options -# -CONFIG_BOARD_CRASHDUMP=y -CONFIG_BOARD_RESET_ON_CRASH=y -CONFIG_LIB_BOARDCTL=y -CONFIG_BOARDCTL_RESET=y -# CONFIG_BOARDCTL_UNIQUEID is not set -CONFIG_BOARDCTL_USBDEVCTRL=y -# CONFIG_BOARDCTL_TSCTEST is not set -# CONFIG_BOARDCTL_GRAPHICS is not set -# CONFIG_BOARDCTL_IOCTL is not set - -# -# RTOS Features -# -# CONFIG_DISABLE_OS_API is not set - -# -# Clocks and Timers -# -CONFIG_ARCH_HAVE_TICKLESS=y -# CONFIG_SCHED_TICKLESS is not set -CONFIG_USEC_PER_TICK=1000 -# CONFIG_SYSTEM_TIME64 is not set -# CONFIG_CLOCK_MONOTONIC is not set -CONFIG_ARCH_HAVE_TIMEKEEPING=y -# CONFIG_JULIAN_TIME is not set -CONFIG_START_YEAR=2016 -CONFIG_START_MONTH=11 -CONFIG_START_DAY=30 -CONFIG_MAX_WDOGPARMS=2 -CONFIG_PREALLOC_WDOGS=50 -CONFIG_WDOG_INTRESERVE=4 -CONFIG_PREALLOC_TIMERS=50 - -# -# Tasks and Scheduling -# -# CONFIG_SPINLOCK is not set -# CONFIG_INIT_NONE is not set -CONFIG_INIT_ENTRYPOINT=y -# CONFIG_INIT_FILEPATH is not set -CONFIG_USER_ENTRYPOINT="nsh_main" -CONFIG_RR_INTERVAL=0 -# CONFIG_SCHED_SPORADIC is not set -CONFIG_TASK_NAME_SIZE=24 -CONFIG_MAX_TASKS=32 -# CONFIG_SCHED_HAVE_PARENT is not set -CONFIG_SCHED_WAITPID=y - -# -# Pthread Options -# -# CONFIG_PTHREAD_MUTEX_TYPES is not set -CONFIG_PTHREAD_MUTEX_ROBUST=y -# CONFIG_PTHREAD_MUTEX_UNSAFE is not set -# CONFIG_PTHREAD_MUTEX_BOTH is not set -CONFIG_NPTHREAD_KEYS=4 -# CONFIG_PTHREAD_CLEANUP is not set -# CONFIG_CANCELLATION_POINTS is not set - -# -# Performance Monitoring -# -# CONFIG_SCHED_CPULOAD is not set -CONFIG_SCHED_INSTRUMENTATION=y -# CONFIG_SCHED_INSTRUMENTATION_PREEMPTION is not set -# CONFIG_SCHED_INSTRUMENTATION_CSECTION is not set -# CONFIG_SCHED_INSTRUMENTATION_SPINLOCKS is not set -# CONFIG_SCHED_INSTRUMENTATION_BUFFER is not set - -# -# Files and I/O -# -CONFIG_DEV_CONSOLE=y -# CONFIG_FDCLONE_DISABLE is not set -CONFIG_FDCLONE_STDIO=y -CONFIG_SDCLONE_DISABLE=y -CONFIG_NFILE_DESCRIPTORS=54 -CONFIG_NFILE_STREAMS=8 -CONFIG_NAME_MAX=32 -CONFIG_PRIORITY_INHERITANCE=y -CONFIG_SEM_PREALLOCHOLDERS=0 -CONFIG_SEM_NNESTPRIO=8 - -# -# RTOS hooks -# -# CONFIG_BOARD_INITIALIZE is not set -# CONFIG_SCHED_STARTHOOK is not set -CONFIG_SCHED_ATEXIT=y -CONFIG_SCHED_ATEXIT_MAX=1 -# CONFIG_SCHED_ONEXIT is not set -# CONFIG_SIG_EVTHREAD is not set - -# -# Signal Numbers -# -CONFIG_SIG_SIGUSR1=1 -CONFIG_SIG_SIGUSR2=2 -CONFIG_SIG_SIGALARM=3 -CONFIG_SIG_SIGCONDTIMEDOUT=16 -CONFIG_SIG_SIGWORK=4 - -# -# POSIX Message Queue Options -# -CONFIG_PREALLOC_MQ_MSGS=4 -CONFIG_MQ_MAXMSGSIZE=32 -# CONFIG_MODULE is not set - -# -# Work queue support -# -CONFIG_SCHED_WORKQUEUE=y -CONFIG_SCHED_HPWORK=y -CONFIG_SCHED_HPWORKPRIORITY=249 -CONFIG_SCHED_HPWORKPERIOD=5000 -CONFIG_SCHED_HPWORKSTACKSIZE=1800 -CONFIG_SCHED_LPWORK=y -CONFIG_SCHED_LPNTHREADS=1 -CONFIG_SCHED_LPWORKPRIORITY=50 -CONFIG_SCHED_LPWORKPRIOMAX=176 -CONFIG_SCHED_LPWORKPERIOD=50000 -CONFIG_SCHED_LPWORKSTACKSIZE=1800 - -# -# Stack and heap information -# -CONFIG_IDLETHREAD_STACKSIZE=500 -CONFIG_USERMAIN_STACKSIZE=2500 -CONFIG_PTHREAD_STACK_MIN=512 -CONFIG_PTHREAD_STACK_DEFAULT=2048 -# CONFIG_LIB_SYSCALL is not set - -# -# Device Drivers -# -# CONFIG_DISABLE_POLL is not set -CONFIG_DEV_NULL=y -# CONFIG_DEV_ZERO is not set -# CONFIG_DEV_URANDOM is not set -# CONFIG_DEV_LOOP is not set - -# -# Buffering -# -# CONFIG_DRVR_WRITEBUFFER is not set -# CONFIG_DRVR_READAHEAD is not set -# CONFIG_RAMDISK is not set -# CONFIG_CAN is not set -# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set -# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set -# CONFIG_PWM is not set -CONFIG_ARCH_HAVE_I2CRESET=y -CONFIG_I2C=y -# CONFIG_I2C_SLAVE is not set -# CONFIG_I2C_POLLED is not set -CONFIG_I2C_RESET=y -# CONFIG_I2C_TRACE is not set -# CONFIG_I2C_DRIVER is not set -# CONFIG_ARCH_HAVE_SPI_CRCGENERATION is not set -# CONFIG_ARCH_HAVE_SPI_CS_CONTROL is not set -CONFIG_ARCH_HAVE_SPI_BITORDER=y -CONFIG_SPI=y -# CONFIG_SPI_SLAVE is not set -CONFIG_SPI_EXCHANGE=y -# CONFIG_SPI_CMDDATA is not set -# CONFIG_SPI_CALLBACK is not set -# CONFIG_SPI_HWFEATURES is not set -# CONFIG_SPI_BITORDER is not set -# CONFIG_SPI_CS_DELAY_CONTROL is not set -# CONFIG_SPI_DRIVER is not set -# CONFIG_SPI_BITBANG is not set -# CONFIG_I2S is not set - -# -# Timer Driver Support -# -# CONFIG_TIMER is not set -# CONFIG_ONESHOT is not set -CONFIG_RTC=y -CONFIG_RTC_DATETIME=y -# CONFIG_RTC_ALARM is not set -# CONFIG_RTC_DRIVER is not set -# CONFIG_RTC_EXTERNAL is not set -CONFIG_WATCHDOG=y -CONFIG_WATCHDOG_DEVPATH="/dev/watchdog0" -# CONFIG_TIMERS_CS2100CP is not set -# CONFIG_ANALOG is not set -# CONFIG_AUDIO_DEVICES is not set -# CONFIG_VIDEO_DEVICES is not set -# CONFIG_BCH is not set -# CONFIG_INPUT is not set - -# -# IO Expander/GPIO Support -# -# CONFIG_IOEXPANDER is not set -# CONFIG_DEV_GPIO is not set - -# -# LCD Driver Support -# -# CONFIG_LCD is not set -# CONFIG_SLCD is not set - -# -# LED Support -# -# CONFIG_RGBLED is not set -# CONFIG_PCA9635PW is not set -# CONFIG_NCP5623C is not set -CONFIG_MMCSD=y -CONFIG_MMCSD_NSLOTS=1 -# CONFIG_MMCSD_READONLY is not set -CONFIG_MMCSD_MULTIBLOCK_DISABLE=y -# CONFIG_MMCSD_MMCSUPPORT is not set -# CONFIG_MMCSD_HAVECARDDETECT is not set -# CONFIG_MMCSD_SPI is not set -CONFIG_ARCH_HAVE_SDIO=y -CONFIG_SDIO_DMA=y -CONFIG_ARCH_HAVE_SDIOWAIT_WRCOMPLETE=y -CONFIG_MMCSD_SDIO=y -CONFIG_SDIO_PREFLIGHT=y -# CONFIG_SDIO_MUXBUS is not set -CONFIG_MMCSD_SDIOWAIT_WRCOMPLETE=y -# CONFIG_SDIO_WIDTH_D1_ONLY is not set -# CONFIG_SDIO_BLOCKSETUP is not set -# CONFIG_MODEM is not set -CONFIG_MTD=y - -# -# MTD Configuration -# -CONFIG_MTD_PARTITION=y -# CONFIG_MTD_SECT512 is not set -# CONFIG_MTD_PARTITION_NAMES is not set -CONFIG_MTD_BYTE_WRITE=y -# CONFIG_MTD_PROGMEM is not set -# CONFIG_MTD_CONFIG is not set - -# -# MTD Device Drivers -# -# CONFIG_MTD_NAND is not set -# CONFIG_RAMMTD is not set -# CONFIG_FILEMTD is not set -# CONFIG_MTD_AT24XX is not set -# CONFIG_MTD_AT25 is not set -# CONFIG_MTD_AT45DB is not set -# CONFIG_MTD_IS25XP is not set -# CONFIG_MTD_M25P is not set -# CONFIG_MTD_MX25L is not set -# CONFIG_MTD_S25FL1 is not set -# CONFIG_MTD_N25QXXX is not set -# CONFIG_MTD_MX25RXX is not set -# CONFIG_MTD_SMART is not set -CONFIG_MTD_RAMTRON=y -CONFIG_RAMTRON_WRITEWAIT=y -CONFIG_RAMTRON_SETSPEED=y -# CONFIG_RAMTRON_CHUNKING is not set -# CONFIG_MTD_SST25 is not set -# CONFIG_MTD_SST25XX is not set -# CONFIG_MTD_SST26 is not set -# CONFIG_MTD_SST39FV is not set -# CONFIG_MTD_W25 is not set -# CONFIG_EEPROM is not set -CONFIG_PIPES=y -CONFIG_DEV_PIPE_MAXSIZE=1024 -CONFIG_DEV_PIPE_SIZE=70 -CONFIG_DEV_FIFO_SIZE=0 -# CONFIG_PM is not set -# CONFIG_DRIVERS_SMPS is not set -# CONFIG_POWER is not set -# CONFIG_SENSORS is not set -CONFIG_SERIAL=y -# CONFIG_DEV_LOWCONSOLE is not set -CONFIG_SERIAL_REMOVABLE=y -CONFIG_SERIAL_CONSOLE=y -# CONFIG_16550_UART is not set -# CONFIG_UART_SERIALDRIVER is not set -# CONFIG_UART0_SERIALDRIVER is not set -# CONFIG_UART1_SERIALDRIVER is not set -# CONFIG_UART2_SERIALDRIVER is not set -# CONFIG_UART3_SERIALDRIVER is not set -CONFIG_UART4_SERIALDRIVER=y -# CONFIG_UART5_SERIALDRIVER is not set -# CONFIG_UART6_SERIALDRIVER is not set -CONFIG_UART7_SERIALDRIVER=y -CONFIG_UART8_SERIALDRIVER=y -# CONFIG_SCI0_SERIALDRIVER is not set -# CONFIG_SCI1_SERIALDRIVER is not set -# CONFIG_USART0_SERIALDRIVER is not set -CONFIG_USART1_SERIALDRIVER=y -CONFIG_USART2_SERIALDRIVER=y -CONFIG_USART3_SERIALDRIVER=y -# CONFIG_USART4_SERIALDRIVER is not set -# CONFIG_USART5_SERIALDRIVER is not set -CONFIG_USART6_SERIALDRIVER=y -# CONFIG_USART7_SERIALDRIVER is not set -# CONFIG_USART8_SERIALDRIVER is not set -# CONFIG_OTHER_UART_SERIALDRIVER is not set -CONFIG_MCU_SERIAL=y -CONFIG_STANDARD_SERIAL=y -CONFIG_SERIAL_NPOLLWAITERS=2 -CONFIG_SERIAL_IFLOWCONTROL=y -CONFIG_SERIAL_OFLOWCONTROL=y -# CONFIG_SERIAL_DMA is not set -CONFIG_SERIAL_IFLOWCONTROL_WATERMARKS=y -CONFIG_SERIAL_IFLOWCONTROL_LOWER_WATERMARK=10 -CONFIG_SERIAL_IFLOWCONTROL_UPPER_WATERMARK=90 -CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y -# CONFIG_USART1_SERIAL_CONSOLE is not set -# CONFIG_USART2_SERIAL_CONSOLE is not set -# CONFIG_USART3_SERIAL_CONSOLE is not set -# CONFIG_UART4_SERIAL_CONSOLE is not set -# CONFIG_USART6_SERIAL_CONSOLE is not set -CONFIG_UART7_SERIAL_CONSOLE=y -# CONFIG_UART8_SERIAL_CONSOLE is not set -# CONFIG_OTHER_SERIAL_CONSOLE is not set -# CONFIG_NO_SERIAL_CONSOLE is not set - -# -# USART1 Configuration -# -CONFIG_USART1_RXBUFSIZE=128 -CONFIG_USART1_TXBUFSIZE=32 -CONFIG_USART1_BAUD=115200 -CONFIG_USART1_BITS=8 -CONFIG_USART1_PARITY=0 -CONFIG_USART1_2STOP=0 -# CONFIG_USART1_IFLOWCONTROL is not set -# CONFIG_USART1_OFLOWCONTROL is not set -# CONFIG_USART1_DMA is not set - -# -# USART2 Configuration -# -CONFIG_USART2_RXBUFSIZE=600 -CONFIG_USART2_TXBUFSIZE=1100 -CONFIG_USART2_BAUD=57600 -CONFIG_USART2_BITS=8 -CONFIG_USART2_PARITY=0 -CONFIG_USART2_2STOP=0 -CONFIG_USART2_IFLOWCONTROL=y -CONFIG_USART2_OFLOWCONTROL=y -# CONFIG_USART2_DMA is not set - -# -# USART3 Configuration -# -CONFIG_USART3_RXBUFSIZE=300 -CONFIG_USART3_TXBUFSIZE=600 -CONFIG_USART3_BAUD=57600 -CONFIG_USART3_BITS=8 -CONFIG_USART3_PARITY=0 -CONFIG_USART3_2STOP=0 -CONFIG_USART3_IFLOWCONTROL=y -CONFIG_USART3_OFLOWCONTROL=y -# CONFIG_USART3_DMA is not set - -# -# UART4 Configuration -# -CONFIG_UART4_RXBUFSIZE=300 -CONFIG_UART4_TXBUFSIZE=300 -CONFIG_UART4_BAUD=57600 -CONFIG_UART4_BITS=8 -CONFIG_UART4_PARITY=0 -CONFIG_UART4_2STOP=0 -# CONFIG_UART4_IFLOWCONTROL is not set -# CONFIG_UART4_OFLOWCONTROL is not set -# CONFIG_UART4_DMA is not set - -# -# USART6 Configuration -# -CONFIG_USART6_RXBUFSIZE=300 -CONFIG_USART6_TXBUFSIZE=300 -CONFIG_USART6_BAUD=57600 -CONFIG_USART6_BITS=8 -CONFIG_USART6_PARITY=0 -CONFIG_USART6_2STOP=0 -# CONFIG_USART6_IFLOWCONTROL is not set -# CONFIG_USART6_OFLOWCONTROL is not set -# CONFIG_USART6_DMA is not set - -# -# UART7 Configuration -# -CONFIG_UART7_RXBUFSIZE=300 -CONFIG_UART7_TXBUFSIZE=300 -CONFIG_UART7_BAUD=57600 -CONFIG_UART7_BITS=8 -CONFIG_UART7_PARITY=0 -CONFIG_UART7_2STOP=0 -# CONFIG_UART7_IFLOWCONTROL is not set -# CONFIG_UART7_OFLOWCONTROL is not set -# CONFIG_UART7_DMA is not set - -# -# UART8 Configuration -# -CONFIG_UART8_RXBUFSIZE=300 -CONFIG_UART8_TXBUFSIZE=300 -CONFIG_UART8_BAUD=57600 -CONFIG_UART8_BITS=8 -CONFIG_UART8_PARITY=0 -CONFIG_UART8_2STOP=0 -# CONFIG_UART8_IFLOWCONTROL is not set -# CONFIG_UART8_OFLOWCONTROL is not set -# CONFIG_UART8_DMA is not set -# CONFIG_PSEUDOTERM is not set -CONFIG_USBDEV=y - -# -# USB Device Controller Driver Options -# -# CONFIG_USBDEV_ISOCHRONOUS is not set -# CONFIG_USBDEV_DUALSPEED is not set -# CONFIG_USBDEV_SELFPOWERED is not set -CONFIG_USBDEV_BUSPOWERED=y -CONFIG_USBDEV_MAXPOWER=500 -# CONFIG_USBDEV_DMA is not set -# CONFIG_ARCH_USBDEV_STALLQUEUE is not set -# CONFIG_USBDEV_TRACE is not set - -# -# USB Device Class Driver Options -# -# CONFIG_USBDEV_COMPOSITE is not set -# CONFIG_PL2303 is not set -CONFIG_CDCACM=y -# CONFIG_CDCACM_CONSOLE is not set -CONFIG_CDCACM_EP0MAXPACKET=64 -CONFIG_CDCACM_EPINTIN=1 -CONFIG_CDCACM_EPINTIN_FSSIZE=64 -CONFIG_CDCACM_EPINTIN_HSSIZE=64 -CONFIG_CDCACM_EPBULKOUT=3 -CONFIG_CDCACM_EPBULKOUT_FSSIZE=64 -CONFIG_CDCACM_EPBULKOUT_HSSIZE=512 -CONFIG_CDCACM_EPBULKIN=2 -CONFIG_CDCACM_EPBULKIN_FSSIZE=64 -CONFIG_CDCACM_EPBULKIN_HSSIZE=512 -CONFIG_CDCACM_NRDREQS=4 -CONFIG_CDCACM_NWRREQS=4 -CONFIG_CDCACM_BULKIN_REQLEN=96 -CONFIG_CDCACM_RXBUFSIZE=600 -CONFIG_CDCACM_TXBUFSIZE=2000 -CONFIG_CDCACM_VENDORID=0x26ac -CONFIG_CDCACM_PRODUCTID=0x0011 -CONFIG_CDCACM_VENDORSTR="3D Robotics" -CONFIG_CDCACM_PRODUCTSTR="PX4 FMU v2.x" -# CONFIG_USBMSC is not set -# CONFIG_USBHOST is not set -# CONFIG_USBMISC is not set -# CONFIG_HAVE_USBTRACE is not set -# CONFIG_DRIVERS_WIRELESS is not set -# CONFIG_DRIVERS_CONTACTLESS is not set - -# -# System Logging -# -# CONFIG_ARCH_SYSLOG is not set -CONFIG_SYSLOG_WRITE=y -# CONFIG_RAMLOG is not set -# CONFIG_SYSLOG_BUFFER is not set -# CONFIG_SYSLOG_INTBUFFER is not set -# CONFIG_SYSLOG_TIMESTAMP is not set -CONFIG_SYSLOG_SERIAL_CONSOLE=y -# CONFIG_SYSLOG_CHAR is not set -CONFIG_SYSLOG_CONSOLE=y -# CONFIG_SYSLOG_NONE is not set -# CONFIG_SYSLOG_FILE is not set -# CONFIG_SYSLOG_CHARDEV is not set - -# -# Networking Support -# -# CONFIG_ARCH_HAVE_NET is not set -# CONFIG_ARCH_HAVE_PHY is not set -# CONFIG_NET is not set - -# -# Crypto API -# -# CONFIG_CRYPTO is not set - -# -# File Systems -# - -# -# File system configuration -# -# CONFIG_DISABLE_MOUNTPOINT is not set -# CONFIG_FS_AUTOMOUNTER is not set -# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set -# CONFIG_PSEUDOFS_SOFTLINKS is not set -CONFIG_FS_READABLE=y -CONFIG_FS_WRITABLE=y -# CONFIG_FS_AIO is not set -# CONFIG_FS_NAMED_SEMAPHORES is not set -CONFIG_FS_MQUEUE_MPATH="/var/mqueue" -# CONFIG_FS_RAMMAP is not set -CONFIG_FS_FAT=y -CONFIG_FAT_LCNAMES=y -CONFIG_FAT_LFN=y -CONFIG_FAT_MAXFNAME=32 -CONFIG_FS_FATTIME=y -# CONFIG_FAT_FORCE_INDIRECT is not set -CONFIG_FAT_DMAMEMORY=y -CONFIG_FAT_DIRECT_RETRY=y -# CONFIG_FS_NXFFS is not set -CONFIG_FS_ROMFS=y -# CONFIG_FS_TMPFS is not set -# CONFIG_FS_SMARTFS is not set -CONFIG_FS_BINFS=y -CONFIG_FS_PROCFS=y -CONFIG_FS_PROCFS_REGISTER=y - -# -# Exclude individual procfs entries -# -# CONFIG_FS_PROCFS_EXCLUDE_PROCESS is not set -# CONFIG_FS_PROCFS_EXCLUDE_UPTIME is not set -# CONFIG_FS_PROCFS_EXCLUDE_MOUNTS is not set -# CONFIG_FS_PROCFS_EXCLUDE_MTD is not set -# CONFIG_FS_PROCFS_EXCLUDE_PARTITIONS is not set -# CONFIG_FS_UNIONFS is not set - -# -# Graphics Support -# -# CONFIG_NX is not set - -# -# Memory Management -# -# CONFIG_MM_SMALL is not set -CONFIG_MM_REGIONS=2 -# CONFIG_ARCH_HAVE_HEAP2 is not set -CONFIG_GRAN=y -# CONFIG_GRAN_SINGLE is not set -CONFIG_GRAN_INTR=y - -# -# Common I/O Buffer Support -# -# CONFIG_MM_IOB is not set - -# -# Audio Support -# -# CONFIG_AUDIO is not set - -# -# Wireless Support -# -# CONFIG_WIRELESS is not set - -# -# Binary Loader -# -# CONFIG_BINFMT_DISABLE is not set -# CONFIG_BINFMT_EXEPATH is not set -# CONFIG_NXFLAT is not set -# CONFIG_ELF is not set -CONFIG_BUILTIN=y -# CONFIG_PIC is not set -# CONFIG_SYMTAB_ORDEREDBYNAME is not set - -# -# Library Routines -# - -# -# Standard C Library Options -# - -# -# Standard C I/O -# -# CONFIG_STDIO_DISABLE_BUFFERING is not set -CONFIG_STDIO_BUFFER_SIZE=32 -CONFIG_STDIO_LINEBUFFER=y -CONFIG_NUNGET_CHARS=2 -# CONFIG_NOPRINTF_FIELDWIDTH is not set -CONFIG_LIBC_FLOATINGPOINT=y -CONFIG_LIBC_LONG_LONG=y -# CONFIG_LIBC_SCANSET is not set -# CONFIG_EOL_IS_CR is not set -# CONFIG_EOL_IS_LF is not set -# CONFIG_EOL_IS_BOTH_CRLF is not set -CONFIG_EOL_IS_EITHER_CRLF=y - -# -# Architecture-Specific Support -# -CONFIG_ARCH_LOWPUTC=y -# CONFIG_ARCH_ROMGETC is not set -CONFIG_LIBC_ARCH_MEMCPY=y -# CONFIG_LIBC_ARCH_MEMCMP is not set -# CONFIG_LIBC_ARCH_MEMMOVE is not set -# CONFIG_LIBC_ARCH_MEMSET is not set -# CONFIG_LIBC_ARCH_STRCHR is not set -# CONFIG_LIBC_ARCH_STRCMP is not set -# CONFIG_LIBC_ARCH_STRCPY is not set -# CONFIG_LIBC_ARCH_STRNCPY is not set -# CONFIG_LIBC_ARCH_STRLEN is not set -# CONFIG_LIBC_ARCH_STRNLEN is not set -# CONFIG_LIBC_ARCH_ELF is not set -CONFIG_ARMV7M_MEMCPY=y - -# -# stdlib Options -# -CONFIG_LIB_RAND_ORDER=1 -CONFIG_LIB_HOMEDIR="/" -CONFIG_LIBC_TMPDIR="/tmp" -CONFIG_LIBC_MAX_TMPFILE=32 - -# -# Program Execution Options -# -# CONFIG_LIBC_EXECFUNCS is not set -CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024 -CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048 - -# -# errno Decode Support -# -CONFIG_LIBC_STRERROR=y -# CONFIG_LIBC_STRERROR_SHORT is not set -# CONFIG_LIBC_PERROR_STDOUT is not set - -# -# memcpy/memset Options -# -CONFIG_MEMSET_OPTSPEED=y -CONFIG_MEMSET_64BIT=y -# CONFIG_LIBC_DLLFCN is not set -# CONFIG_LIBC_MODLIB is not set -# CONFIG_LIBC_WCHAR is not set -# CONFIG_LIBC_LOCALE is not set - -# -# Time/Time Zone Support -# -# CONFIG_LIBC_LOCALTIME is not set -CONFIG_TIME_EXTENDED=y -CONFIG_ARCH_HAVE_TLS=y - -# -# Thread Local Storage (TLS) -# -# CONFIG_TLS is not set - -# -# Network-Related Options -# -# CONFIG_LIBC_IPv4_ADDRCONV is not set -# CONFIG_LIBC_IPv6_ADDRCONV is not set -# CONFIG_LIBC_NETDB is not set - -# -# NETDB Support -# -# CONFIG_NETDB_HOSTFILE is not set -# CONFIG_LIBC_IOCTL_VARIADIC is not set -CONFIG_LIB_SENDFILE_BUFSIZE=512 - -# -# Non-standard Library Support -# -# CONFIG_LIB_CRC64_FAST is not set -# CONFIG_LIB_KBDCODEC is not set -# CONFIG_LIB_SLCDCODEC is not set -# CONFIG_LIB_HEX2BIN is not set - -# -# Basic CXX Support -# -CONFIG_C99_BOOL8=y -CONFIG_HAVE_CXX=y -# CONFIG_CXX_NEWLONG is not set - -# -# LLVM C++ Library (libcxx) -# -# CONFIG_LIBCXX is not set - -# -# uClibc++ Standard C++ Library -# -# CONFIG_UCLIBCXX is not set - -# -# Application Configuration -# - -# -# Built-In Applications -# -CONFIG_BUILTIN_PROXY_STACKSIZE=1024 - -# -# CAN Utilities -# -# CONFIG_CANUTILS_LIBUAVCAN is not set - -# -# Examples -# -# CONFIG_EXAMPLES_CCTYPE is not set -# CONFIG_EXAMPLES_CHAT is not set -# CONFIG_EXAMPLES_CONFIGDATA is not set -# CONFIG_EXAMPLES_CPUHOG is not set -# CONFIG_EXAMPLES_CXXTEST is not set -# CONFIG_EXAMPLES_DHCPD is not set -# CONFIG_EXAMPLES_ELF is not set -# CONFIG_EXAMPLES_FSTEST is not set -# CONFIG_EXAMPLES_FTPC is not set -# CONFIG_EXAMPLES_FTPD is not set -# CONFIG_EXAMPLES_HELLO is not set -# CONFIG_EXAMPLES_HELLOXX is not set -# CONFIG_EXAMPLES_HIDKBD is not set -# CONFIG_EXAMPLES_IGMP is not set -# CONFIG_EXAMPLES_JSON is not set -# CONFIG_EXAMPLES_MEDIA is not set -# CONFIG_EXAMPLES_MM is not set -# CONFIG_EXAMPLES_MODBUS is not set -CONFIG_EXAMPLES_MOUNT=y -# CONFIG_EXAMPLES_MOUNT_BLOCKDEVICE is not set -CONFIG_EXAMPLES_MOUNT_NSECTORS=2048 -CONFIG_EXAMPLES_MOUNT_SECTORSIZE=512 -CONFIG_EXAMPLES_MOUNT_RAMDEVNO=0 -# CONFIG_EXAMPLES_MTDPART is not set -CONFIG_EXAMPLES_NSH=y -# CONFIG_EXAMPLES_NSH_CXXINITIALIZE is not set -# CONFIG_EXAMPLES_NULL is not set -# CONFIG_EXAMPLES_NXFFS is not set -# CONFIG_EXAMPLES_NXHELLO is not set -# CONFIG_EXAMPLES_NXIMAGE is not set -# CONFIG_EXAMPLES_NX is not set -# CONFIG_EXAMPLES_NXLINES is not set -# CONFIG_EXAMPLES_NXTERM is not set -# CONFIG_EXAMPLES_NXTEXT is not set -# CONFIG_EXAMPLES_OSTEST is not set -# CONFIG_EXAMPLES_PCA9635 is not set -# CONFIG_EXAMPLES_PIPE is not set -# CONFIG_EXAMPLES_POSIXSPAWN is not set -# CONFIG_EXAMPLES_POWERMONITOR is not set -# CONFIG_EXAMPLES_PPPD is not set -# CONFIG_EXAMPLES_RFID_READUID is not set -# CONFIG_EXAMPLES_RGBLED is not set -# CONFIG_EXAMPLES_ROMFS is not set -# CONFIG_EXAMPLES_SENDMAIL is not set -# CONFIG_EXAMPLES_SERIALBLASTER is not set -# CONFIG_EXAMPLES_SERIALRX is not set -# CONFIG_EXAMPLES_SERLOOP is not set -# CONFIG_EXAMPLES_SLCD is not set -# CONFIG_EXAMPLES_SMART is not set -# CONFIG_EXAMPLES_SMART_TEST is not set -# CONFIG_EXAMPLES_SMP is not set -# CONFIG_EXAMPLES_STAT is not set -# CONFIG_EXAMPLES_TCPECHO is not set -# CONFIG_EXAMPLES_THTTPD is not set -# CONFIG_EXAMPLES_TIFF is not set -# CONFIG_EXAMPLES_TOUCHSCREEN is not set -# CONFIG_EXAMPLES_UNIONFS is not set -# CONFIG_EXAMPLES_USBSERIAL is not set -# CONFIG_EXAMPLES_WATCHDOG is not set -# CONFIG_EXAMPLES_WEBSERVER is not set -# CONFIG_EXAMPLES_XBC_TEST is not set - -# -# File System Utilities -# -# CONFIG_FSUTILS_FLASH_ERASEALL is not set -# CONFIG_FSUTILS_INIFILE is not set -# CONFIG_FSUTILS_PASSWD is not set - -# -# GPS Utilities -# -# CONFIG_GPSUTILS_MINMEA_LIB is not set - -# -# Graphics Support -# -# CONFIG_TIFF is not set -# CONFIG_GRAPHICS_TRAVELER is not set - -# -# Interpreters -# -# CONFIG_INTERPRETERS_BAS is not set -# CONFIG_INTERPRETERS_FICL is not set -# CONFIG_INTERPRETERS_MICROPYTHON is not set -# CONFIG_INTERPRETERS_MINIBASIC is not set -# CONFIG_INTERPRETERS_PCODE is not set - -# -# FreeModBus -# -# CONFIG_MODBUS is not set - -# -# Network Utilities -# -# CONFIG_NETUTILS_CHAT is not set -# CONFIG_NETUTILS_CODECS is not set -# CONFIG_NETUTILS_ESP8266 is not set -# CONFIG_NETUTILS_FTPC is not set -# CONFIG_NETUTILS_JSON is not set -# CONFIG_NETUTILS_SMTP is not set -# CONFIG_NETUTILS_THTTPD is not set - -# -# NSH Library -# -CONFIG_NSH_LIBRARY=y -# CONFIG_NSH_MOTD is not set - -# -# Command Line Configuration -# -CONFIG_NSH_READLINE=y -# CONFIG_NSH_CLE is not set -CONFIG_NSH_LINELEN=128 -# CONFIG_NSH_DISABLE_SEMICOLON is not set -CONFIG_NSH_CMDPARMS=y -CONFIG_NSH_MAXARGUMENTS=12 -CONFIG_NSH_ARGCAT=y -CONFIG_NSH_NESTDEPTH=8 -# CONFIG_NSH_DISABLEBG is not set -CONFIG_NSH_BUILTIN_APPS=y - -# -# Disable Individual commands -# -CONFIG_NSH_DISABLE_BASENAME=y -# CONFIG_NSH_DISABLE_CAT is not set -# CONFIG_NSH_DISABLE_CD is not set -# CONFIG_NSH_DISABLE_CP is not set -CONFIG_NSH_DISABLE_CMP=y -# CONFIG_NSH_DISABLE_DATE is not set -CONFIG_NSH_DISABLE_DD=y -# CONFIG_NSH_DISABLE_DF is not set -CONFIG_NSH_DISABLE_DIRNAME=y -# CONFIG_NSH_DISABLE_ECHO is not set -# CONFIG_NSH_DISABLE_EXEC is not set -# CONFIG_NSH_DISABLE_EXIT is not set -# CONFIG_NSH_DISABLE_FREE is not set -# CONFIG_NSH_DISABLE_GET is not set -# CONFIG_NSH_DISABLE_HELP is not set -CONFIG_NSH_DISABLE_HEXDUMP=y -CONFIG_NSH_DISABLE_IFCONFIG=y -CONFIG_NSH_DISABLE_IFUPDOWN=y -# CONFIG_NSH_DISABLE_KILL is not set -CONFIG_NSH_DISABLE_LOSETUP=y -CONFIG_NSH_DISABLE_LOSMART=y -# CONFIG_NSH_DISABLE_LS is not set -CONFIG_NSH_DISABLE_MB=y -# CONFIG_NSH_DISABLE_MKDIR is not set -# CONFIG_NSH_DISABLE_MKFATFS is not set -CONFIG_NSH_DISABLE_MKFIFO=y -CONFIG_NSH_DISABLE_MKRD=y -CONFIG_NSH_DISABLE_MH=y -# CONFIG_NSH_DISABLE_MOUNT is not set -# CONFIG_NSH_DISABLE_MV is not set -# CONFIG_NSH_DISABLE_MW is not set -CONFIG_NSH_DISABLE_PRINTF=y -# CONFIG_NSH_DISABLE_PS is not set -CONFIG_NSH_DISABLE_PSSTACKUSAGE=y -CONFIG_NSH_DISABLE_PUT=y -# CONFIG_NSH_DISABLE_PWD is not set -CONFIG_NSH_DISABLE_REBOOT=y -# CONFIG_NSH_DISABLE_RM is not set -# CONFIG_NSH_DISABLE_RMDIR is not set -# CONFIG_NSH_DISABLE_SET is not set -# CONFIG_NSH_DISABLE_SH is not set -CONFIG_NSH_DISABLE_SHUTDOWN=y -# CONFIG_NSH_DISABLE_SLEEP is not set -# CONFIG_NSH_DISABLE_TIME is not set -# CONFIG_NSH_DISABLE_TEST is not set -CONFIG_NSH_DISABLE_TELNETD=y -# CONFIG_NSH_DISABLE_UMOUNT is not set -CONFIG_NSH_DISABLE_UNAME=y -# CONFIG_NSH_DISABLE_UNSET is not set -# CONFIG_NSH_DISABLE_USLEEP is not set -CONFIG_NSH_DISABLE_WGET=y -CONFIG_NSH_DISABLE_XD=y -CONFIG_NSH_MMCSDMINOR=0 -CONFIG_NSH_MMCSDSLOTNO=0 - -# -# Configure Command Options -# -# CONFIG_NSH_CMDOPT_DF_H is not set -CONFIG_NSH_CODECS_BUFSIZE=128 -CONFIG_NSH_PROC_MOUNTPOINT="/proc" -CONFIG_NSH_FILEIOSIZE=512 -CONFIG_NSH_STRERROR=y - -# -# Scripting Support -# -# CONFIG_NSH_DISABLESCRIPT is not set -# CONFIG_NSH_DISABLE_ITEF is not set -# CONFIG_NSH_DISABLE_LOOPS is not set -CONFIG_NSH_ROMFSETC=y -# CONFIG_NSH_ROMFSRC is not set -CONFIG_NSH_ROMFSMOUNTPT="/etc" -CONFIG_NSH_INITSCRIPT="init.d/rcS" -CONFIG_NSH_ROMFSDEVNO=0 -CONFIG_NSH_ROMFSSECTSIZE=128 -# CONFIG_NSH_DEFAULTROMFS is not set -CONFIG_NSH_ARCHROMFS=y -# CONFIG_NSH_CUSTOMROMFS is not set -CONFIG_NSH_FATDEVNO=1 -CONFIG_NSH_FATSECTSIZE=512 -CONFIG_NSH_FATNSECTORS=1024 -CONFIG_NSH_FATMOUNTPT="/tmp" - -# -# Console Configuration -# -CONFIG_NSH_CONSOLE=y -# CONFIG_NSH_USBCONSOLE is not set -# CONFIG_NSH_ALTCONDEV is not set -CONFIG_NSH_ARCHINIT=y -# CONFIG_NSH_LOGIN is not set -# CONFIG_NSH_CONSOLE_LOGIN is not set - -# -# NxWidgets/NxWM -# - -# -# Platform-specific Support -# -# CONFIG_PLATFORM_CONFIGDATA is not set -CONFIG_HAVE_CXXINITIALIZE=y - -# -# System Libraries and NSH Add-Ons -# -CONFIG_SYSTEM_CDCACM=y -CONFIG_SYSTEM_CDCACM_DEVMINOR=0 -# CONFIG_SYSTEM_CLE is not set -CONFIG_SYSTEM_CUTERM=y -CONFIG_SYSTEM_CUTERM_DEFAULT_DEVICE="/dev/ttyS0" -CONFIG_SYSTEM_CUTERM_DEFAULT_BAUD=57600 -CONFIG_SYSTEM_CUTERM_STACKSIZE=2048 -CONFIG_SYSTEM_CUTERM_PRIORITY=100 -# CONFIG_SYSTEM_FLASH_ERASEALL is not set -# CONFIG_SYSTEM_FREE is not set -# CONFIG_SYSTEM_HEX2BIN is not set -# CONFIG_SYSTEM_HEXED is not set -# CONFIG_SYSTEM_I2CTOOL is not set -# CONFIG_SYSTEM_INSTALL is not set -# CONFIG_SYSTEM_RAMTEST is not set -CONFIG_READLINE_HAVE_EXTMATCH=y -CONFIG_SYSTEM_READLINE=y -CONFIG_READLINE_ECHO=y -# CONFIG_READLINE_TABCOMPLETION is not set -# CONFIG_READLINE_CMD_HISTORY is not set -# CONFIG_SYSTEM_STACKMONITOR is not set -# CONFIG_SYSTEM_SUDOKU is not set -# CONFIG_SYSTEM_SYSTEM is not set -# CONFIG_SYSTEM_TEE is not set -# CONFIG_SYSTEM_UBLOXMODEM is not set -# CONFIG_SYSTEM_VI is not set -# CONFIG_SYSTEM_ZMODEM is not set - -# -# Wireless Libraries and NSH Add-Ons -# - -# -# IEEE 802.15.4 applications -# -# CONFIG_IEEE802154_LIBMAC is not set -# CONFIG_IEEE802154_LIBUTILS is not set -# CONFIG_IEEE802154_I8SAK is not set diff --git a/nuttx-configs/px4fmu-v3/src/Makefile b/nuttx-configs/px4fmu-v3/src/Makefile deleted file mode 100644 index f29cfe594a..0000000000 --- a/nuttx-configs/px4fmu-v3/src/Makefile +++ /dev/null @@ -1,86 +0,0 @@ -############################################################################ -# -# Copyright (C) 2011 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name NuttX nor the names of its contributors may be -# used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################ - --include $(TOPDIR)/Make.defs - -CFLAGS += -I$(TOPDIR)/sched - -ASRCS = -AOBJS = $(ASRCS:.S=$(OBJEXT)) - -CSRCS = empty.c -COBJS = $(CSRCS:.c=$(OBJEXT)) - -SRCS = $(ASRCS) $(CSRCS) -OBJS = $(AOBJS) $(COBJS) - -ARCH_SRCDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src -ifeq ($(WINTOOL),y) - CFLAGS += -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \ - -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \ - -I "${shell cygpath -w $(ARCH_SRCDIR)/armv7-m}" -else - CFLAGS += -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/armv7-m -endif - -all: libboard$(LIBEXT) - -$(AOBJS): %$(OBJEXT): %.S - $(call ASSEMBLE, $<, $@) - -$(COBJS) $(LINKOBJS): %$(OBJEXT): %.c - $(call COMPILE, $<, $@) - -libboard$(LIBEXT): $(OBJS) - $(call ARCHIVE, $@, $(OBJS)) - -.depend: Makefile $(SRCS) - $(Q) $(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep - $(Q) touch $@ - -depend: .depend - -clean: - $(call DELFILE, libboard$(LIBEXT)) - $(call CLEAN) - -distclean: clean - $(call DELFILE, Make.dep) - $(call DELFILE, .depend) - -ifneq ($(BOARD_CONTEXT),y) -context: -endif - --include Make.dep diff --git a/nuttx-configs/px4fmu-v3/src/empty.c b/nuttx-configs/px4fmu-v3/src/empty.c deleted file mode 100644 index 5de10699fb..0000000000 --- a/nuttx-configs/px4fmu-v3/src/empty.c +++ /dev/null @@ -1,4 +0,0 @@ -/* - * There are no source files here, but libboard.a can't be empty, so - * we have this empty source file to keep it company. - */ diff --git a/src/drivers/boards/px4fmu-v2/CMakeLists.txt b/src/drivers/boards/px4fmu-v2/CMakeLists.txt index ce2592f35c..d8427800c6 100644 --- a/src/drivers/boards/px4fmu-v2/CMakeLists.txt +++ b/src/drivers/boards/px4fmu-v2/CMakeLists.txt @@ -34,6 +34,7 @@ px4_add_module( MODULE drivers__boards__px4fmu-v2 SRCS px4fmu_can.c + px4fmu_i2c.c px4fmu_init.c px4fmu_led.c px4fmu_spi.c diff --git a/src/drivers/boards/px4fmu-v2/board_config.h b/src/drivers/boards/px4fmu-v2/board_config.h index e7b8e29746..baa676ab66 100644 --- a/src/drivers/boards/px4fmu-v2/board_config.h +++ b/src/drivers/boards/px4fmu-v2/board_config.h @@ -47,6 +47,17 @@ #include #include +/* Run time Hardware detection */ +#define BOARD_HAS_SIMPLE_HW_VERSIONING 1 +#define HW_VER_PB4 (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN4) +#define HW_VER_PB12 (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN12) +#define HW_VER_PB4_INIT (GPIO_SPI1_EXTI_DRDY_PB4) +#define HW_VER_PB12_INIT (GPIO_INPUT|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN12) +#define HW_VER_FMUV2_STATE 0x8 /* PB12:PU:1 PB12:PD:0 PB4:PU:0 PB4PD:0 */ +#define HW_VER_FMUV3_STATE 0xE /* PB12:PU:1 PB12:PD:1 PB4:PU:1 PB4PD:0 */ +#define HW_VER_FMUV2MINI_STATE 0xA /* PB12:PU:1 PB12:PD:0 PB4:PU:1 PB4PD:0 */ +#define HW_VER_TYPE_INIT {'V','2',0, 0} + /**************************************************************************************************** * Definitions ****************************************************************************************************/ @@ -217,6 +228,135 @@ #define PX4_I2C_OBDEV_HMC5883 0x1e #define PX4_I2C_OBDEV_LIS3MDL 0x1e +/*----------------------------------------------------------*/ +/* FMUv3 Cube SPI chip selects and DRDY */ +/*----------------------------------------------------------*/ +/* Due to inconsistent use of chip select and dry signal on + * different board that use this build. We are defining the GPIO + * inclusive of the SPI port and GPIO to help identify pins the + * are part of the sensor Net's controlled by different power + * domains. + * + * --------------- SPI1 -------------------- SPI4 -------------- Incompatibilities --------- + * FMUv3 Cube: FmuV2 PixhawkMini + * Power Domain: VDD_3V3_SENSORS_EN NA V3V:SPI V5:SPI4 V3V:SPI1 No SPI4 + * PA5 SPI_INT_SCK + * PA6 SPI_INT_MISO + * PA7 SPI_INT_MOSI + * PB0 EXTERN_DRDY SPI1:GYRO_DRDY NC + * PB1 MAG_DRDY nEXTERN_CS -SPI1:MAG_DRDY NC + * PB4 NC SPI1:ACCEL_DRDY NC + * PC1 SPI_INT_MAG_!CS -ADC1_IN11 NC + * PC2 nMPU_CS @MPU6000 @MPU9250 + * PC13 nGYRO_EXT_CS SPI1:nGYRO_CS NC + * PC14 nBARO_EXT_CS GPIO_EXT_1 -20608_DRDY + * PC15 nACCEL_MAG_EXT_CS SPI1:nACCEL_MAG_CS 20608_CS + * PD7 nBARO_CS + * PD15 nMPU_DRDY @MPU6000 @MPU9250 + * PE2 SPI_EXT_SCK NC + * PE4 MPU_EXT_CS SPI4:nSPI_EXT_NSS NC + * PE5 SPI_EXT_MISO NC + * PE6 SPI_EXT_MOSI NC + * + * + * Notes: Prefixed with @ Does not effect board control + * Prefixed with + Input used as Output + * Prefixed with - Output used as Input + * Prefixed with SPIn: Bus changed + * + */ + +/* FMUv3 Cube SPI1 chip selects */ +/* Was a spare ACD IN10 on V2 */ +#define GPIO_SPI1_CS_PC1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN1) +#define GPIO_SPI4_CS_PB1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN1) +#define GPIO_SPI4_CS_PC13 GPIO_SPI1_CS_PC13 +#define GPIO_SPI4_CS_PC14 GPIO_SPI4_GPIO_PC14 +#define GPIO_SPI4_CS_PC15 GPIO_SPI1_CS_PC15 + +/* FMUv3 Cube chip selects Assignments */ +/* Cube 2.0 V2.1 */ +#define GPIO_SPI1_CS_MPU GPIO_SPI1_CS_PC2 /* MPU600 MPU9250 */ +#define GPIO_SPI1_CS_BARO GPIO_SPI1_CS_PD7 /* MS5611 MS5611 */ +#define GPIO_SPI1_CS_HMC GPIO_SPI1_CS_PC1 /* HMC5983 Removed */ + +/* N.B. bus moves from SPI1 to SPI4 */ +#define GPIO_SPI4_GYRO_EXT_CS GPIO_SPI4_CS_PC13 +#define GPIO_SPI4_BARO_EXT_CS GPIO_SPI4_CS_PC14 +#define GPIO_SPI4_ACCEL_MAG_EXT_CS GPIO_SPI4_CS_PC15 + +/* No move */ +#define GPIO_SPI4_MPU_EXT_CS GPIO_SPI4_NSS_PE4 + +/* FMUv3 DRDY Assignments */ +#define GPIO_SPI4_EXTI_DRDY_PB0 GPIO_SPI1_EXTI_DRDY_PB0 +#define GPIO_SPI4_EXTI_EXTERN_DRDY GPIO_SPI4_EXTI_DRDY_PB0 +#define GPIO_SPI4_EXTERN_CS GPIO_SPI4_CS_PB1 +/* PB1 is an External CS on V3 */ + +#define PX4_SPIDEV_HMC 5 + +/*----------------------------------------------------------*/ +/* End FMUv3 Cube SPI chip selects and DRDY */ +/*----------------------------------------------------------*/ +/*----------------------------------------------------------*/ +/* Due to inconsistent use of chip select and dry signal on + * different board that use this build. We are defining the GPIO + * inclusive of the SPI port and GPIO to help identify pins the + * are part of the sensor Net's controlled by different power + * domains. + * + * --------------- SPI1 -------------------- SPI4 -------------- Incompatibilities --------- + * FMUv2 Pixhawk Mini FmuV2 FmuV3 Cube + * Power Domain: VDD_3V3_SENSORS_EN NA V3V:SPI V5:SPI4 V3V:SPI1&SPI4 + * PA5 SPI_INT_SCK + * PA6 SPI_INT_MISO + * PA7 SPI_INT_MOSI + * PB0 NC SPI1:GYRO_DRDY SPI4:EXTERN_DRDY + * PB1 NC -SPI1:MAG_DRDY +SPI4:nEXTERN_CS + * PB4 NC SPI1:ACCEL_DRDY NC + * PC1 Spare ADC ( NC ) +SPI1:SPI_INT_MAG_!CS + * PC2 nMPU_CS @MPU6000 @MPU6000|MPU9250 + * PC13 NC SPI1:nGYRO_CS SPI4:nGYRO_EXT_CS + * PC14 20608_DRDY +GPIO_EXT_1 nBARO_EXT_CS + * PC15 20608_CS nACCEL_MAG_CS SPI4:nACCEL_MAG_EXT_CS + * PD7 nBARO_CS + * PD15 nMPU_DRDY @MPU6000 @MPU6000|MPU9250 + * PE2 NC SPI_EXT_SCK SPI_EXT_SCK + * PE4 NC SPI4:nSPI_EXT_NSS SPI4:nMPU_EXT_CS + * PE5 NC SPI_EXT_MISO SPI_EXT_MISO + * PE6 NC SPI_EXT_MOSI SPI_EXT_MOSI + * + * Notes: Prefixed with @ Does not effect board control + * Prefixed with + Input used as Output + * Prefixed with - Output used as Input + * Prefixed with SPIn: Bus changed + * + */ + +/*----------------------------------------------------------*/ +/* FMUv2 PixhawkMini SPI chip selects and DRDY */ +/*----------------------------------------------------------*/ + +/* FMUv2 PixhawkMini SPI1 chip selects */ + +/* FMUv3 Cube chip selects Assignments */ + +#define GPIO_SPI1_CS_MPU GPIO_SPI1_CS_PC2 /* MPU9250 */ +#define GPIO_SPI1_CS_BARO GPIO_SPI1_CS_PD7 /* MS5611 */ +#define GPIO_SPI1_CS_20608 GPIO_SPI1_CS_PC15 /* ICM20608 */ + +/* FMUv3 DRDY Assignments */ + +/* Pixhawk mini has reused the PC14 GPIO_SPI_CS_EXT1 signal that was associated + * with SPI4. + */ +#define GPIO_SPI1_EXTI_20608_DRDY_PC14 (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN14) + +#define PX4_SPIDEV_ICM_20608 6 /* ICM_20608 on PC15 */ + + + /* * ADC channels * diff --git a/src/drivers/boards/px4fmu-v3/px4fmu_i2c.c b/src/drivers/boards/px4fmu-v2/px4fmu_i2c.c similarity index 100% rename from src/drivers/boards/px4fmu-v3/px4fmu_i2c.c rename to src/drivers/boards/px4fmu-v2/px4fmu_i2c.c diff --git a/src/drivers/boards/px4fmu-v2/px4fmu_init.c b/src/drivers/boards/px4fmu-v2/px4fmu_init.c index 9490100774..76bcb73258 100644 --- a/src/drivers/boards/px4fmu-v2/px4fmu_init.c +++ b/src/drivers/boards/px4fmu-v2/px4fmu_init.c @@ -120,16 +120,11 @@ __END_DECLS * Private Data ****************************************************************************/ #if defined(BOARD_HAS_SIMPLE_HW_VERSIONING) -static int hw_version = -1; -static int hw_revision = -1; +static int hw_version = 0; +static int hw_revision = 0; static char hw_type[4] = HW_VER_TYPE_INIT; #endif -/**************************************************************************** - * Protected Functions - ****************************************************************************/ -/**************************************************************************** - * Public Functions - ****************************************************************************/ + /************************************************************************************ * Name: board_peripheral_reset * @@ -229,7 +224,7 @@ __EXPORT void board_on_reset(int status) #if defined(BOARD_HAS_SIMPLE_HW_VERSIONING) static int determin_hw_version(int *version, int *revision) { - *revision = -1; /* unknown */ + *revision = 0; /* default revision */ int rv = 0; int pos = 0; stm32_configgpio(GPIO_PULLDOWN | (HW_VER_PB4 & ~GPIO_PUPD_MASK)); diff --git a/src/drivers/boards/px4fmu-v2/px4fmu_spi.c b/src/drivers/boards/px4fmu-v2/px4fmu_spi.c index 8ad297712f..c9646ca58d 100644 --- a/src/drivers/boards/px4fmu-v2/px4fmu_spi.c +++ b/src/drivers/boards/px4fmu-v2/px4fmu_spi.c @@ -549,3 +549,18 @@ __EXPORT void board_spi_reset(int ms) stm32_spi1_initialize(); } + +__EXPORT bool px4_spi_bus_external(int bus) +{ + if (HW_VER_FMUV3 == board_get_hw_version()) { + /* all FMUv3 2.1 spi buses are internal */ + return false; + + } else { + if (bus == PX4_SPI_BUS_EXT) { + return true; + } + } + + return false; +} diff --git a/src/drivers/boards/px4fmu-v3/CMakeLists.txt b/src/drivers/boards/px4fmu-v3/CMakeLists.txt deleted file mode 100644 index 5eb7676e15..0000000000 --- a/src/drivers/boards/px4fmu-v3/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -############################################################################ -# -# Copyright (c) 2015 PX4 Development Team. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name PX4 nor the names of its contributors may be -# used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################ -px4_add_module( - MODULE drivers__boards__px4fmu-v3 - SRCS - px4fmu_can.c - px4fmu_i2c.c - px4fmu_init.c - px4fmu_led.c - px4fmu_spi.c - px4fmu_timer_config.c - px4fmu_usb.c - DEPENDS - platforms__common - ) diff --git a/src/drivers/boards/px4fmu-v3/board_config.h b/src/drivers/boards/px4fmu-v3/board_config.h deleted file mode 100644 index 7ad19d72e0..0000000000 --- a/src/drivers/boards/px4fmu-v3/board_config.h +++ /dev/null @@ -1,187 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2013-2016 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file board_config.h - * - * PX4FMUv3 internal definitions: identical to fmuv2 except for usable flash - */ - -#pragma once - -/**************************************************************************************************** - * Included Files - ****************************************************************************************************/ - -/* Run time Hardware detection */ -#define BOARD_HAS_SIMPLE_HW_VERSIONING 1 -#define HW_VER_PB4 (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN4) -#define HW_VER_PB12 (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTB|GPIO_PIN12) -#define HW_VER_PB4_INIT (GPIO_SPI1_EXTI_DRDY_PB4) -#define HW_VER_PB12_INIT (GPIO_INPUT|GPIO_FLOAT|GPIO_PORTB|GPIO_PIN12) -#define HW_VER_FMUV2_STATE 0x8 /* PB12:PU:1 PB12:PD:0 PB4:PU:0 PB4PD:0 */ -#define HW_VER_FMUV3_STATE 0xE /* PB12:PU:1 PB12:PD:1 PB4:PU:1 PB4PD:0 */ -#define HW_VER_FMUV2MINI_STATE 0xA /* PB12:PU:1 PB12:PD:0 PB4:PU:1 PB4PD:0 */ -#define HW_VER_TYPE_INIT {'V','2',0, 0} - -/*----------------------------------------------------------*/ -/* FMUv3 Cube SPI chip selects and DRDY */ -/*----------------------------------------------------------*/ -/* Due to inconsistent use of chip select and dry signal on - * different board that use this build. We are defining the GPIO - * inclusive of the SPI port and GPIO to help identify pins the - * are part of the sensor Net's controlled by different power - * domains. - * - * --------------- SPI1 -------------------- SPI4 -------------- Incompatibilities --------- - * FMUv3 Cube: FmuV2 PixhawkMini - * Power Domain: VDD_3V3_SENSORS_EN NA V3V:SPI V5:SPI4 V3V:SPI1 No SPI4 - * PA5 SPI_INT_SCK - * PA6 SPI_INT_MISO - * PA7 SPI_INT_MOSI - * PB0 EXTERN_DRDY SPI1:GYRO_DRDY NC - * PB1 MAG_DRDY nEXTERN_CS -SPI1:MAG_DRDY NC - * PB4 NC SPI1:ACCEL_DRDY NC - * PC1 SPI_INT_MAG_!CS -ADC1_IN11 NC - * PC2 nMPU_CS @MPU6000 @MPU9250 - * PC13 nGYRO_EXT_CS SPI1:nGYRO_CS NC - * PC14 nBARO_EXT_CS GPIO_EXT_1 -20608_DRDY - * PC15 nACCEL_MAG_EXT_CS SPI1:nACCEL_MAG_CS 20608_CS - * PD7 nBARO_CS - * PD15 nMPU_DRDY @MPU6000 @MPU9250 - * PE2 SPI_EXT_SCK NC - * PE4 MPU_EXT_CS SPI4:nSPI_EXT_NSS NC - * PE5 SPI_EXT_MISO NC - * PE6 SPI_EXT_MOSI NC - * - * - * Notes: Prefixed with @ Does not effect board control - * Prefixed with + Input used as Output - * Prefixed with - Output used as Input - * Prefixed with SPIn: Bus changed - * - */ - -/* FMUv3 Cube SPI1 chip selects */ -/* Was a spare ACD IN10 on V2 */ -#define GPIO_SPI1_CS_PC1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTC|GPIO_PIN1) -#define GPIO_SPI4_CS_PB1 (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTB|GPIO_PIN1) -#define GPIO_SPI4_CS_PC13 GPIO_SPI1_CS_PC13 -#define GPIO_SPI4_CS_PC14 GPIO_SPI4_GPIO_PC14 -#define GPIO_SPI4_CS_PC15 GPIO_SPI1_CS_PC15 - -/* FMUv3 Cube chip selects Assignments */ -/* Cube 2.0 V2.1 */ -#define GPIO_SPI1_CS_MPU GPIO_SPI1_CS_PC2 /* MPU600 MPU9250 */ -#define GPIO_SPI1_CS_BARO GPIO_SPI1_CS_PD7 /* MS5611 MS5611 */ -#define GPIO_SPI1_CS_HMC GPIO_SPI1_CS_PC1 /* HMC5983 Removed */ - -/* N.B. bus moves from SPI1 to SPI4 */ -#define GPIO_SPI4_GYRO_EXT_CS GPIO_SPI4_CS_PC13 -#define GPIO_SPI4_BARO_EXT_CS GPIO_SPI4_CS_PC14 -#define GPIO_SPI4_ACCEL_MAG_EXT_CS GPIO_SPI4_CS_PC15 - -/* No move */ -#define GPIO_SPI4_MPU_EXT_CS GPIO_SPI4_NSS_PE4 - -/* FMUv3 DRDY Assignments */ -#define GPIO_SPI4_EXTI_DRDY_PB0 GPIO_SPI1_EXTI_DRDY_PB0 -#define GPIO_SPI4_EXTI_EXTERN_DRDY GPIO_SPI4_EXTI_DRDY_PB0 -#define GPIO_SPI4_EXTERN_CS GPIO_SPI4_CS_PB1 -/* PB1 is an External CS on V3 */ - -#define PX4_SPIDEV_HMC 5 - -/*----------------------------------------------------------*/ -/* End FMUv3 Cube SPI chip selects and DRDY */ -/*----------------------------------------------------------*/ -/*----------------------------------------------------------*/ -/* Due to inconsistent use of chip select and dry signal on - * different board that use this build. We are defining the GPIO - * inclusive of the SPI port and GPIO to help identify pins the - * are part of the sensor Net's controlled by different power - * domains. - * - * --------------- SPI1 -------------------- SPI4 -------------- Incompatibilities --------- - * FMUv2 Pixhawk Mini FmuV2 FmuV3 Cube - * Power Domain: VDD_3V3_SENSORS_EN NA V3V:SPI V5:SPI4 V3V:SPI1&SPI4 - * PA5 SPI_INT_SCK - * PA6 SPI_INT_MISO - * PA7 SPI_INT_MOSI - * PB0 NC SPI1:GYRO_DRDY SPI4:EXTERN_DRDY - * PB1 NC -SPI1:MAG_DRDY +SPI4:nEXTERN_CS - * PB4 NC SPI1:ACCEL_DRDY NC - * PC1 Spare ADC ( NC ) +SPI1:SPI_INT_MAG_!CS - * PC2 nMPU_CS @MPU6000 @MPU6000|MPU9250 - * PC13 NC SPI1:nGYRO_CS SPI4:nGYRO_EXT_CS - * PC14 20608_DRDY +GPIO_EXT_1 nBARO_EXT_CS - * PC15 20608_CS nACCEL_MAG_CS SPI4:nACCEL_MAG_EXT_CS - * PD7 nBARO_CS - * PD15 nMPU_DRDY @MPU6000 @MPU6000|MPU9250 - * PE2 NC SPI_EXT_SCK SPI_EXT_SCK - * PE4 NC SPI4:nSPI_EXT_NSS SPI4:nMPU_EXT_CS - * PE5 NC SPI_EXT_MISO SPI_EXT_MISO - * PE6 NC SPI_EXT_MOSI SPI_EXT_MOSI - * - * Notes: Prefixed with @ Does not effect board control - * Prefixed with + Input used as Output - * Prefixed with - Output used as Input - * Prefixed with SPIn: Bus changed - * - */ - -/*----------------------------------------------------------*/ -/* FMUv2 PixhawkMini SPI chip selects and DRDY */ -/*----------------------------------------------------------*/ - -/* FMUv2 PixhawkMini SPI1 chip selects */ - -/* FMUv3 Cube chip selects Assignments */ - -#define GPIO_SPI1_CS_MPU GPIO_SPI1_CS_PC2 /* MPU9250 */ -#define GPIO_SPI1_CS_BARO GPIO_SPI1_CS_PD7 /* MS5611 */ -#define GPIO_SPI1_CS_20608 GPIO_SPI1_CS_PC15 /* ICM20608 */ - -/* FMUv3 DRDY Assignments */ - -/* Pixhawk mini has reused the PC14 GPIO_SPI_CS_EXT1 signal that was associated - * with SPI4. - */ -#define GPIO_SPI1_EXTI_20608_DRDY_PC14 (GPIO_INPUT|GPIO_FLOAT|GPIO_EXTI|GPIO_PORTC|GPIO_PIN14) - -#define PX4_SPIDEV_ICM_20608 6 /* ICM_20608 on PC15 */ - -/*----------------------------------------------------------*/ -/* FMUv2 PixhawkMini SPI chip selects and DRDY */ -/*----------------------------------------------------------*/ -#include "../px4fmu-v2/board_config.h" diff --git a/src/drivers/boards/px4fmu-v3/px4fmu_can.c b/src/drivers/boards/px4fmu-v3/px4fmu_can.c deleted file mode 100644 index 7234c4eb8d..0000000000 --- a/src/drivers/boards/px4fmu-v3/px4fmu_can.c +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** - * - * Copyright (C) 2012 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file px4fmu_can.c - * - * Board-specific CAN functions. - */ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include - -#include -#include - -#include "chip.h" -#include "up_arch.h" - -#include "stm32.h" -#include "stm32_can.h" -#include "board_config.h" - -#ifdef CONFIG_CAN - -/************************************************************************************ - * Pre-processor Definitions - ************************************************************************************/ -/* Configuration ********************************************************************/ - -#if defined(CONFIG_STM32_CAN1) && defined(CONFIG_STM32_CAN2) -# warning "Both CAN1 and CAN2 are enabled. Assuming only CAN1." -# undef CONFIG_STM32_CAN2 -#endif - -#ifdef CONFIG_STM32_CAN1 -# define CAN_PORT 1 -#else -# define CAN_PORT 2 -#endif - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ -int can_devinit(void); - -/************************************************************************************ - * Name: can_devinit - * - * Description: - * All STM32 architectures must provide the following interface to work with - * examples/can. - * - ************************************************************************************/ - -int can_devinit(void) -{ - static bool initialized = false; - struct can_dev_s *can; - int ret; - - /* Check if we have already initialized */ - - if (!initialized) { - /* Call stm32_caninitialize() to get an instance of the CAN interface */ - - can = stm32_caninitialize(CAN_PORT); - - if (can == NULL) { - canerr("ERROR: Failed to get CAN interface\n"); - return -ENODEV; - } - - /* Register the CAN driver at "/dev/can0" */ - - ret = can_register("/dev/can0", can); - - if (ret < 0) { - canerr("ERROR: can_register failed: %d\n", ret); - return ret; - } - - /* Now we are initialized */ - - initialized = true; - } - - return OK; -} - -#endif diff --git a/src/drivers/boards/px4fmu-v3/px4fmu_init.c b/src/drivers/boards/px4fmu-v3/px4fmu_init.c deleted file mode 100644 index e3de3bbd38..0000000000 --- a/src/drivers/boards/px4fmu-v3/px4fmu_init.c +++ /dev/null @@ -1,676 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2012-2015 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file px4fmu2_init.c - * - * PX4FMUv2-specific early startup code. This file implements the - * board_app_initialize() function that is called early by nsh during startup. - * - * Code here is run before the rcS script is invoked; it should start required - * subsystems and perform board-specific initialization. - */ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include -#include - -#include -#include -#include -#include -#include - -#include "platform/cxxinitialize.h" -#include -#include -#include -#include -#include -#include - -#include -#include "board_config.h" -#include - -#include - -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include - -/**************************************************************************** - * Pre-Processor Definitions - ****************************************************************************/ - -/* Configuration ************************************************************/ - -/* Debug ********************************************************************/ - -#ifdef CONFIG_CPP_HAVE_VARARGS -# ifdef CONFIG_DEBUG -# define message(...) syslog(__VA_ARGS__) -# else -# define message(...) printf(__VA_ARGS__) -# endif -#else -# ifdef CONFIG_DEBUG -# define message syslog -# else -# define message printf -# endif -#endif - -/* - * Ideally we'd be able to get these from up_internal.h, - * but since we want to be able to disable the NuttX use - * of leds for system indication at will and there is no - * separate switch, we need to build independent of the - * CONFIG_ARCH_LEDS configuration switch. - */ -__BEGIN_DECLS -extern void led_init(void); -extern void led_on(int led); -extern void led_off(int led); -__END_DECLS - -/**************************************************************************** - * Private Data - ****************************************************************************/ -static int hw_version = 0; -static int hw_revision = 0; -static char hw_type[4] = HW_VER_TYPE_INIT; - -/************************************************************************************ - * Name: board_peripheral_reset - * - * Description: - * - ************************************************************************************/ -__EXPORT void board_peripheral_reset(int ms) -{ - /* set the peripheral rails off */ - stm32_configgpio(GPIO_VDD_5V_PERIPH_EN); - stm32_gpiowrite(GPIO_VDD_5V_PERIPH_EN, 1); - - /* wait for the peripheral rail to reach GND */ - usleep(ms * 1000); - warnx("reset done, %d ms", ms); - - /* re-enable power */ - - /* switch the peripheral rail back on */ - stm32_gpiowrite(GPIO_VDD_5V_PERIPH_EN, 0); -} - -/************************************************************************************ - * Name: board_on_reset - * - * Description: - * Optionally provided function called on entry to board_system_reset - * It should perform any house keeping prior to the rest. - * - * status - 1 if resetting to boot loader - * 0 if just resetting - * - ************************************************************************************/ - -__EXPORT void board_on_reset(int status) -{ - UNUSED(status); - /* configure the GPIO pins to outputs and keep them low */ - - stm32_configgpio(GPIO_GPIO0_OUTPUT); - stm32_configgpio(GPIO_GPIO1_OUTPUT); - stm32_configgpio(GPIO_GPIO2_OUTPUT); - stm32_configgpio(GPIO_GPIO3_OUTPUT); - stm32_configgpio(GPIO_GPIO4_OUTPUT); - stm32_configgpio(GPIO_GPIO5_OUTPUT); - - /* On resets invoked from system (not boot) insure we establish a low - * output state (discharge the pins) on PWM pins before they become inputs. - * - * We also delay the onset of the that 3.1 Ms pulse as boot. This has - * triggered some ESC to spin. By adding this delay here the reset - * is pushed out > 400 ms. So the ESC PWM input can not mistake - * the 3.1 Ms pulse as a valid PWM command. - * - * fixme:Establish in upstream NuttX an CONFIG_IO_INIT_STATE to - * the initialize the IO lines in the clock config. - * - */ - - if (status >= 0) { - up_mdelay(400); - } -} - -/************************************************************************************ - * Name: determin_hw_version - * - * Description: - * - * This function looks at HW deltas to determine what the - * build is running on using the following criteria: - * - * MSN PB12 FMUv2 Cube MINI - * CAN2_RX CONECTOR MX30521 NC - * PU.PD 1,0 1,1 1,0 - * - * LSN PB4 FMUv2 Cube MINI - * ACCEL_DRDY LSM303D NC NC - * PU.PD 0,0 1,0 1,0 - - * PB12:PB4 - * ud ud - * 10 00 - 0x8 FMUv2 - * 11 10 - 0xE Cube AKA V2.0 - * 10 10 - 0xA PixhawkMini - * - * This will return OK on success and -1 on not supported - * - * hw_type Initial state is {'V','2',0, 0} - * V 2 - FMUv2 - * V 3 0 - FMUv3 2.0 - * V 3 1 - FMUv3 2.1 - not differentiateable, - * V 2 M - FMUv2 Mini - * - ************************************************************************************/ - -static int determin_hw_version(int *version, int *revision) -{ - *revision = 0; /* default revision */ - int rv = 0; - int pos = 0; - stm32_configgpio(GPIO_PULLDOWN | (HW_VER_PB4 & ~GPIO_PUPD_MASK)); - up_udelay(10); - rv |= stm32_gpioread(HW_VER_PB4) << pos++; - stm32_configgpio(HW_VER_PB4); - up_udelay(10); - rv |= stm32_gpioread(HW_VER_PB4) << pos++; - - int votes = 16; - int ones[2] = {0, 0}; - int zeros[2] = {0, 0}; - - while (votes--) { - stm32_configgpio(GPIO_PULLDOWN | (HW_VER_PB12 & ~GPIO_PUPD_MASK)); - up_udelay(10); - stm32_gpioread(HW_VER_PB12) ? ones[0]++ : zeros[0]++; - stm32_configgpio(HW_VER_PB12); - up_udelay(10); - stm32_gpioread(HW_VER_PB12) ? ones[1]++ : zeros[1]++; - } - - if (ones[0] > zeros[0]) { - rv |= 1 << pos; - } - - pos++; - - if (ones[1] > zeros[1]) { - rv |= 1 << pos; - } - - stm32_configgpio(HW_VER_PB4_INIT); - stm32_configgpio(HW_VER_PB12_INIT); - *version = rv; - return OK; -} - -/************************************************************************************ - * Name: board_get_hw_type_name - * - * Description: - * Optional returns a string defining the HW type - * - * - ************************************************************************************/ - -__EXPORT const char *board_get_hw_type_name() -{ - return (const char *) hw_type; -} - -/************************************************************************************ - * Name: board_get_hw_version - * - * Description: - * Optional returns a integer HW version - * - * - ************************************************************************************/ - -__EXPORT int board_get_hw_version() -{ - return HW_VER_SIMPLE(hw_version); -} - -/************************************************************************************ - * Name: board_get_hw_revision - * - * Description: - * Optional returns a integer HW revision - * - * - ************************************************************************************/ - -__EXPORT int board_get_hw_revision() -{ - return hw_revision; -} - -/************************************************************************************ - * Name: stm32_boardinitialize - * - * Description: - * All STM32 architectures must provide the following entry point. This entry point - * is called early in the intitialization -- after all memory has been configured - * and mapped but before any devices have been initialized. - * - ************************************************************************************/ - -__EXPORT void -stm32_boardinitialize(void) -{ - board_on_reset(-1); - - /* configure LEDs */ - board_autoled_initialize(); - - /* Start with the Sensor voltage off */ - - stm32_configgpio(GPIO_VDD_3V3_SENSORS_EN); - - /* configure ADC pins */ - - stm32_configgpio(GPIO_ADC1_IN2); /* BATT_VOLTAGE_SENS */ - stm32_configgpio(GPIO_ADC1_IN3); /* BATT_CURRENT_SENS */ - stm32_configgpio(GPIO_ADC1_IN4); /* VDD_5V_SENS */ - stm32_configgpio(GPIO_ADC1_IN13); /* FMU_AUX_ADC_1 */ - stm32_configgpio(GPIO_ADC1_IN14); /* FMU_AUX_ADC_2 */ - stm32_configgpio(GPIO_ADC1_IN15); /* PRESSURE_SENS */ - - /* configure power supply control/sense pins */ - stm32_configgpio(GPIO_VDD_5V_PERIPH_EN); - stm32_configgpio(GPIO_VDD_BRICK_VALID); - stm32_configgpio(GPIO_VDD_SERVO_VALID); - stm32_configgpio(GPIO_VDD_USB_VALID); - stm32_configgpio(GPIO_VDD_5V_HIPOWER_OC); - stm32_configgpio(GPIO_VDD_5V_PERIPH_OC); - - - /* configure SPI interfaces is deferred to board_app_initialize - * to delay the sensor power up with out adding a delay - */ - -} - -/**************************************************************************** - * Name: board_app_initialize - * - * Description: - * Perform application specific initialization. This function is never - * called directly from application code, but only indirectly via the - * (non-standard) boardctl() interface using the command BOARDIOC_INIT. - * - * Input Parameters: - * arg - The boardctl() argument is passed to the board_app_initialize() - * implementation without modification. The argument has no - * meaning to NuttX; the meaning of the argument is a contract - * between the board-specific initalization logic and the the - * matching application logic. The value cold be such things as a - * mode enumeration value, a set of DIP switch switch settings, a - * pointer to configuration data read from a file or serial FLASH, - * or whatever you would like to do with it. Every implementation - * should accept zero/NULL as a default configuration. - * - * Returned Value: - * Zero (OK) is returned on success; a negated errno value is returned on - * any failure to indicate the nature of the failure. - * - ****************************************************************************/ - -static struct spi_dev_s *spi1; -static struct spi_dev_s *spi2; -static struct spi_dev_s *spi4; -static struct sdio_dev_s *sdio; - -__EXPORT int board_app_initialize(uintptr_t arg) -{ - -#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE) - - /* run C++ ctors before we go any further */ - - up_cxxinitialize(); - -# if defined(CONFIG_EXAMPLES_NSH_CXXINITIALIZE) -# error CONFIG_EXAMPLES_NSH_CXXINITIALIZE Must not be defined! Use CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE. -# endif - -#else -# error platform is dependent on c++ both CONFIG_HAVE_CXX and CONFIG_HAVE_CXXINITIALIZE must be defined. -#endif - - - if (OK == determin_hw_version(&hw_version, & hw_revision)) { - switch (hw_version) { - default: - case 0x8: - break; - - case 0xE: - hw_type[1]++; - hw_type[2] = '0'; - break; - - case 0xA: - hw_type[2] = 'M'; - break; - } - - PX4_INFO("Ver 0x%1X : Rev %x %s", hw_version, hw_revision, hw_type); - } - - - /* Bring up the Sensor power */ - - stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 1); - - /* Ensure the power is on 1 ms before we drive the GPIO pins */ - - usleep(1000); - - /* Now it is ok to drive the pins high so configure SPI GPIO */ - - stm32_spiinitialize(); - - - /* configure the high-resolution time/callout interface */ - - hrt_init(); - - param_init(); - - /* configure the DMA allocator */ - - if (board_dma_alloc_init() < 0) { - message("DMA alloc FAILED"); - } - - /* configure CPU load estimation */ -#ifdef CONFIG_SCHED_INSTRUMENTATION - cpuload_initialize_once(); -#endif - - /* set up the serial DMA polling */ - static struct hrt_call serial_dma_call; - struct timespec ts; - - /* - * Poll at 1ms intervals for received bytes that have not triggered - * a DMA event. - */ - ts.tv_sec = 0; - ts.tv_nsec = 1000000; - - hrt_call_every(&serial_dma_call, - ts_to_abstime(&ts), - ts_to_abstime(&ts), - (hrt_callout)stm32_serial_dma_poll, - NULL); - -#if defined(CONFIG_STM32_BBSRAM) - - if (hardfault_check_status) { - /* NB. the use of the console requires the hrt running - * to poll the DMA - */ - - /* Using Battery Backed Up SRAM */ - - int filesizes[CONFIG_STM32_BBSRAM_FILES + 1] = BSRAM_FILE_SIZES; - - stm32_bbsraminitialize(BBSRAM_PATH, filesizes); - -#if defined(CONFIG_STM32_SAVE_CRASHDUMP) - - /* Panic Logging in Battery Backed Up Files */ - - /* - * In an ideal world, if a fault happens in flight the - * system save it to BBSRAM will then reboot. Upon - * rebooting, the system will log the fault to disk, recover - * the flight state and continue to fly. But if there is - * a fault on the bench or in the air that prohibit the recovery - * or committing the log to disk, the things are too broken to - * fly. So the question is: - * - * Did we have a hard fault and not make it far enough - * through the boot sequence to commit the fault data to - * the SD card? - */ - - /* Do we have an uncommitted hard fault in BBSRAM? - * - this will be reset after a successful commit to SD - */ - int hadCrash = hardfault_check_status("boot"); - - if (hadCrash == OK) { - - message("[boot] There is a hard fault logged. Hold down the SPACE BAR," \ - " while booting to halt the system!\n"); - - /* Yes. So add one to the boot count - this will be reset after a successful - * commit to SD - */ - - int reboots = hardfault_increment_reboot("boot", false); - - /* Also end the misery for a user that holds for a key down on the console */ - - int bytesWaiting; - ioctl(fileno(stdin), FIONREAD, (unsigned long)((uintptr_t) &bytesWaiting)); - - if (reboots > 2 || bytesWaiting != 0) { - - /* Since we can not commit the fault dump to disk. Display it - * to the console. - */ - - hardfault_write("boot", fileno(stdout), HARDFAULT_DISPLAY_FORMAT, false); - - message("[boot] There were %d reboots with Hard fault that were not committed to disk - System halted %s\n", - reboots, - (bytesWaiting == 0 ? "" : " Due to Key Press\n")); - - - /* For those of you with a debugger set a break point on up_assert and - * then set dbgContinue = 1 and go. - */ - - /* Clear any key press that got us here */ - - static volatile bool dbgContinue = false; - int c = '>'; - - while (!dbgContinue) { - - switch (c) { - - case EOF: - - - case '\n': - case '\r': - case ' ': - continue; - - default: - - putchar(c); - putchar('\n'); - - switch (c) { - - case 'D': - case 'd': - hardfault_write("boot", fileno(stdout), HARDFAULT_DISPLAY_FORMAT, false); - break; - - case 'C': - case 'c': - hardfault_rearm("boot"); - hardfault_increment_reboot("boot", true); - break; - - case 'B': - case 'b': - dbgContinue = true; - break; - - default: - break; - } // Inner Switch - - message("\nEnter B - Continue booting\n" \ - "Enter C - Clear the fault log\n" \ - "Enter D - Dump fault log\n\n?>"); - fflush(stdout); - - if (!dbgContinue) { - c = getchar(); - } - - break; - - } // outer switch - } // for - - } // inner if - } // outer if - } // hardfault_check_status - -#endif // CONFIG_STM32_SAVE_CRASHDUMP -#endif // CONFIG_STM32_BBSRAM - - /* initial LED state */ - drv_led_start(); - led_off(LED_AMBER); - - /* Configure SPI-based devices */ - - spi1 = stm32_spibus_initialize(PX4_SPI_BUS_SENSORS); - - if (!spi1) { - message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_SENSORS); - board_autoled_on(LED_AMBER); - return -ENODEV; - } - - /* Default SPI1 to 1MHz and de-assert the known chip selects. */ - SPI_SETFREQUENCY(spi1, 10000000); - SPI_SETBITS(spi1, 8); - SPI_SETMODE(spi1, SPIDEV_MODE3); - up_udelay(20); - - /* Get the SPI port for the FRAM */ - - spi2 = stm32_spibus_initialize(PX4_SPI_BUS_RAMTRON); - - if (!spi2) { - message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_RAMTRON); - board_autoled_on(LED_AMBER); - return -ENODEV; - } - - /* Default SPI2 to 37.5 MHz (40 MHz rounded to nearest valid divider, F4 max) - * and de-assert the known chip selects. */ - - // XXX start with 10.4 MHz in FRAM usage and go up to 37.5 once validated - SPI_SETFREQUENCY(spi2, 12 * 1000 * 1000); - SPI_SETBITS(spi2, 8); - SPI_SETMODE(spi2, SPIDEV_MODE3); - - spi4 = stm32_spibus_initialize(PX4_SPI_BUS_EXT); - - if (!spi4) { - message("[boot] FAILED to initialize SPI port %d\n", PX4_SPI_BUS_EXT); - board_autoled_on(LED_AMBER); - return -ENODEV; - } - - /* Default SPI4 to 1MHz and de-assert the known chip selects. */ - SPI_SETFREQUENCY(spi4, 10000000); - SPI_SETBITS(spi4, 8); - SPI_SETMODE(spi4, SPIDEV_MODE3); - -#ifdef CONFIG_MMCSD - /* First, get an instance of the SDIO interface */ - - sdio = sdio_initialize(CONFIG_NSH_MMCSDSLOTNO); - - if (!sdio) { - message("[boot] Failed to initialize SDIO slot %d\n", - CONFIG_NSH_MMCSDSLOTNO); - return -ENODEV; - } - - /* Now bind the SDIO interface to the MMC/SD driver */ - int ret = mmcsd_slotinitialize(CONFIG_NSH_MMCSDMINOR, sdio); - - if (ret != OK) { - message("[boot] Failed to bind SDIO to the MMC/SD driver: %d\n", ret); - return ret; - } - - /* Then let's guess and say that there is a card in the slot. There is no card detect GPIO. */ - sdio_mediachange(sdio, true); - -#endif - - return OK; -} diff --git a/src/drivers/boards/px4fmu-v3/px4fmu_led.c b/src/drivers/boards/px4fmu-v3/px4fmu_led.c deleted file mode 100644 index 09edb2ba66..0000000000 --- a/src/drivers/boards/px4fmu-v3/px4fmu_led.c +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** - * - * Copyright (c) 2013 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file px4fmu2_led.c - * - * PX4FMU LED backend. - */ - -#include - -#include - -#include "stm32.h" -#include "board_config.h" - -#include - -/* - * Ideally we'd be able to get these from up_internal.h, - * but since we want to be able to disable the NuttX use - * of leds for system indication at will and there is no - * separate switch, we need to build independent of the - * CONFIG_ARCH_LEDS configuration switch. - */ -__BEGIN_DECLS -extern void led_init(void); -extern void led_on(int led); -extern void led_off(int led); -extern void led_toggle(int led); -__END_DECLS - -__EXPORT void led_init() -{ - /* Configure LED1 GPIO for output */ - - stm32_configgpio(GPIO_LED1); -} - -__EXPORT void led_on(int led) -{ - if (led == 1) { - /* Pull down to switch on */ - stm32_gpiowrite(GPIO_LED1, false); - } -} - -__EXPORT void led_off(int led) -{ - if (led == 1) { - /* Pull up to switch off */ - stm32_gpiowrite(GPIO_LED1, true); - } -} - -__EXPORT void led_toggle(int led) -{ - if (led == 1) { - if (stm32_gpioread(GPIO_LED1)) { - stm32_gpiowrite(GPIO_LED1, false); - - } else { - stm32_gpiowrite(GPIO_LED1, true); - } - } -} diff --git a/src/drivers/boards/px4fmu-v3/px4fmu_spi.c b/src/drivers/boards/px4fmu-v3/px4fmu_spi.c deleted file mode 100644 index 237642a94d..0000000000 --- a/src/drivers/boards/px4fmu-v3/px4fmu_spi.c +++ /dev/null @@ -1,468 +0,0 @@ -/**************************************************************************** - * - * Copyright (C) 2012 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file px4fmu_spi.c - * - * Board-specific SPI functions. - */ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include "board_config.h" -#include - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/************************************************************************************ - * Name: stm32_spiinitialize - * - * Description: - * Called to configure SPI chip select GPIO pins for the PX4FMU board. - * - ************************************************************************************/ - -#ifdef CONFIG_STM32_SPI1 -/* Verification - * PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6 - * driver X X X X X X - * local V2 v2 V2 V3 a V2 V2M V2x a a 4 - */ -static void stm32_spi1_initialize(void) -{ - stm32_configgpio(GPIO_SPI1_CS_PC2); - stm32_configgpio(GPIO_SPI1_CS_PD7); - - stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PD15); - - if (HW_VER_FMUV2 == board_get_hw_version()) { - stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB0); - stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB1); - stm32_configgpio(GPIO_SPI1_EXTI_DRDY_PB4); - stm32_configgpio(GPIO_SPI1_CS_PC13); - stm32_configgpio(GPIO_SPI1_CS_PC15); - - } else if (HW_VER_FMUV2MINI == board_get_hw_version()) { - stm32_configgpio(GPIO_SPI1_EXTI_20608_DRDY_PC14); - stm32_configgpio(GPIO_SPI1_CS_PC15); - - } else if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_configgpio(GPIO_SPI1_CS_PC1); - } -} -#endif // CONFIG_STM32_SPI1 - -#ifdef CONFIG_STM32_SPI4 -/* Verification - * PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6 - * driver X X X X X X - * local V3 V3 - V3 a V3 V23 V3 - - - */ -static void stm32_spi4_initialize(void) -{ - stm32_configgpio(GPIO_SPI4_NSS_PE4); - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_configgpio(GPIO_SPI4_EXTI_DRDY_PB0); - stm32_configgpio(GPIO_SPI4_CS_PB1); - stm32_configgpio(GPIO_SPI4_CS_PC13); - stm32_configgpio(GPIO_SPI4_CS_PC15); - } - - if (HW_VER_FMUV2MINI != board_get_hw_version()) { - stm32_configgpio(GPIO_SPI4_GPIO_PC14); - } -} -#endif //CONFIG_STM32_SPI4 - -__EXPORT void stm32_spiinitialize(void) -{ -#ifdef CONFIG_STM32_SPI1 - stm32_spi1_initialize(); -#endif - -#ifdef CONFIG_STM32_SPI2 - stm32_configgpio(GPIO_SPI2_CS_PD10); -#endif - -#ifdef CONFIG_STM32_SPI4 - stm32_spi4_initialize(); -#endif -} - -#ifdef CONFIG_STM32_SPI1 -__EXPORT void stm32_spi1select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected) -{ - /* SPI select is active low, so write !selected to select the device */ - /* Verification - * PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6 - * driver X X X X X X - * local - - - V3 a V2 - V2M a - - - */ - - switch (devid) { - case PX4_SPIDEV_GYRO: - - /* Making sure the other peripherals are not selected */ - if (HW_VER_FMUV2 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC13, !selected); - } - - if (HW_VER_FMUV3 != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1); - } - - stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1); - stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1); - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1); - } - - break; - -# if defined(PX4_SPIDEV_ICM_20608) - - case PX4_SPIDEV_ICM_20608: -# endif - case PX4_SPIDEV_ACCEL_MAG: - - /* Making sure the other peripherals are not selected */ - if (HW_VER_FMUV2 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1); - } - - if (HW_VER_FMUV3 != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC15, !selected); - } - - stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1); - stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1); - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1); - } - - break; - - case PX4_SPIDEV_BARO: - - /* Making sure the other peripherals are not selected */ - if (HW_VER_FMUV2 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1); - } - - if (HW_VER_FMUV3 != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1); - } - - stm32_gpiowrite(GPIO_SPI1_CS_PD7, !selected); - stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1); - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1); - } - - break; - - case PX4_SPIDEV_MPU: - - /* Making sure the other peripherals are not selected */ - if (HW_VER_FMUV2 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1); - } - - if (HW_VER_FMUV3 != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1); - } - - stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1); - stm32_gpiowrite(GPIO_SPI1_CS_PC2, !selected); - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC1, 1); - } - - break; - - case PX4_SPIDEV_HMC: - if (HW_VER_FMUV2 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC13, 1); - } - - if (HW_VER_FMUV3 != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC15, 1); - } - - stm32_gpiowrite(GPIO_SPI1_CS_PD7, 1); - stm32_gpiowrite(GPIO_SPI1_CS_PC2, 1); - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI1_CS_PC1, !selected); - } - - break; - - default: - break; - } -} - -__EXPORT uint8_t stm32_spi1status(FAR struct spi_dev_s *dev, uint32_t devid) -{ - return SPI_STATUS_PRESENT; -} -#endif // CONFIG_STM32_SPI1 - -#ifdef CONFIG_STM32_SPI2 -__EXPORT void stm32_spi2select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected) -{ - /* there can only be one device on this bus, so always select it */ - stm32_gpiowrite(GPIO_SPI2_CS_PD10, !selected); -} - -__EXPORT uint8_t stm32_spi2status(FAR struct spi_dev_s *dev, uint32_t devid) -{ - /* FRAM is always present */ - return SPI_STATUS_PRESENT; -} -#endif - - -#ifdef CONFIG_STM32_SPI4 -__EXPORT void stm32_spi4select(FAR struct spi_dev_s *dev, uint32_t devid, bool selected) -{ - /* SPI select is active low, so write !selected to select the device */ - /* Verification - * PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6 - * driver X X X X X X - * local - - - - - V3 !V2M V3 - - a - */ - - switch (devid) { - case PX4_SPIDEV_EXT_MPU: - /* Making sure the other peripherals are not selected */ - stm32_gpiowrite(GPIO_SPI4_NSS_PE4, !selected); - - if (HW_VER_FMUV2MINI != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, 1); - } - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_CS_PC15, 1); - stm32_gpiowrite(GPIO_SPI4_CS_PC13, 1); - } - - break; - - case PX4_SPIDEV_EXT_BARO: - /* Making sure the other peripherals are not selected */ - stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1); - - if (HW_VER_FMUV2MINI != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, !selected); - } - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_CS_PC15, 1); - stm32_gpiowrite(GPIO_SPI4_CS_PC13, 1); - } - - break; - -# if defined(PX4_SPIDEV_ICM_20608) - - case PX4_SPIDEV_ICM_20608: -# endif - case PX4_SPIDEV_EXT_ACCEL_MAG: - /* Making sure the other peripherals are not selected */ - stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1); - - if (HW_VER_FMUV2MINI != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, 1); - } - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_CS_PC15, !selected); - stm32_gpiowrite(GPIO_SPI4_CS_PC13, 1); - } - - break; - - case PX4_SPIDEV_EXT_BMI: - case PX4_SPIDEV_EXT_GYRO: - /* Making sure the other peripherals are not selected */ - stm32_gpiowrite(GPIO_SPI4_NSS_PE4, 1); - - if (HW_VER_FMUV2MINI != board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_GPIO_PC14, 1); - } - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_gpiowrite(GPIO_SPI4_CS_PC15, 1); - stm32_gpiowrite(GPIO_SPI4_CS_PC13, !selected); - } - - break; - - default: - break; - - } -} -__EXPORT uint8_t stm32_spi4status(FAR struct spi_dev_s *dev, uint32_t devid) -{ - return SPI_STATUS_PRESENT; -} -#endif // CONFIG_STM32_SPI4 - -/* V2, V2M SPI1 All signals SPI4, V3 ALL signals */ -/* Verification - * PA5 PA6 PA7 PB0 PB1 PB4 PC1 PC2 PC13 PC14 PC15 PD7 PD15 PE2 PE4 PE5 PE6 - * local A A A A A A V3 A A !V2 A A A V3 V3 V3 V3 - */ - -__EXPORT void board_spi_reset(int ms) -{ - /* disable SPI bus */ - stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC2)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC13)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC15)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PD7)); - - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC2), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC13), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC15), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PD7), 0); - - stm32_configgpio(_PIN_OFF(GPIO_SPI1_SCK)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_MISO)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_MOSI)); - - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_SCK), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_MISO), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_MOSI), 0); - - stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB0)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB1)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB4)); - stm32_configgpio(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PD15)); - - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB0), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB1), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PB4), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_EXTI_DRDY_PD15), 0); - - if (HW_VER_FMUV2 != board_get_hw_version()) { - stm32_configgpio(_PIN_OFF(GPIO_SPI4_CS_PC14)); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_CS_PC14), 0); - } - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_configgpio(_PIN_OFF(GPIO_SPI1_CS_PC1)); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI1_CS_PC1), 0); - - stm32_configgpio(_PIN_OFF(GPIO_SPI4_NSS_PE4)); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_NSS_PE4), 0); - - stm32_configgpio(_PIN_OFF(GPIO_SPI4_SCK)); - stm32_configgpio(_PIN_OFF(GPIO_SPI4_MISO)); - stm32_configgpio(_PIN_OFF(GPIO_SPI4_MOSI)); - - stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_SCK), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_MISO), 0); - stm32_gpiowrite(_PIN_OFF(GPIO_SPI4_MOSI), 0); - } - - /* set the sensor rail off */ - stm32_configgpio(GPIO_VDD_3V3_SENSORS_EN); - stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 0); - - /* wait for the sensor rail to reach GND */ - usleep(ms * 1000); - warnx("reset done, %d ms", ms); - - /* re-enable power */ - - /* switch the sensor rail back on */ - stm32_gpiowrite(GPIO_VDD_3V3_SENSORS_EN, 1); - - /* wait a bit before starting SPI, different times didn't influence results */ - usleep(100); - - /* reconfigure the SPI pins */ - stm32_configgpio(GPIO_SPI1_SCK); - stm32_configgpio(GPIO_SPI1_MISO); - stm32_configgpio(GPIO_SPI1_MOSI); - - if (HW_VER_FMUV3 == board_get_hw_version()) { - stm32_configgpio(GPIO_SPI4_SCK); - stm32_configgpio(GPIO_SPI4_MISO); - stm32_configgpio(GPIO_SPI4_MOSI); - stm32_spi4_initialize(); - } - - stm32_spi1_initialize(); -} - -__EXPORT bool px4_spi_bus_external(int bus) -{ - if (HW_VER_FMUV3 == board_get_hw_version()) { - /* all FMUv3 2.1 spi buses are internal */ - return false; - - } else { - if (bus == PX4_SPI_BUS_EXT) { - return true; - } - } - - return false; -} diff --git a/src/drivers/boards/px4fmu-v3/px4fmu_timer_config.c b/src/drivers/boards/px4fmu-v3/px4fmu_timer_config.c deleted file mode 100644 index 5adc4260db..0000000000 --- a/src/drivers/boards/px4fmu-v3/px4fmu_timer_config.c +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** - * - * Copyright (C) 2012 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/* - * @file px4fmu_timer_config.c - * - * Configuration data for the stm32 pwm_servo, input capture and pwm input driver. - * - * Note that these arrays must always be fully-sized. - */ - -#include - -#include -#include -#include - -#include -#include - -#include "board_config.h" - -__EXPORT const io_timers_t io_timers[MAX_IO_TIMERS] = { - { - .base = STM32_TIM1_BASE, - .clock_register = STM32_RCC_APB2ENR, - .clock_bit = RCC_APB2ENR_TIM1EN, - .clock_freq = STM32_APB2_TIM1_CLKIN, - .first_channel_index = 0, - .last_channel_index = 3, - .handler = io_timer_handler0, - .vectorno = STM32_IRQ_TIM1CC, - - }, - { - .base = STM32_TIM4_BASE, - .clock_register = STM32_RCC_APB1ENR, - .clock_bit = RCC_APB1ENR_TIM4EN, - .clock_freq = STM32_APB1_TIM4_CLKIN, - .first_channel_index = 4, - .last_channel_index = 5, - .handler = io_timer_handler1, - .vectorno = STM32_IRQ_TIM4 - } -}; - -__EXPORT const timer_io_channels_t timer_io_channels[MAX_TIMER_IO_CHANNELS] = { - { - .gpio_out = GPIO_TIM1_CH4OUT, - .gpio_in = GPIO_TIM1_CH4IN, - .timer_index = 0, - .timer_channel = 4, - .ccr_offset = STM32_GTIM_CCR4_OFFSET, - .masks = GTIM_SR_CC4IF | GTIM_SR_CC4OF - }, - { - .gpio_out = GPIO_TIM1_CH3OUT, - .gpio_in = GPIO_TIM1_CH3IN, - .timer_index = 0, - .timer_channel = 3, - .ccr_offset = STM32_GTIM_CCR3_OFFSET, - .masks = GTIM_SR_CC3IF | GTIM_SR_CC3OF - }, - { - .gpio_out = GPIO_TIM1_CH2OUT, - .gpio_in = GPIO_TIM1_CH2IN, - .timer_index = 0, - .timer_channel = 2, - .ccr_offset = STM32_GTIM_CCR2_OFFSET, - .masks = GTIM_SR_CC2IF | GTIM_SR_CC2OF - }, - { - .gpio_out = GPIO_TIM1_CH1OUT, - .gpio_in = GPIO_TIM1_CH1IN, - .timer_index = 0, - .timer_channel = 1, - .ccr_offset = STM32_GTIM_CCR1_OFFSET, - .masks = GTIM_SR_CC1IF | GTIM_SR_CC1OF - }, - { - .gpio_out = GPIO_TIM4_CH2OUT, - .gpio_in = GPIO_TIM4_CH2IN, - .timer_index = 1, - .timer_channel = 2, - .ccr_offset = STM32_GTIM_CCR2_OFFSET, - .masks = GTIM_SR_CC2IF | GTIM_SR_CC2OF - }, - { - .gpio_out = GPIO_TIM4_CH3OUT, - .gpio_in = GPIO_TIM4_CH3IN, - .timer_index = 1, - .timer_channel = 3, - .ccr_offset = STM32_GTIM_CCR3_OFFSET, - .masks = GTIM_SR_CC3IF | GTIM_SR_CC3OF - } -}; diff --git a/src/drivers/boards/px4fmu-v3/px4fmu_usb.c b/src/drivers/boards/px4fmu-v3/px4fmu_usb.c deleted file mode 100644 index 4b455309db..0000000000 --- a/src/drivers/boards/px4fmu-v3/px4fmu_usb.c +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** - * - * Copyright (C) 2012 PX4 Development Team. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name PX4 nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/** - * @file px4fmu_usb.c - * - * Board-specific USB functions. - */ - -/************************************************************************************ - * Included Files - ************************************************************************************/ - -#include - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include "board_config.h" - -/************************************************************************************ - * Definitions - ************************************************************************************/ - -/************************************************************************************ - * Private Functions - ************************************************************************************/ - -/************************************************************************************ - * Public Functions - ************************************************************************************/ - -/************************************************************************************ - * Name: stm32_usbinitialize - * - * Description: - * Called to setup USB-related GPIO pins for the PX4FMU board. - * - ************************************************************************************/ - -__EXPORT void stm32_usbinitialize(void) -{ - /* The OTG FS has an internal soft pull-up */ - - /* Configure the OTG FS VBUS sensing GPIO, Power On, and Overcurrent GPIOs */ - -#ifdef CONFIG_STM32_OTGFS - stm32_configgpio(GPIO_OTGFS_VBUS); - /* XXX We only support device mode - stm32_configgpio(GPIO_OTGFS_PWRON); - stm32_configgpio(GPIO_OTGFS_OVER); - */ -#endif -} - -/************************************************************************************ - * Name: stm32_usbsuspend - * - * Description: - * Board logic must provide the stm32_usbsuspend logic if the USBDEV driver is - * used. This function is called whenever the USB enters or leaves suspend mode. - * This is an opportunity for the board logic to shutdown clocks, power, etc. - * while the USB is suspended. - * - ************************************************************************************/ - -__EXPORT void stm32_usbsuspend(FAR struct usbdev_s *dev, bool resume) -{ - uinfo("resume: %d\n", resume); -} diff --git a/src/firmware/nuttx/CMakeLists.txt b/src/firmware/nuttx/CMakeLists.txt index fe4a1f0c97..dea7713cb4 100644 --- a/src/firmware/nuttx/CMakeLists.txt +++ b/src/firmware/nuttx/CMakeLists.txt @@ -29,8 +29,12 @@ if (CONFIG_NET) list(APPEND nuttx_libs nuttx_net) endif() +if (NOT LD_SCRIPT) + set(LD_SCRIPT ld.script) +endif() + target_link_libraries(${fw_name} - -T${PX4_BINARY_DIR}/NuttX/nuttx/configs/${BOARD}/scripts/ld.script + -T${PX4_BINARY_DIR}/NuttX/nuttx/configs/${BOARD}/scripts/${LD_SCRIPT} -Wl,-Map=${PX4_BINARY_DIR}/${CONFIG}.map -Wl,--warn-common -Wl,--gc-sections