Forum: Compiler & IDEs avr-sizex: Unable to find the .eeprom section


von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Habe folgendes Problem:
Benutze avr-sizex habe die Einbindung wie beschrieben gemacht (Also exe 
in bin-Ordner und in der makefile die Änderungen).

Beim Compilieren sagt er dann:

avr-sizex: Unable to find the .eeprom section.
make.exe: *** [sizeafter] Error 3


Im Anhang hab ich mein makefile.

von Wolfgang (Gast)


Lesenswert?

Hab mal was anderes ausprobiert, und zwar statt folgenden code in der 
makefile:


# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -A $(TARGET).elf
SIZEX = avr-sizex --mcu=$(MCU) $(TARGET).elf

sizebefore:
  @echo
  @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); 
$(ELFSIZE); echo; fi

sizeafter:
  @echo
  @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); 
$(ELFSIZE); echo; fi ;$(SIZEX)


Wenn ich diesen hier verwende, funktioniert es zwar, ich hab aber eine 
andere anzeige und weiss nicht ob die stimmt:


# Display size of file.
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -A $(TARGET).elf
AVRMEM = avr-mem.sh $(TARGET).elf $(MCU)

sizebefore:
  @echo
  @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_BEFORE); 
$(ELFSIZE); \
  $(AVRMEM) 2>/dev/null; echo; fi

sizeafter:
  @echo
  @if test -f $(TARGET).elf; then echo; echo $(MSG_SIZE_AFTER); 
$(ELFSIZE); \
  $(AVRMEM) 2>/dev/null; echo; fi



Die andere Ausgabe des 2. codes sieht dann so aus:


AVR Memory Usage:
-----------------
Device: atmega8

Program:    7304 bytes (89.2% Full)
(.text + .data + .bootloader)

Data:        177 bytes (17.3% Full)
(.data + .bss + .noinit)


Stimmt diese Anzeige so auch oder ist die neuere besser?

mfg

von Rev (Gast)


Lesenswert?

Hi,

avr-sizex ist leider pingelig wenn eine der memory-sections nicht 
gefunden wird.
Dem kann man aber leicht abhelfen. In deinem Fall verwendest du einfach 
eine EEPROM dummy Variable, damit der compiler eine eeprom section 
anlegt.

Include mal den header
1
#include <avr/eeprom.h>
und Definiere die globale Variable
1
uint8_t dummyEE EEMEM;

Dann sollte nach erneutem kompilieren avr-sizex auch eine eeprom section 
finden :)

Rev

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.