diff --git a/Makefile.ac b/Makefile.ac index 2bf66e0694..c8004b0fb1 100644 --- a/Makefile.ac +++ b/Makefile.ac @@ -66,6 +66,9 @@ demo: $(SUPERVISION) all_ac_h: $(AIRFRAME_H) $(MODULES_H) $(SETTINGS_H) $(TUNING_H) $(MAKEFILE_AC) $(PERIODIC_H) + @echo -e "TARGET: $(TARGET)\n" > $(ACINCLUDE)/$(TARGET)_srcs.list + @echo -e "CFLAGS: $($(TARGET).CFLAGS)\n\n" >> $(ACINCLUDE)/$(TARGET)_srcs.list + @echo "srcs: $($(TARGET).srcs)" >> $(ACINCLUDE)/$(TARGET)_srcs.list radio_ac_h : $(RADIO_H) $(CONF_RADIO_CONTROL_PPM_H) diff --git a/conf/airframes/AirborneCodeReorg/TinyFw.xml b/conf/airframes/AirborneCodeReorg/TinyFw.xml index c2cb3c1c8c..d8b34339da 100644 --- a/conf/airframes/AirborneCodeReorg/TinyFw.xml +++ b/conf/airframes/AirborneCodeReorg/TinyFw.xml @@ -160,6 +160,15 @@ + + + + + + + + + diff --git a/conf/autopilot/fixedwing.makefile b/conf/autopilot/fixedwing.makefile index 339f442db0..0059cae212 100644 --- a/conf/autopilot/fixedwing.makefile +++ b/conf/autopilot/fixedwing.makefile @@ -20,24 +20,28 @@ FIXEDWING_INC = -I$(SRC_FIXEDWING) -I$(SRC_FIXEDWING_ARCH) include $(CFG_FIXEDWING)/autopilot.makefile -ifeq ($(BOARD),tiny) - ifeq ($(BOARD_VERSION),1.1) - include $(CFG_FIXEDWING)/actuators_4015.makefile - else - ifeq ($(BOARD_VERSION),0.99) +ifeq ($(ACTUATORS),) + ifeq ($(BOARD),tiny) + ifeq ($(BOARD_VERSION),1.1) include $(CFG_FIXEDWING)/actuators_4015.makefile else - include $(CFG_FIXEDWING)/actuators_4017.makefile + ifeq ($(BOARD_VERSION),0.99) + include $(CFG_FIXEDWING)/actuators_4015.makefile + else + include $(CFG_FIXEDWING)/actuators_4017.makefile + endif endif endif -endif - -ifeq ($(BOARD),twog) + ifeq ($(BOARD),twog) include $(CFG_FIXEDWING)/actuators_4017.makefile -endif + endif -ifeq ($(BOARD),lisa_l) + ifeq ($(BOARD),lisa_l) include $(CFG_FIXEDWING)/actuators_direct.makefile + endif + +else + include $(CFG_FIXEDWING)/$(ACTUATORS).makefile endif diff --git a/conf/autopilot/subsystems/fixedwing/autopilot.makefile b/conf/autopilot/subsystems/fixedwing/autopilot.makefile index a9c08f7b0c..520f3aa6d1 100644 --- a/conf/autopilot/subsystems/fixedwing/autopilot.makefile +++ b/conf/autopilot/subsystems/fixedwing/autopilot.makefile @@ -22,90 +22,177 @@ # # -# All targets need the board config -$(TARGET).CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG) +###################################################################### +## +## COMMON FIXEDWING ALL TARGETS (SIM + AP + FBW ...) +## + +# +# Board config + Include paths +# + +$(TARGET).CFLAGS += -DBOARD_CONFIG=$(BOARD_CFG) +$(TARGET).CFLAGS += $(FIXEDWING_INC) + +# +# Common Options +# ifeq ($(OPTIONS), minimal) else - $(TARGET).CFLAGS += -DWIND_INFO + $(TARGET).CFLAGS += -DWIND_INFO endif -$(TARGET).CFLAGS += -DTRAFFIC_INFO - -sim.CFLAGS += -DSITL -DAP -DFBW -DRADIO_CONTROL -DINTER_MCU -DDOWNLINK -DDOWNLINK_TRANSPORT=IvyTransport -DLED -sim.srcs += latlong.c radio_control.c downlink.c commands.c gps.c inter_mcu.c estimator.c sys_time.c main_fbw.c main_ap.c datalink.c $(SRC_ARCH)/sim_ap.c $(SRC_ARCH)/ppm_hw.c $(SRC_ARCH)/sim_gps.c $(SRC_ARCH)/ivy_transport.c $(SRC_ARCH)/sim_adc_generic.c $(SRC_ARCH)/led_hw.c - - - -ap.CFLAGS += $(FIXEDWING_INC) -ap.srcs = $(SRC_FIXEDWING)/main.c - -ifeq ($(ARCHI), stm32) -ap.srcs += lisa/plug_sys.c -endif - -# -# Interrupts -# -ifeq ($(ARCHI), arm7) -ap.srcs += $(SRC_ARCH)/armVIC.c -else ifeq ($(ARCHI), stm32) -ap.srcs += $(SRC_ARCH)/stm32_exceptions.c -ap.srcs += $(SRC_ARCH)/stm32_vector_table.c -endif +$(TARGET).CFLAGS += -DTRAFFIC_INFO # # LEDs # -ap.CFLAGS += -DUSE_LED -DLED -DTIME_LED=1 -ifeq ($(ARCHI), stm32) -ap.srcs += $(SRC_ARCH)/led_hw.c + +$(TARGET).CFLAGS += -DLED +ifneq ($(ARCHI), arm7) + $(TARGET).srcs += $(SRC_ARCH)/led_hw.c endif # -# Systime +# Sys-time # -ap.CFLAGS += -DUSE_SYS_TIME -ap.srcs += sys_time.c $(SRC_ARCH)/sys_time_hw.c -#ap.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC(1./512.)' -ap.CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC((1./60.))' -ifeq ($(ARCHI), stm32) -ap.CFLAGS += -DSYS_TIME_LED=1 -DPERIPHERALS_AUTO_INIT -endif - -# -# FlyByWire Main -# -ap.CFLAGS += -DFBW -ap.srcs += $(SRC_FIXEDWING)/main_fbw.c - -# -# AutoPilot Main -# -ap.CFLAGS += -DAP -ap.srcs += $(SRC_FIXEDWING)/main_ap.c -ap.srcs += $(SRC_FIXEDWING)/estimator.c +$(TARGET).srcs += sys_time.c # # InterMCU & Commands # -ap.CFLAGS += -DINTER_MCU -ap.srcs += $(SRC_FIXEDWING)/inter_mcu.c -ap.srcs += $(SRC_FIXEDWING)/commands.c +$(TARGET).CFLAGS += -DINTER_MCU +$(TARGET).srcs += $(SRC_FIXEDWING)/inter_mcu.c + +###################################################################### +## +## COMMON FOR ALL NON-SIMULATION TARGETS +## + +# +# Interrupt Vectors +# + +ifeq ($(ARCHI), arm7) + ns_srcs += $(SRC_ARCH)/armVIC.c +else ifeq ($(ARCHI), stm32) + ns_srcs += $(SRC_ARCH)/stm32_exceptions.c + ns_srcs += $(SRC_ARCH)/stm32_vector_table.c + ns_CFLAGS += -DPERIPHERALS_AUTO_INIT +endif + +ifeq ($(ARCHI), stm32) + ns_srcs += lisa/plug_sys.c +endif + + +# +# Main +# + +ns_srcs += $(SRC_FIXEDWING)/main.c + +# +# LEDs +# + +ns_CFLAGS += -DUSE_LED +ifeq ($(ARCHI), stm32) + ns_CFLAGS += -DSYS_TIME_LED=1 +else + ns_CFLAGS += -DTIME_LED=1 +endif + +# +# Sys-time +# + +ns_CFLAGS += -DUSE_SYS_TIME +ns_CFLAGS += -DPERIODIC_TASK_PERIOD='SYS_TICS_OF_SEC((1./60.))' +ns_srcs += $(SRC_ARCH)/sys_time_hw.c + # # UARTS # -ap.srcs += $(SRC_ARCH)/uart_hw.c +ns_srcs += $(SRC_ARCH)/uart_hw.c + +# +# ANALOG +# ifeq ($(ARCHI), arm7) -ap.CFLAGS += -DADC -ap.srcs += $(SRC_ARCH)/adc_hw.c + ns_CFLAGS += -DADC + ns_srcs += $(SRC_ARCH)/adc_hw.c else ifeq ($(ARCHI), stm32) -ap.srcs += lisa/lisa_analog_plug.c + ns_srcs += lisa/lisa_analog_plug.c endif +###################################################################### +## +## FLY BY WIRE THREAD SPECIFIC +## + +fbw_CFLAGS += -DFBW +fbw_srcs += $(SRC_FIXEDWING)/main_fbw.c +fbw_srcs += $(SRC_FIXEDWING)/commands.c + +###################################################################### +## +## AUTOPILOT THREAD SPECIFIC +## + +ap_CFLAGS += -DAP +ap_srcs += $(SRC_FIXEDWING)/main_ap.c +ap_srcs += $(SRC_FIXEDWING)/estimator.c + + +###################################################################### +## +## SIMULATOR THREAD SPECIFIC +## + +sim.CFLAGS += $(fbw_CFLAGS) $(ap_CFLAGS) +sim.srcs += $(fbw_srcs) $(ap_srcs) + +sim.CFLAGS += -DSITL +sim.srcs += $(SRC_ARCH)/sim_ap.c + +sim.CFLAGS += -DDOWNLINK -DDOWNLINK_TRANSPORT=IvyTransport +sim.srcs += downlink.c datalink.c $(SRC_ARCH)/sim_gps.c $(SRC_ARCH)/ivy_transport.c $(SRC_ARCH)/sim_adc_generic.c + +###################################################################### +## +## Final Target Allocations +## + +# +# SINGLE MCU / DUAL MCU +# + +ifeq ($(BOARD),classix) + fbw.CFLAGS += -DMCU_SPI_LINK -DUSE_SPI -DSPI_SLAVE + fbw.srcs += $(SRC_FIXEDWING)/link_mcu.c $(SRC_FIXEDWING)/spi.c $(SRC_ARCH)/spi_hw.c + ap.CFLAGS += -DMCU_SPI_LINK -DUSE_SPI -DSPI_MASTER -DUSE_SPI_SLAVE0 + ap.srcs += $(SRC_FIXEDWING)/link_mcu.c $(SRC_FIXEDWING)/spi.c $(SRC_ARCH)/spi_hw.c +else + # Single MCU's run both + ap.CFLAGS += $(fbw_CFLAGS) + ap.srcs += $(fbw_srcs) +endif + +# +# No-Sim parameters +# + +fbw.CFLAGS += $(fbw_CFLAGS) $(ns_CFLAGS) +fbw.srcs += $(fbw_srcs) $(ns_srcs) + +ap.CFLAGS += $(ap_CFLAGS) $(ns_CFLAGS) +ap.srcs += $(ap_srcs) $(ns_srcs) + diff --git a/conf/autopilot/subsystems/fixedwing/gps_ublox_lea4p.makefile b/conf/autopilot/subsystems/fixedwing/gps_ublox_lea4p.makefile index 714c28f6c0..1dfa187565 100644 --- a/conf/autopilot/subsystems/fixedwing/gps_ublox_lea4p.makefile +++ b/conf/autopilot/subsystems/fixedwing/gps_ublox_lea4p.makefile @@ -7,3 +7,5 @@ ap.CFLAGS += -DUSE_UART$(GPS_UART_NR) ap.CFLAGS += -DUART$(GPS_UART_NR)_BAUD=$(GPS_BAUD) ap.srcs += $(SRC_FIXEDWING)/gps_ubx.c $(SRC_FIXEDWING)/gps.c $(SRC_FIXEDWING)/latlong.c + +sim.srcs += $(SRC_FIXEDWING)/gps.c $(SRC_FIXEDWING)/latlong.c diff --git a/conf/autopilot/subsystems/fixedwing/gps_ublox_lea5h.makefile b/conf/autopilot/subsystems/fixedwing/gps_ublox_lea5h.makefile index bb8e17ae39..480a7ddc8c 100644 --- a/conf/autopilot/subsystems/fixedwing/gps_ublox_lea5h.makefile +++ b/conf/autopilot/subsystems/fixedwing/gps_ublox_lea5h.makefile @@ -7,3 +7,5 @@ ap.CFLAGS += -DUSE_UART$(GPS_UART_NR) ap.CFLAGS += -DUART$(GPS_UART_NR)_BAUD=$(GPS_BAUD) ap.srcs += $(SRC_FIXEDWING)/gps_ubx.c $(SRC_FIXEDWING)/gps.c $(SRC_FIXEDWING)/latlong.c + +sim.srcs += $(SRC_FIXEDWING)/gps.c $(SRC_FIXEDWING)/latlong.c diff --git a/conf/autopilot/subsystems/fixedwing/gps_xsens.makefile b/conf/autopilot/subsystems/fixedwing/gps_xsens.makefile new file mode 100644 index 0000000000..5042fbd81e --- /dev/null +++ b/conf/autopilot/subsystems/fixedwing/gps_xsens.makefile @@ -0,0 +1,8 @@ +# XSens Mti-G + + +# ap.CFLAGS += -DGPS + +ap.srcs += $(SRC_FIXEDWING)/gps_xsens.c $(SRC_FIXEDWING)/gps.c $(SRC_FIXEDWING)/latlong.c + +sim.srcs += $(SRC_FIXEDWING)/gps.c $(SRC_FIXEDWING)/latlong.c diff --git a/conf/autopilot/subsystems/fixedwing/radio_control_ppm.makefile b/conf/autopilot/subsystems/fixedwing/radio_control_ppm.makefile index def5d7562b..59509d3b53 100644 --- a/conf/autopilot/subsystems/fixedwing/radio_control_ppm.makefile +++ b/conf/autopilot/subsystems/fixedwing/radio_control_ppm.makefile @@ -1,4 +1,17 @@ +NORADIO = False + +ifeq ($(BOARD),classix) + ifeq ($(TARGET),ap) + NODRADIO = True + endif +endif + + + +ifeq ($(NORADIO), False) + $(TARGET).CFLAGS += -DRADIO_CONTROL + $(TARGET).srcs += $(SRC_FIXEDWING)/radio_control.c $(SRC_ARCH)/ppm_hw.c +endif + -ap.CFLAGS += -DRADIO_CONTROL -ap.srcs += radio_control.c $(SRC_ARCH)/ppm_hw.c diff --git a/conf/boards/classix.makefile b/conf/boards/classix.makefile new file mode 100644 index 0000000000..52631bb52c --- /dev/null +++ b/conf/boards/classix.makefile @@ -0,0 +1,40 @@ +# +# classix.makefile +# +# http://paparazzi.enac.fr/wiki/Classix +# +# TODO: move all to new directories +# ARCH=lpc21 +ARCH=arm7 +ARCHI=arm7 + + +BOARD=classix +BOARD_VERSION=1.0 + +#BOARD_CFG=\"boards/$(BOARD)_$(BOARD_VERSION).h\" + +# TODO: update syntax +BOARD_CFG = \"classix.h\" + +ifndef FLASH_MODE +FLASH_MODE = IAP +endif + + +LPC21ISP_BAUD = 38400 +LPC21ISP_XTAL = 12000 + + +### default settings for classix +GPS_BAUD = B38400 + +# All targets on the TINY board run on the same processor achitecture +$(TARGET).ARCHDIR = $(ARCHI) +$(TARGET).ARCH = arm7tdmi +$(TARGET).TARGET = $(TARGET) +$(TARGET).TARGETDIR = $(TARGET) + +# Battery Voltage +fbw.CFLAGS += -DUSE_AD0 + diff --git a/conf/modules/ins_xsens_MTiG_fixedwing.xml b/conf/modules/ins_xsens_MTiG_fixedwing.xml new file mode 100644 index 0000000000..8890f859c9 --- /dev/null +++ b/conf/modules/ins_xsens_MTiG_fixedwing.xml @@ -0,0 +1,20 @@ + + + + + +
+ +
+ + + + + + + + + + +
+ diff --git a/sw/airborne/ap_downlink.h b/sw/airborne/ap_downlink.h index 061f8aa7ba..0bba0727d3 100644 --- a/sw/airborne/ap_downlink.h +++ b/sw/airborne/ap_downlink.h @@ -57,7 +57,7 @@ #define PERIODIC_SEND_ALIVE(_chan) DOWNLINK_SEND_ALIVE(_chan, 16, MD5SUM); #define PERIODIC_SEND_BAT(_chan) { \ - uint16_t zero; \ + uint16_t zero = 0; \ Downlink({ int16_t e = energy; \ DOWNLINK_SEND_BAT(_chan, \ &v_ctl_throttle_slewed, \