aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Build/HID_EEPROM_Loader
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2012-07-08 19:38:38 +0000
committerDean Camera <dean@fourwalledcubicle.com>2012-07-08 19:38:38 +0000
commit5087e6c3032e2f018c01a751961b94b65062208d (patch)
tree6f27d289bf0268846fbc8f60d02b2de17d460c4c /LUFA/Build/HID_EEPROM_Loader
parentc4da1929cd94a1e41d4aba662f2d0e09726066b5 (diff)
downloadlufa-5087e6c3032e2f018c01a751961b94b65062208d.tar.gz
lufa-5087e6c3032e2f018c01a751961b94b65062208d.tar.bz2
lufa-5087e6c3032e2f018c01a751961b94b65062208d.zip
Clean up HID EEPROM loader shim application code, simplify project makefile. Ensure shim application is properly rebuild by explicitly cleaning it before requesting a rebuild.
Diffstat (limited to 'LUFA/Build/HID_EEPROM_Loader')
-rw-r--r--LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c19
-rw-r--r--LUFA/Build/HID_EEPROM_Loader/makefile15
2 files changed, 23 insertions, 11 deletions
diff --git a/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c b/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c
index 812b1b24a..2d20153e0 100644
--- a/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c
+++ b/LUFA/Build/HID_EEPROM_Loader/HID_EEPROM_Loader.c
@@ -28,14 +28,27 @@
this software.
*/
+/** \file
+ *
+ * Special application to extract an EEPROM image stored in FLASH memory, and
+ * copy it to the device EEPROM. This application is designed to be used with
+ * the HID build system module of LUFA to program the EEPROM of a target device
+ * that uses the HID bootloader protocol, which does not have native EEPROM
+ * programming support.
+ */
+
#include <avr/io.h>
#include <avr/eeprom.h>
#include <avr/pgmspace.h>
/* References to the binary EEPROM data linked in the AVR's FLASH memory space */
-extern const char InputEEData[];
-extern const char InputEEData_size_sym[];
-#define InputEEData_size ((int)InputEEData_size_sym)
+extern const char _binary_InputEEData_bin_start[];
+extern const char _binary_InputEEData_bin_end[];
+extern const char _binary_InputEEData_bin_size[];
+
+/* Friendly names for the embedded binary data stored in FLASH memory space */
+#define InputEEData _binary_InputEEData_bin_start
+#define InputEEData_size ((int)_binary_InputEEData_bin_size)
int main(void)
{
diff --git a/LUFA/Build/HID_EEPROM_Loader/makefile b/LUFA/Build/HID_EEPROM_Loader/makefile
index 6cdd8cf0d..76058d3bf 100644
--- a/LUFA/Build/HID_EEPROM_Loader/makefile
+++ b/LUFA/Build/HID_EEPROM_Loader/makefile
@@ -13,7 +13,7 @@ MCU = at90usb1287
ARCH = AVR8
F_CPU = 1000000
F_USB = $(F_CPU)
-OPTIMIZATION = 0
+OPTIMIZATION = s
TARGET = HID_EEPROM_Loader
SRC = $(TARGET).c
LUFA_PATH = ../../../LUFA/
@@ -22,16 +22,15 @@ LD_FLAGS =
OBJECT_FILES = InputEEData.o
# Default target
-all: InputEEData.o hex
+all:
-.PHONY: InputEEData.o
+# Determine the AVR sub-architecture of the build main application object file
+FIND_AVR_SUBARCH = avr$(shell avr-objdump -f $(TARGET).o | grep architecture | cut -d':' -f3 | cut -d',' -f1)
+
+# Create a linkable object file with the input binary EEPROM data stored in the FLASH section
InputEEData.o: InputEEData.bin $(TARGET).o $(MAKEFILE_LIST)
@echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a object file \"$@\"
- avr-objcopy -I binary -O elf32-avr -B avr$(shell avr-objdump -f $(TARGET).o | grep architecture | cut -d':' -f3 | cut -d',' -f1) \
- --rename-section .data=.progmem.data,contents,alloc,readonly,data \
- --redefine-sym _binary_$(basename $@)_bin_start=$(basename $@) \
- --redefine-sym _binary_$(basename $@)_bin_size=$(basename $@)_size_sym \
- $< $@
+ avr-objcopy -I binary -O elf32-avr -B $(call FIND_AVR_SUBARCH) --rename-section .data=.progmem.data,contents,alloc,readonly,data $< $@
# Include LUFA build script makefiles
include $(LUFA_PATH)/Build/lufa.core.in