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.

pull/1469/head
Dean Camera 13 years ago
parent c4da1929cd
commit 5087e6c303

@ -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)
{

@ -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

@ -72,7 +72,7 @@ hid-ee: $(TARGET).eep $(MAKEFILE_LIST)
@echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a binary file \"InputEEData.bin\"
avr-objcopy -I ihex -O binary $< $(patsubst %/,%,$(LUFA_PATH))/Build/HID_EEPROM_Loader/InputEEData.bin
@echo $(MSG_MAKE_CMD) Making EEPROM loader application for \"$<\"
make -C $(patsubst %/,%,$(LUFA_PATH))/Build/HID_EEPROM_Loader/ MCU=$(MCU) hid clean
make -C $(patsubst %/,%,$(LUFA_PATH))/Build/HID_EEPROM_Loader/ MCU=$(MCU) clean hid
hid-teensy: $(TARGET).hex $(MAKEFILE_LIST)
@echo $(MSG_HID_BOOTLOADER_CMD) Programming FLASH with teensy_loader_cli using \"$<\"
@ -82,7 +82,7 @@ hid-teensy-ee: $(TARGET).hex $(MAKEFILE_LIST)
@echo $(MSG_OBJCPY_CMD) Converting \"$<\" to a binary file \"InputEEData.bin\"
avr-objcopy -I ihex -O binary $< $(patsubst %/,%,$(LUFA_PATH))/Build/HID_EEPROM_Loader/InputEEData.bin
@echo $(MSG_MAKE_CMD) Making EEPROM loader application for \"$<\"
make -s -C $(patsubst %/,%,$(LUFA_PATH))/Build/HID_EEPROM_Loader/ MCU=$(MCU) hid-teensy clean
make -s -C $(patsubst %/,%,$(LUFA_PATH))/Build/HID_EEPROM_Loader/ MCU=$(MCU) clean hid-teensy
# Phony build targets for this module
.PHONY: hid hid-ee hid-teensy hid-teensy-ee

Loading…
Cancel
Save