aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2016-04-03 11:35:25 +1000
committerDean Camera <dean@fourwalledcubicle.com>2016-04-03 11:35:25 +1000
commit3069b7d9d2a01f7f1e68722e722fa8e868154585 (patch)
tree6974559aae8c614e6c748f5b2d5e04ed0561ae5a /LUFA
parent9cca7a594f23f46d56ded6ab806235e3fc62055d (diff)
downloadlufa-3069b7d9d2a01f7f1e68722e722fa8e868154585.tar.gz
lufa-3069b7d9d2a01f7f1e68722e722fa8e868154585.tar.bz2
lufa-3069b7d9d2a01f7f1e68722e722fa8e868154585.zip
Update to latest DMBS version.
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/Build/DMBS/DMBS/atprogram.mk2
-rw-r--r--LUFA/Build/DMBS/DMBS/avrdude.mk7
-rw-r--r--LUFA/Build/DMBS/DMBS/core.mk2
-rw-r--r--LUFA/Build/DMBS/DMBS/gcc.mk6
-rw-r--r--LUFA/Build/DMBS/Readme.md4
5 files changed, 17 insertions, 4 deletions
diff --git a/LUFA/Build/DMBS/DMBS/atprogram.mk b/LUFA/Build/DMBS/DMBS/atprogram.mk
index de801b003..7e3815e4c 100644
--- a/LUFA/Build/DMBS/DMBS/atprogram.mk
+++ b/LUFA/Build/DMBS/DMBS/atprogram.mk
@@ -55,7 +55,7 @@ ERROR_IF_EMPTY ?= $(if $(strip $($(strip $(1)))), , $(error Makefile $(strip $
ERROR_IF_NONBOOL ?= $(if $(filter Y N, $($(strip $(1)))), , $(error Makefile $(strip $(1)) option must be Y or N))
# Default values of optionally user-supplied variables
-ATPROGRAM_PROGRAMMER ?= jtagice3
+ATPROGRAM_PROGRAMMER ?= atmelice
ATPROGRAM_INTERFACE ?= jtag
ATPROGRAM_PORT ?=
diff --git a/LUFA/Build/DMBS/DMBS/avrdude.mk b/LUFA/Build/DMBS/DMBS/avrdude.mk
index d9b4df048..149cf5c14 100644
--- a/LUFA/Build/DMBS/DMBS/avrdude.mk
+++ b/LUFA/Build/DMBS/DMBS/avrdude.mk
@@ -9,7 +9,7 @@
DMBS_BUILD_MODULES += AVRDUDE
DMBS_BUILD_TARGETS += avrdude avrdude-ee
DMBS_BUILD_MANDATORY_VARS += MCU TARGET
-DMBS_BUILD_OPTIONAL_VARS += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS
+DMBS_BUILD_OPTIONAL_VARS += AVRDUDE_PROGRAMMER AVRDUDE_PORT AVRDUDE_FLAGS AVRDUDE_MEMORY
DMBS_BUILD_PROVIDED_VARS +=
DMBS_BUILD_PROVIDED_MACROS +=
@@ -37,6 +37,8 @@ DMBS_BUILD_PROVIDED_MACROS +=
# AVRDUDE_PROGRAMMER - Name of programming hardware to use
# AVRDUDE_PORT - Name of communication port to use
# AVRDUDE_FLAGS - Flags to pass to avr-dude
+# AVRDUDE_MEMORY - Memory space to program application into (e.g.
+# "application" for an XMEGA DFU device)
#
# PROVIDED VARIABLES:
#
@@ -58,6 +60,7 @@ ERROR_IF_NONBOOL ?= $(if $(filter Y N, $($(strip $(1)))), , $(error Makefile $(s
AVRDUDE_PROGRAMMER ?= jtagicemkii
AVRDUDE_PORT ?= usb
AVRDUDE_FLAGS ?=
+AVRDUDE_MEMORY ?= flash
# Sanity check user supplied values
$(foreach MANDATORY_VAR, $(DMBS_BUILD_MANDATORY_VARS), $(call ERROR_IF_UNSET, $(MANDATORY_VAR)))
@@ -75,7 +78,7 @@ BASE_AVRDUDE_FLAGS := -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
# Programs in the target FLASH memory using AVRDUDE
avrdude: $(TARGET).hex $(MAKEFILE_LIST)
@echo $(MSG_AVRDUDE_CMD) Programming device \"$(MCU)\" FLASH using \"$(AVRDUDE_PROGRAMMER)\" on port \"$(AVRDUDE_PORT)\"
- avrdude $(BASE_AVRDUDE_FLAGS) -U flash:w:$< $(AVRDUDE_FLAGS)
+ avrdude $(BASE_AVRDUDE_FLAGS) -U $(AVRDUDE_MEMORY):w:$< $(AVRDUDE_FLAGS)
# Programs in the target EEPROM memory using AVRDUDE
avrdude-ee: $(TARGET).eep $(MAKEFILE_LIST)
diff --git a/LUFA/Build/DMBS/DMBS/core.mk b/LUFA/Build/DMBS/DMBS/core.mk
index 41992566d..bc85777a7 100644
--- a/LUFA/Build/DMBS/DMBS/core.mk
+++ b/LUFA/Build/DMBS/DMBS/core.mk
@@ -55,7 +55,7 @@ SHELL = /bin/sh
# Current DMBS release version
-DMBS_VERSION = 0.3
+DMBS_VERSION = 0.4
# Converts a given input to a printable output using "(None)" if no items are in the list
diff --git a/LUFA/Build/DMBS/DMBS/gcc.mk b/LUFA/Build/DMBS/DMBS/gcc.mk
index b9347a60b..f3c695502 100644
--- a/LUFA/Build/DMBS/DMBS/gcc.mk
+++ b/LUFA/Build/DMBS/DMBS/gcc.mk
@@ -192,6 +192,12 @@ BASE_C_FLAGS := -x c -O$(OPTIMIZATION) -std=$(C_STANDARD) -Wstrict-prototypes
BASE_CPP_FLAGS := -x c++ -O$(OPTIMIZATION) -std=$(CPP_STANDARD)
BASE_ASM_FLAGS := -x assembler-with-cpp
+# This flag is required for bootloaders as GCC will emit invalid jump table
+# assembly code for devices with large amounts of flash; the jump table target
+# is extracted from FLASH without using the correct ELPM instruction, resulting
+# in a pseudo-random jump target.
+BASE_CC_FLAGS += -fno-jump-tables
+
# Create a list of flags to pass to the linker
BASE_LD_FLAGS := -lm -Wl,-Map=$(TARGET).map,--cref -Wl,--gc-sections
ifeq ($(LINKER_RELAXATIONS), Y)
diff --git a/LUFA/Build/DMBS/Readme.md b/LUFA/Build/DMBS/Readme.md
index f5533a9ab..448db1e70 100644
--- a/LUFA/Build/DMBS/Readme.md
+++ b/LUFA/Build/DMBS/Readme.md
@@ -35,6 +35,10 @@ are included via a GNU Make `include` directive. While the DMBS `core` module is
always required, you can pick and choose what other modules you wish to add to
your user project.
+DMBS is also used in the LUFA Project which provides a
+[detailed documentation](http://www.fourwalledcubicle.com/files/LUFA/Doc/151115/html/_page__build_system.html)
+of DMBS.
+
Here's an example user makefile:
MCU = atmega128