From 0e4b28266a7996e86f442ea521bc7cddef0c88a8 Mon Sep 17 00:00:00 2001 From: Theodore Ateba Date: Mon, 19 Feb 2018 20:47:40 +0000 Subject: AVR: Add a testhal demo for XMEGA128U4A for OSLIB test suite. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11509 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- testhal/AVR/XMEGA/TEST-SUITE-OSLIB/Makefile | 321 ++++++++++++++++++++++++++++ 1 file changed, 321 insertions(+) create mode 100644 testhal/AVR/XMEGA/TEST-SUITE-OSLIB/Makefile (limited to 'testhal/AVR/XMEGA/TEST-SUITE-OSLIB/Makefile') diff --git a/testhal/AVR/XMEGA/TEST-SUITE-OSLIB/Makefile b/testhal/AVR/XMEGA/TEST-SUITE-OSLIB/Makefile new file mode 100644 index 000000000..385c2e2b0 --- /dev/null +++ b/testhal/AVR/XMEGA/TEST-SUITE-OSLIB/Makefile @@ -0,0 +1,321 @@ + +############################################################################## +# +# @file Makefile. +# +# @brief AVR Make file, it can be use to build, and program an application to +# an AVR MCU like atmega328p, atmega2560 and so on. +# +# @author Theodore Ateba, tf.ateba@gmail.com +# +############################################################################## + +############################################################################## +# Building and programming global options. +# NOTE: Can be overridden externally. +# + +# Compiler options here. +ifeq ($(USE_OPT),) + USE_OPT = -O2 +endif + +# C specific options here (added to USE_OPT). +ifeq ($(USE_COPT),) + USE_COPT = +endif + +# C++ specific options here (added to USE_OPT). +ifeq ($(USE_CPPOPT),) + USE_CPPOPT = +endif + +# Enable this if you want to see the full log while compiling. +ifeq ($(USE_VERBOSE_COMPILE),) + USE_VERBOSE_COMPILE = no +endif + +# If enabled, this option makes the build process faster by not compiling +# modules not used in the current configuration. +ifeq ($(USE_SMART_BUILD),) + USE_SMART_BUILD = yes +endif + +# If enable, this option arase the counter cycle after device programming. +ifeq ($(USE_AVRDUDE_ERASE_COUNTER),) + USE_AVRDUDE_ERASE_COUNTER = no +endif + +# If enable, this option perform a verification after device programming. +ifeq ($(USE_AVRDUDE_NO_VERIFY),) + USE_AVRDUDE_NO_VERIFY = no +endif + +# If enabled, this option increase the programming verbosity level. +ifeq ($(USE_VERBOSE_PROGRAMMATION),) + USE_VERBOSE_PROGRAMMATION = no +endif + +# Enable this if you want to use AVRDUDE programmer. +ifeq ($(USE_AVRDUDE_PROGRAMMER),) + USE_AVRDUDE_PROGRAMMER = no +endif + +# Enable this if you want to use DFU programmer. +ifeq ($(USE_DFU_PROGRAMMER),) + USE_DFU_PROGRAMMER = yes +endif + +# Enable this if you want to use MICRONUCLEUS programmer. +ifeq ($(USE_MICRONUCLEUS_PROGRAMMER),) + USE_MICRONUCLEUS_PROGRAMMER = no +endif + +# +# Building and programming global options. +############################################################################## + +############################################################################## +# Project, sources and paths. +# + +# Define project name here. +PROJECT = ch + + +# Imported source files and paths +CHIBIOS = ../../../.. +# HAL-OSAL files (optional). +include $(CHIBIOS)/os/hal/hal.mk +include $(CHIBIOS)/os/hal/boards/MT-DB-X4/board.mk +include $(CHIBIOS)/os/hal/ports/AVR/XMEGA/ATXMEGAxxxA4U/platform.mk +include $(CHIBIOS)/os/hal/osal/rt/osal.mk +# RTOS files (optional). +include $(CHIBIOS)/os/rt/rt.mk +include $(CHIBIOS)/os/common/ports/AVR/compilers/GCC/mk/port.mk +# Other files (optional). +include $(CHIBIOS)/test/lib/test.mk +include $(CHIBIOS)/test/oslib/oslib_test.mk + +#include $(CHIBIOS)/os/hal/lib/streams/streams.mk + +# List C source files here. (C dependencies are automatically generated.) +CSRC = $(KERNSRC) \ + $(PORTSRC) \ + $(OSALSRC) \ + $(HALSRC) \ + $(PLATFORMSRC) \ + $(BOARDSRC) \ + $(CHIBIOS)/os/various/evtimer.c \ + $(TESTSRC) \ + main.c + +# List C++ sources file here. +CPPSRC = + +INCDIR = $(CHIBIOS)/os/license $(PORTINC) $(KERNINC) \ + $(HALINC) $(OSALINC) $(PLATFORMINC) $(TESTINC) \ + $(BOARDINC) $(CHIBIOS)/os/various + +# +# Project, sources and paths. +############################################################################## + +############################################################################## +# Compiler settings. +# + +# Micro-Controller Unit. +MCU = atxmega128a4u + +# MCU frequency (Hz). +F_CPU = 32000000 + +# Output format. (can be srec, ihex, binary) +FORMAT = ihex + +# C and C++ Compiler name. +TRGT = avr- +CC = $(TRGT)gcc +CPPC = $(TRGT)g++ + +# Enable loading with g++ only if you need C++ runtime support. +# NOTE: You can use C++ even without C++ support if you are careful. C++ +# runtime support makes code size explode. +LD = $(TRGT)gcc +CP = $(TRGT)objcopy +AR = $(TRGT)ar rcs +OD = $(TRGT)objdump +NM = $(TRGT)nm +SZ = $(TRGT)size +HEX = $(CP) -O ihex +BIN = $(CP) -O binary + +# Size of the elf binary file. +ELFSIZE = $(SZ) --mcu=$(MCU) --format=avr $(BUILDDIR)/$(PROJECT).elf + +# MCU specific options here. +MOPT = + +# Define C warning options here. +CWARN = -Wall -Wstrict-prototypes + +# Define C++ warning options here. +CPPWARN = + +# +# Compiler settings. +############################################################################## + +############################################################################## +# Start of user section. +# + +# List all user C define here, like -D_DEBUG=1. +UDEFS = + +# Define ASM defines here. +UADEFS = + +# List all user directories here. +UINCDIR = + +# List the user directory to look for the libraries here. +ULIBDIR = + +# List all user libraries here. +ULIBS = + +# +# End of user defines. +############################################################################## + +############################################################################## +# Start of programming Options. +# + +# List of available AVR programmer. +AVRDUDE_PROGRAMMER = avrdude +AVRDUDE_PROGRAMMER_ID = wiring +DFU_PROGRAMMER = dfu-programmer +MICRONUCLEUS = micronucleus + +# Set the AVR programmer according to the selection.. +ifeq ($(USE_AVRDUDE_PROGRAMMER),yes) + AVR_PROGRAMMER = $(AVRDUDE_PROGRAMMER) +else ifeq ($(USE_DFU_PROGRAMMER),yes) + AVR_PROGRAMMER = $(DFU_PROGRAMMER) +else ifeq ($(USE_MICRONUCLEUS_PROGRAMMER),yes) + AVR_PROGRAMMER = $(MICRONUCLEUS_PROGRAMMER) +else + $(error ERROR: Please you need to configure the AVR programmer!) +endif + +# AVR serial port. +AVRDUDE_PORT = /dev/ttyUSB0 + +AVRDUDE_WRITE_FLASH = -D -U flash:w:$(BUILDDIR)/$(PROJECT).hex + +# Check if the counter cycle erase must be performed after device programming. +ifeq ($(USE_AVRDUDE_ERASE_COUNTER),yes) + AVRDUDE_ERASE_COUNTER = -y +endif + +# Check if a verification must be performed after device programming. +ifeq ($(USE_AVRDUDE_NO_VERIFY),no) + AVRDUDE_NO_VERIFY = -V +endif + +# Check verbosity level activation. +ifeq ($(USE_VERBOSE_PROGRAMMATION),yes) + AVRDUDE_VERBOSE = -v -v +endif + +# AVR programmer flags for AVRDUDE programmer. +ifeq ($(AVR_PROGRAMMER),$(AVRDUDE_PROGRAMMER)) +AVRDUDE_FLAGS = -p $(MCU) +AVRDUDE_FLAGS += -P $(AVRDUDE_PORT) +AVRDUDE_FLAGS += -b 115200 +AVRDUDE_FLAGS += -c $(AVRDUDE_PROGRAMMER_ID) +AVRDUDE_FLAGS += $(AVRDUDE_NO_VERIFY) +AVRDUDE_FLAGS += $(AVRDUDE_VERBOSE) +AVRDUDE_FLAGS += $(AVRDUDE_ERASE_COUNTER) +endif + +# AVR programmer flags for DFU programmer. +ifeq ($(AVR_PROGRAMMER),$(DFU_PROGRAMMER)) +DFU_WRITE_FLASH = flash --force +DFU_ERASE_FLASH = erase +DFU_RESET=reset +endif + +# AVR programmer flags for MICRONUCLEUS programmer. +ifeq ($(AVR_PROGRAMMER),$(MICRONUCLEUS_PROGRAMMER)) +MICRONUCLEUS_TIMEOUT_ARG = --timeout 60 +MICRONUCLEUS_RUN_ARG = --run +MICRONUCLEUS_TYPE_ARG = --type raw +MICRONUCLEUS_DUMP_PROGRESS = --dump-progress +MICRONUCLEUS_FLAGS=$(MICRONUCLEUS_TYPE_ARG) +MICRONUCLEUS_FLAGS+=$(MICRONUCLEUS_TIMEOUT_ARG) +MICRONUCLEUS_FLAGS+=$(MICRONUCLEUS_RUN_ARG) +endif + +# +# End of Programming Options. +############################################################################## + +############################################################################## +# Include file. +# + +RULESPATH = $(CHIBIOS)/os/common/ports/AVR/compilers/GCC +include $(RULESPATH)/rules.mk + +# +# End of include file. +############################################################################## + +############################################################################## +# Programming rules +# + +# AVRDUDE programming rules. +ifeq ($(AVR_PROGRAMMER),$(AVRDUDE_PROGRAMMER)) +program: $(BUILDDIR)/$(PROJECT).hex + @echo + @echo Programming $(MCU) device. + $(AVR_PROGRAMMER) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $< + @echo Done. +endif + +# DFU programming rules. +ifeq ($(AVR_PROGRAMMER),$(DFU_PROGRAMMER)) +program: $(BUILDDIR)/$(PROJECT).hex + @echo + @echo Programming $(MCU) device. + $(AVR_PROGRAMMER) $(MCU) $(DFU_ERASE_FLASH) + $(AVR_PROGRAMMER) $(MCU) $(DFU_WRITE_FLASH) $< + $(AVR_PROGRAMMER) $(MCU) $(DFU_RESET) + @echo Done. + +erase: + @echo + @echo Erasing $(MCU) device. + $(AVR_PROGRAMMER) $(MCU) $(DFU_ERASE_FLASH) + @echo Done. +endif + +# MICRONUCLEUS programming rules. +ifeq ($(AVR_PROGRAMMER),$(MICRONUCLEUS_PROGRAMMER)) +program: $(BUILDDIR)/$(PROJECT).bin + @echo + @echo Programming $(MCU) device. + $(AVR_PROGRAMMER) $(MICRONUCLEUS_FLAGS) $< + @echo Done. +endif + +# +# End of programming rules. +############################################################################## + +# EOF -- cgit v1.2.3