Skip to content
Snippets Groups Projects
Commit 5087e6c3 authored by Dean Camera's avatar Dean Camera
Browse files

Clean up HID EEPROM loader shim application code, simplify project makefile....

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.
parent c4da1929
No related branches found
No related tags found
No related merge requests found
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment