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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.