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.
This commit is contained in:
parent
c4da1929cd
commit
5087e6c303
3 changed files with 25 additions and 13 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue