diff options
| -rw-r--r-- | firmware/e300/battery/Makefile | 9 | ||||
| -rw-r--r-- | firmware/e300/battery/eeprom.c | 3 | 
2 files changed, 10 insertions, 2 deletions
| diff --git a/firmware/e300/battery/Makefile b/firmware/e300/battery/Makefile index 1ce0bf279..7f825cbd8 100644 --- a/firmware/e300/battery/Makefile +++ b/firmware/e300/battery/Makefile @@ -40,17 +40,18 @@ PROGRAMMER = jtag3isp  PORT = usb  AVRDUDE = avrdude -p $(MMCU) -c $(PROGRAMMER) -P $(PORT) -V  FUSES = -U hfuse:w:hfuse.hex:i -U lfuse:w:lfuse.hex:i -U efuse:w:efuse.hex:i -u +EEPROM = -U eeprom:w:$(TARGET).eeprom.hex  ##################################################  # Global Targets  ################################################## -all: $(TARGET).hex size hfuse.hex lfuse.hex efuse.hex +all: $(TARGET).hex $(TARGET).eeprom.hex size hfuse.hex lfuse.hex efuse.hex  clean:  	$(RM) *.o *.elf *.hex  install: all -	$(AVRDUDE) -U flash:w:$(TARGET).hex:i $(FUSES) +	$(AVRDUDE) -U flash:w:$(TARGET).hex:i $(FUSES) $(EEPROM)  size: $(TARGET).hex  	@$(SIZE) --format=SysV --mcu=$(MMCU) $(TARGET).elf @@ -74,6 +75,10 @@ efuse.hex: fuses.hex  $(TARGET).hex: $(TARGET).elf  	$(OBJCOPY) -R .eeprom -R .fuse -O ihex $< $@ +$(TARGET).eeprom.hex: $(TARGET).elf +	$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma \ +		.eeprom=0 -O ihex $(TARGET).elf $@ +  $(TARGET).elf: $(SRCS:.c=.o)  	$(CC) -mmcu=$(MMCU) $^ -o $@ diff --git a/firmware/e300/battery/eeprom.c b/firmware/e300/battery/eeprom.c index f8bc172d2..79b1f9052 100644 --- a/firmware/e300/battery/eeprom.c +++ b/firmware/e300/battery/eeprom.c @@ -16,6 +16,9 @@  #include "eeprom.h"  #include <avr/eeprom.h> +/* default values for eeprom */ +char eeprom[] EEMEM = {0x00, 0x00, 0x00}; +  /* the avr libc wants it this way ... */  static uint8_t* EEPROM_AUTOBOOT_OFFSET		= (uint8_t *) 0x00;  static uint16_t *EEPROM_LAST_FULL_OFFSET	= (uint16_t *) 0x04; | 
