Forum: Compiler & IDEs Makefile erzeugt keine brauchbare .cof Datei


von Axel Jeromin (Gast)


Lesenswert?

Hallo Zusammen,
hatte bis jetzt auf meinem alten PIII Winavr aus 2003 benutzt, konnte
auch prima debuggen (mit A Studio 3.56)

Nun hab ich 3Ghz, AVR Studio 4.11 und Winavr aus 2005
Ich habe das makefile aus Sampels kopiert, Target, MCU eingetragen und
weiter unten hinter build noch extcof angefügt. (wie in der Anleitung
beschrieben)

Wenn ich die .cof Datei mit Avr Studio öffne wird nur hexcode
angezeigt
Es erscheint unter anderem die Meldung:
Coordinator The object file does not contain source code information.

Ich bekomme den folgenden Output beim compilieren:


> "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.


Compiling: test.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL  -Os
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=test.lst  -std=gnu99 -MD -MP -MF
.dep/test.o.d test.c -o test.o

Linking: test.elf
avr-gcc -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=8000000UL  -Os
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=test.o  -std=gnu99 -MD -MP -MF
.dep/test.elf.d test.o --output test.elf -Wl,-Map=test.map,--cref
-lm

Creating load file for Flash: test.hex
avr-objcopy -O ihex -R .eeprom test.elf test.hex

Creating load file for EEPROM: test.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex test.elf test.eep

Creating Extended Listing: test.lss
avr-objdump -h -S test.elf > test.lss

Creating Symbol Table: test.sym
avr-nm -n test.elf > test.sym

Converting to AVR Extended COFF: test.cof
avr-objcopy --debugging --change-section-address .data-0x800000
--change-section-address .bss-0x800000 --change-section-address
.noinit-0x800000 --change-section-address .eeprom-0x810000  -O
coff-ext-avr test.elf test.cof
avr-objcopy: test.elf: no recognized debugging information

Size after:
test.elf  :
section           size      addr
.text              112         0
.data                0   8388704
.bss                 0   8388704
.noinit              0   8388704
.eeprom              0   8454144
.debug_aranges      20         0
.debug_pubnames     27         0
.debug_info        116         0
.debug_abbrev       65         0
.debug_line        161         0
.debug_str         103         0
Total              604


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

Program:     112 bytes (1.4% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)


-------- end --------


> Process Exit Code: 0

Liegt es an meinem Makefile?
Hätte vielleicht jemand ein funktionsfähiges für mich?


Vielen Dank im Voraus

Axel

von Matthias (Gast)


Lesenswert?

Hi

mit dem neuen AVRStudio und WINAVR kannst du mit ELF/DWARF2 debuggen
und brauchst keine COFF-Dateien mehr. Verwende einfach Mfile um deine
makefiles zu erstellen. Da kannst du dann alles nötige einstellen.

Matthias

von mthomas (Gast)


Lesenswert?

Im makefile ist offensichtlich DEBUG=dwarf-2 eingestellt (-gdwarf-2).
Dieses "Debug-Format" ist nicht kompatibel mit dem cof-Konverter. Wie
bereits gesagt: dwarf-2 ist die bessere Wahl auf MS-Systemen. Ansonsten
DEBUG=stabs im makefile.
http://www.mikrocontroller.net/wiki/AVR-GCC-Tutorial#Eingabedateien_zur_Simulation_in_AVR-Studio

von Axel Jeromin (Gast)


Lesenswert?

Hallo Matthias, Hallo Thomas,
mit der .elf Datei kann ich im AVR Studio die Simulation starten.

Danke für Eure Antworten

Grüße
Axel

von Volkmar (Gast)


Lesenswert?

@mthomas:

> Wie bereits gesagt: dwarf-2 ist die bessere Wahl auf MS-Systemen.

Würde ich nicht so stehen lassen. Bezogen auf AVRstudio gebe ich Dir
Recht, aber es gibt noch andere Tools zum Simulieren wie zB VMLAB die
dwarf-2 nicht unterstützen.

Volkmar

von mthomas (Gast)


Lesenswert?

"bessere" != "beste".
Das VMLAB besser ist, mag schon stimmen, ich kenne es nur "aus der
Werbung".

von Volkmar (Gast)


Lesenswert?

Mir ging es nicht um die Beurteilung ob AVRstudio oder VMLAB oder
welches Tool auch immer das Bessere ist. Mir fiel nur die pauschale
Darstellung auf. Und VMLAB war dabei nur ein Beispiel für ein Tool,
welches COFF (bzw. EXT-COF) benötigt.

Volkmar

von OldBug (Gast)


Lesenswert?

Wenn ich das richtig verstanden habe, dann ist (ext)cof eh kein
"Normiertes" Format, jeder kocht sein eigenes Süppchen und selbst
Atmel hat das eigene Süppchen nie richtig unterstützt...

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.