aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-08-14 21:23:00 -0700
committerpx4dev <px4@purgatory.org>2013-08-14 21:23:00 -0700
commit33863165b2c5b932ab4b4908217bae0014cfa638 (patch)
treeaa46a5de62248c04f7017ccccc7f5c897f5463eb
parent3b10f8431def73222823c1c2abe1bb7422d851dc (diff)
parentde749a3602423f5ee6ca56f3cf2dfff04e31ec6d (diff)
downloadpx4-firmware-33863165b2c5b932ab4b4908217bae0014cfa638.tar.gz
px4-firmware-33863165b2c5b932ab4b4908217bae0014cfa638.tar.bz2
px4-firmware-33863165b2c5b932ab4b4908217bae0014cfa638.zip
Merge commit 'de749a3602423f5ee6ca56f3cf2dfff04e31ec6d' (kconfig-cleanup) into fmuv2_bringup
-rw-r--r--Makefile2
-rw-r--r--makefiles/board_px4fmu-v1.mk1
-rw-r--r--makefiles/board_px4fmu-v2.mk1
-rw-r--r--makefiles/board_px4io-v1.mk1
-rw-r--r--makefiles/board_px4io-v2.mk1
-rw-r--r--makefiles/firmware.mk1
-rw-r--r--makefiles/module.mk3
-rw-r--r--makefiles/toolchain_gnu-arm-eabi.mk7
-rw-r--r--nuttx-configs/px4fmu-v1/nsh/defconfig41
-rwxr-xr-xnuttx-configs/px4io-v1/nsh/defconfig22
-rw-r--r--src/drivers/stm32/drv_hrt.c19
-rw-r--r--src/systemcmds/tests/test_hrt.c2
12 files changed, 51 insertions, 50 deletions
diff --git a/Makefile b/Makefile
index 9ef30c2df..f7cab05c8 100644
--- a/Makefile
+++ b/Makefile
@@ -151,7 +151,7 @@ $(NUTTX_ARCHIVES): $(ARCHIVE_DIR)%.export: $(NUTTX_SRC)
$(Q) (cd $(NUTTX_SRC)/configs && $(COPYDIR) $(PX4_BASE)nuttx-configs/$(board) .)
$(Q) (cd $(NUTTX_SRC)tools && ./configure.sh $(board)/$(configuration))
@$(ECHO) %% Exporting NuttX for $(board)
- $(Q) make -r -j1 -C $(NUTTX_SRC) -r $(MQUIET) export
+ $(Q) make -r -j1 -C $(NUTTX_SRC) -r $(MQUIET) CONFIG_ARCH_BOARD=$(board) export
$(Q) mkdir -p $(dir $@)
$(Q) $(COPY) $(NUTTX_SRC)nuttx-export.zip $@
$(Q) (cd $(NUTTX_SRC)/configs && $(RMDIR) $(board))
diff --git a/makefiles/board_px4fmu-v1.mk b/makefiles/board_px4fmu-v1.mk
index 837069644..4d692e31a 100644
--- a/makefiles/board_px4fmu-v1.mk
+++ b/makefiles/board_px4fmu-v1.mk
@@ -6,5 +6,6 @@
# Configure the toolchain
#
CONFIG_ARCH = CORTEXM4F
+CONFIG_BOARD = PX4FMU_V1
include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk
diff --git a/makefiles/board_px4fmu-v2.mk b/makefiles/board_px4fmu-v2.mk
index 4b3b7e585..e9a2985b7 100644
--- a/makefiles/board_px4fmu-v2.mk
+++ b/makefiles/board_px4fmu-v2.mk
@@ -6,5 +6,6 @@
# Configure the toolchain
#
CONFIG_ARCH = CORTEXM4F
+CONFIG_BOARD = PX4FMU_V2
include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk
diff --git a/makefiles/board_px4io-v1.mk b/makefiles/board_px4io-v1.mk
index b0eb2dae7..1872a4124 100644
--- a/makefiles/board_px4io-v1.mk
+++ b/makefiles/board_px4io-v1.mk
@@ -6,5 +6,6 @@
# Configure the toolchain
#
CONFIG_ARCH = CORTEXM3
+CONFIG_BOARD = PX4IO_V1
include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk
diff --git a/makefiles/board_px4io-v2.mk b/makefiles/board_px4io-v2.mk
index ee6b6125e..50a4068fb 100644
--- a/makefiles/board_px4io-v2.mk
+++ b/makefiles/board_px4io-v2.mk
@@ -6,5 +6,6 @@
# Configure the toolchain
#
CONFIG_ARCH = CORTEXM3
+CONFIG_BOARD = PX4IO_V2
include $(PX4_MK_DIR)/toolchain_gnu-arm-eabi.mk
diff --git a/makefiles/firmware.mk b/makefiles/firmware.mk
index 2085d45dd..8a027a0a8 100644
--- a/makefiles/firmware.mk
+++ b/makefiles/firmware.mk
@@ -153,6 +153,7 @@ ifeq ($(BOARD_FILE),)
$(error Config $(CONFIG) references board $(BOARD), but no board definition file found)
endif
export BOARD
+export BOARD_FILE
include $(BOARD_FILE)
$(info % BOARD = $(BOARD))
diff --git a/makefiles/module.mk b/makefiles/module.mk
index 9e4cbafc9..9c1a828cc 100644
--- a/makefiles/module.mk
+++ b/makefiles/module.mk
@@ -98,6 +98,7 @@
#
# CONFIG
# BOARD
+# BOARD_FILE
# MODULE_WORK_DIR
# MODULE_OBJ
# MODULE_MK
@@ -117,7 +118,7 @@ $(info %% MODULE_MK = $(MODULE_MK))
#
# Get the board/toolchain config
#
-include $(PX4_MK_DIR)/board_$(BOARD).mk
+include $(BOARD_FILE)
#
# Get the module's config
diff --git a/makefiles/toolchain_gnu-arm-eabi.mk b/makefiles/toolchain_gnu-arm-eabi.mk
index 3f4d3371a..9fd2dd516 100644
--- a/makefiles/toolchain_gnu-arm-eabi.mk
+++ b/makefiles/toolchain_gnu-arm-eabi.mk
@@ -85,6 +85,13 @@ ifeq ($(ARCHCPUFLAGS),)
$(error Must set CONFIG_ARCH to one of CORTEXM4F, CORTEXM4 or CORTEXM3)
endif
+# Set the board flags
+#
+ifeq ($(CONFIG_BOARD),)
+$(error Board config does not define CONFIG_BOARD)
+endif
+ARCHDEFINES += -DCONFIG_ARCH_BOARD_$(CONFIG_BOARD)
+
# optimisation flags
#
ARCHOPTIMIZATION = $(MAXOPTIMIZATION) \
diff --git a/nuttx-configs/px4fmu-v1/nsh/defconfig b/nuttx-configs/px4fmu-v1/nsh/defconfig
index 6a4795c46..a7a6725c6 100644
--- a/nuttx-configs/px4fmu-v1/nsh/defconfig
+++ b/nuttx-configs/px4fmu-v1/nsh/defconfig
@@ -73,17 +73,16 @@ CONFIG_ARCH="arm"
# CONFIG_ARCH_CHIP_LPC31XX is not set
# CONFIG_ARCH_CHIP_LPC43XX is not set
# CONFIG_ARCH_CHIP_NUC1XX is not set
-# CONFIG_ARCH_CHIP_SAM3U is not set
+# CONFIG_ARCH_CHIP_SAM34 is not set
CONFIG_ARCH_CHIP_STM32=y
# CONFIG_ARCH_CHIP_STR71X is not set
CONFIG_ARCH_CORTEXM4=y
-CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="stm32"
CONFIG_ARMV7M_USEBASEPRI=y
CONFIG_ARCH_HAVE_CMNVECTOR=y
CONFIG_ARMV7M_CMNVECTOR=y
-CONFIG_ARMV7M_STACKCHECK=y
+CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_HAVE_MPU=y
# CONFIG_ARMV7M_MPU is not set
@@ -93,10 +92,8 @@ CONFIG_ARCH_HAVE_MPU=y
#
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI=y
+CONFIG_ARMV7M_STACKCHECK=y
CONFIG_SERIAL_TERMIOS=y
-CONFIG_SERIAL_DISABLE_REORDERING=y
-CONFIG_SERIAL_IFLOWCONTROL=y
-CONFIG_SERIAL_OFLOWCONTROL=y
#
# STM32 Configuration Options
@@ -248,6 +245,7 @@ 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_DMACAPABLE=y
# CONFIG_STM32_TIM4_PWM is not set
# CONFIG_STM32_TIM5_PWM is not set
# CONFIG_STM32_TIM9_PWM is not set
@@ -275,6 +273,7 @@ CONFIG_UART5_RXDMA=y
CONFIG_USART6_RXDMA=y
# CONFIG_USART7_RXDMA is not set
# CONFIG_USART8_RXDMA is not set
+CONFIG_SERIAL_DISABLE_REORDERING=y
CONFIG_STM32_USART_SINGLEWIRE=y
#
@@ -342,15 +341,12 @@ CONFIG_BOOT_RUNFROMFLASH=y
#
# Board Selection
#
-CONFIG_ARCH_BOARD_PX4FMU_V1=y
-# CONFIG_ARCH_BOARD_CUSTOM is not set
-CONFIG_ARCH_BOARD="px4fmu-v1"
+CONFIG_ARCH_BOARD_CUSTOM=y
+CONFIG_ARCH_BOARD=""
#
# Common Board Options
#
-CONFIG_ARCH_HAVE_LEDS=y
-# CONFIG_ARCH_LEDS is not set
CONFIG_NSH_MMCSDMINOR=0
CONFIG_NSH_MMCSDSLOTNO=0
CONFIG_NSH_MMCSDSPIPORTNO=3
@@ -358,8 +354,6 @@ CONFIG_NSH_MMCSDSPIPORTNO=3
#
# Board-Specific Options
#
-CONFIG_HRT_TIMER=y
-CONFIG_HRT_PPM=y
#
# RTOS Features
@@ -497,6 +491,8 @@ CONFIG_USART1_BAUD=57600
CONFIG_USART1_BITS=8
CONFIG_USART1_PARITY=0
CONFIG_USART1_2STOP=0
+# CONFIG_USART1_IFLOWCONTROL is not set
+# CONFIG_USART1_OFLOWCONTROL is not set
#
# USART2 Configuration
@@ -507,6 +503,8 @@ CONFIG_USART2_BAUD=57600
CONFIG_USART2_BITS=8
CONFIG_USART2_PARITY=0
CONFIG_USART2_2STOP=0
+CONFIG_USART2_IFLOWCONTROL=y
+CONFIG_USART2_OFLOWCONTROL=y
#
# UART5 Configuration
@@ -517,6 +515,8 @@ CONFIG_UART5_BAUD=57600
CONFIG_UART5_BITS=8
CONFIG_UART5_PARITY=0
CONFIG_UART5_2STOP=0
+# CONFIG_UART5_IFLOWCONTROL is not set
+# CONFIG_UART5_OFLOWCONTROL is not set
#
# USART6 Configuration
@@ -527,6 +527,10 @@ 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_SERIAL_IFLOWCONTROL=y
+CONFIG_SERIAL_OFLOWCONTROL=y
CONFIG_USBDEV=y
#
@@ -534,10 +538,9 @@ CONFIG_USBDEV=y
#
# CONFIG_USBDEV_ISOCHRONOUS is not set
# CONFIG_USBDEV_DUALSPEED is not set
-# CONFIG_USBDEV_SELFPOWERED is not set
-CONFIG_USBDEV_BUSPOWERED=y
+CONFIG_USBDEV_SELFPOWERED=y
+# CONFIG_USBDEV_BUSPOWERED is not set
CONFIG_USBDEV_MAXPOWER=500
-# CONFIG_USBDEV_REMOTEWAKEUP is not set
# CONFIG_USBDEV_DMA is not set
# CONFIG_USBDEV_TRACE is not set
@@ -560,8 +563,9 @@ CONFIG_CDCACM_EPBULKIN_FSSIZE=64
CONFIG_CDCACM_EPBULKIN_HSSIZE=512
CONFIG_CDCACM_NWRREQS=4
CONFIG_CDCACM_NRDREQS=4
-CONFIG_CDCACM_RXBUFSIZE=512
-CONFIG_CDCACM_TXBUFSIZE=512
+CONFIG_CDCACM_BULKIN_REQLEN=96
+CONFIG_CDCACM_RXBUFSIZE=256
+CONFIG_CDCACM_TXBUFSIZE=256
CONFIG_CDCACM_VENDORID=0x26ac
CONFIG_CDCACM_PRODUCTID=0x0010
CONFIG_CDCACM_VENDORSTR="3D Robotics"
@@ -748,6 +752,7 @@ CONFIG_EXAMPLES_CDCACM=y
# CONFIG_EXAMPLES_MM is not set
# CONFIG_EXAMPLES_MODBUS is not set
CONFIG_EXAMPLES_MOUNT=y
+# CONFIG_EXAMPLES_NRF24L01TERM is not set
CONFIG_EXAMPLES_NSH=y
# CONFIG_EXAMPLES_NULL is not set
# CONFIG_EXAMPLES_NX is not set
diff --git a/nuttx-configs/px4io-v1/nsh/defconfig b/nuttx-configs/px4io-v1/nsh/defconfig
index 525672233..3785e0367 100755
--- a/nuttx-configs/px4io-v1/nsh/defconfig
+++ b/nuttx-configs/px4io-v1/nsh/defconfig
@@ -201,28 +201,6 @@ CONFIG_USART2_RXDMA=n
CONFIG_USART3_RXDMA=y
#
-# PX4IO specific driver settings
-#
-# CONFIG_HRT_TIMER
-# Enables the high-resolution timer. The board definition must
-# set HRT_TIMER and HRT_TIMER_CHANNEL to the timer and capture/
-# compare channels to be used.
-# CONFIG_HRT_PPM
-# Enables R/C PPM input using the HRT. The board definition must
-# set HRT_PPM_CHANNEL to the timer capture/compare channel to be
-# used, and define GPIO_PPM_IN to configure the appropriate timer
-# GPIO.
-# CONFIG_PWM_SERVO
-# Enables the PWM servo driver. The driver configuration must be
-# supplied by the board support at initialisation time.
-# Note that USART2 must be disabled on the PX4 board for this to
-# be available.
-#
-#
-CONFIG_HRT_TIMER=y
-CONFIG_HRT_PPM=y
-
-#
# General build options
#
# CONFIG_RRLOAD_BINARY - make the rrload binary format used with
diff --git a/src/drivers/stm32/drv_hrt.c b/src/drivers/stm32/drv_hrt.c
index 58529fb03..83a1a1abb 100644
--- a/src/drivers/stm32/drv_hrt.c
+++ b/src/drivers/stm32/drv_hrt.c
@@ -59,7 +59,7 @@
#include <errno.h>
#include <string.h>
-#include <board_config.h>
+#include <arch/board/board.h>
#include <drivers/drv_hrt.h>
#include "chip.h"
@@ -70,6 +70,8 @@
#include "stm32_gpio.h"
#include "stm32_tim.h"
+#ifdef HRT_TIMER
+
/* HRT configuration */
#if HRT_TIMER == 1
# define HRT_TIMER_BASE STM32_TIM1_BASE
@@ -153,7 +155,7 @@
# error must not set CONFIG_STM32_TIM11=y and HRT_TIMER=11
# endif
#else
-# error HRT_TIMER must be set in board.h if CONFIG_HRT_TIMER=y
+# error HRT_TIMER must be a value between 1 and 11
#endif
/*
@@ -324,7 +326,7 @@ static void hrt_call_invoke(void);
# define CCER_PPM (GTIM_CCER_CC4E | GTIM_CCER_CC4P | GTIM_CCER_CC4NP) /* CC4, both edges */
# define CCER_PPM_FLIP GTIM_CCER_CC4P
# else
-# error HRT_PPM_CHANNEL must be a value between 1 and 4 if CONFIG_HRT_PPM is set
+# error HRT_PPM_CHANNEL must be a value between 1 and 4
# endif
/*
@@ -422,7 +424,7 @@ hrt_tim_init(void)
up_enable_irq(HRT_TIMER_VECTOR);
}
-#ifdef CONFIG_HRT_PPM
+#ifdef HRT_PPM_CHANNEL
/*
* Handle the PPM decoder state machine.
*/
@@ -524,7 +526,7 @@ error:
ppm_decoded_channels = 0;
}
-#endif /* CONFIG_HRT_PPM */
+#endif /* HRT_PPM_CHANNEL */
/*
* Handle the compare interupt by calling the callout dispatcher
@@ -544,7 +546,7 @@ hrt_tim_isr(int irq, void *context)
/* ack the interrupts we just read */
rSR = ~status;
-#ifdef CONFIG_HRT_PPM
+#ifdef HRT_PPM_CHANNEL
/* was this a PPM edge? */
if (status & (SR_INT_PPM | SR_OVF_PPM)) {
@@ -684,7 +686,7 @@ hrt_init(void)
sq_init(&callout_queue);
hrt_tim_init();
-#ifdef CONFIG_HRT_PPM
+#ifdef HRT_PPM_CHANNEL
/* configure the PPM input pin */
stm32_configgpio(GPIO_PPM_IN);
#endif
@@ -903,3 +905,6 @@ hrt_latency_update(void)
/* catch-all at the end */
latency_counters[index]++;
}
+
+
+#endif /* HRT_TIMER */
diff --git a/src/systemcmds/tests/test_hrt.c b/src/systemcmds/tests/test_hrt.c
index f21dd115b..f6e540401 100644
--- a/src/systemcmds/tests/test_hrt.c
+++ b/src/systemcmds/tests/test_hrt.c
@@ -94,7 +94,7 @@ extern uint16_t ppm_pulse_history[];
int test_ppm(int argc, char *argv[])
{
-#ifdef CONFIG_HRT_PPM
+#ifdef HRT_PPM_CHANNEL
unsigned i;
printf("channels: %u\n", ppm_decoded_channels);