mikrocontroller.net

Forum: Compiler & IDEs SImulation AVR STUDIO Makefile ändern


Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!
Hab 2 Fragen an euch

 1)Was muss ich im Makefile im Projekt(oben)ändern, damit ich im
   AVR Studio den C-Code angezeigt bekomme ?

 2)Was muss ich eintragen um alles so angezeigt zu bekommen?
  http://www.mikrocontroller.net/attachment/28627/Di...


MfG GCC Neueinsteiger Kloster

Autor: Kloster (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier der Anhang

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier nochmal der Inhalt des Makefile

######################################################################## 
#######

## General Flags
PROJECT = cdcio

MCU = atmega8


## 16500000 is for attiny45/85/461/861 only (RC+PLL mode)
CLK = 12000000UL


TARGET = $(PROJECT).elf
CC = avr-gcc.exe

## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU) -DF_CPU=$(CLK)

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -O3 -fsigned-char

## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += -x assembler-with-cpp -Wa,

## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS +=  -Wl,-Map=$(PROJECT).map


## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom


## Include Directories
INCLUDES = -I"." -I"..\usbdrv" -I"..\."

## Objects that must be built in order to link
OBJECTS = usbdrv.o usbdrvasm.o main.o oddebug.o

## Objects explicitly added by the user
LINKONLYOBJECTS =

## Build
all: $(TARGET) $(PROJECT).hex $(PROJECT).lss size

## Compile
usbdrv.o: ../usbdrv/usbdrv.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

usbdrvasm.o: ../usbdrv/usbdrvasm.S
  $(CC) $(INCLUDES) $(ASMFLAGS) -c  $<

main.o: ../main.c
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

##Link
$(TARGET): $(OBJECTS)
   $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o 
$(TARGET)

%.hex: $(TARGET)
  avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@

%.lss: $(TARGET)
  avr-objdump -h -S $< > $@

size: ${TARGET}
  @echo
  @avr-size -C --mcu=${MCU} ${TARGET}

## Clean target
.PHONY: clean
clean:
  -rm -rf $(OBJECTS) $(PROJECT).*

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a)
Vermutlich nix (Ich verstehe die Frage aber nicht)

b)
nix. Das makefile hat damit nichts zu tun.
Das Programm mit build compilieren und linken, dann im Debug-Menu "Start 
Debugger" auswählen. Da sollte jetzt der C-Code der main-Funktion 
sichtbar sein, mit dem gelben Pfeil auf der ersten Klammer von main. Das 
Disassembler-Listing bekommt man danach im Menu View unter 
"Disassembler".

Oliver

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver wrote:

> b)
> nix. Das makefile hat damit nichts zu tun.

Natürlich hat das Makefile damit zu tun. Wenn beim Übersetzen den 
Objekt-Dateien keine Debug-Infos hinzugefügt werden, kann der Debugger 
auch keine C-Source-Zeilen zuordnen.


@ Kloster:

Wenn du AVR-Studio das Makefile erstellen lässt, dann füge "-gdwarf-2" 
zu den Custom-Options für [All files] hinzu.

Wenn du das Makefile selber verwaltest, dann füge folgendes hinzu:
CFLAGS += -gdwarf-2
ASMFLAGS += -gdwarf-2

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Natürlich hat das Makefile damit zu tun. Wenn beim Übersetzen den
>Objekt-Dateien keine Debug-Infos hinzugefügt werden, kann der Debugger
>auch keine C-Source-Zeilen zuordnen.

Da hast du natürlich Recht.

>Wenn du AVR-Studio das Makefile erstellen lässt, dann füge "-gdwarf-2"
>zu den Custom-Options für [All files] hinzu.

Das sollte da nach anlegen eines neuen Projektes aber schon drinstehen.

Oliver

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein Problem ist, das nur ein Disassembler Fenster aufspringt wenn ich 
Build und Run drücke.
Ich kann zwar Simulieren,aber ich sehe nicht welcher Teil des C Code 
gerade simuliert wird :-(

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bin Gcc Neueinsteiger, hab nur ein vorhandenes Projekt kompiliert

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du das Makefile geändert?

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, es war von Anfang an so

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich meine, Ich habe es geändert, wie du gesagt hast,
trotzdem keine Änderung :-( auch wenn ich die cdcio.elf mit dem AVR 
Studo öffne

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und hast du danach auch das komplette Projekt neu übersetzt?

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, habe ich.

so steht es jetzt drin

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -O3 -fsigned-char
CFLAGS += -gdwarf-2


## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += -x assembler-with-cpp -Wa,
ASMFLAGS += -gdwarf-2

immer wieder diesesdisassembler Fenster
:-(

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, habe ich.

so steht es jetzt drin

## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -O3 -fsigned-char
CFLAGS += -gdwarf-2


## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += -x assembler-with-cpp -Wa,
ASMFLAGS += -gdwarf-2

immer wieder diesesdisassembler Fenster

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kloster wrote:
> ja, habe ich.
>
> so steht es jetzt drin
> ...

Ich meine, ob du ein "Rebuild All" gemacht hast?

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, rebild all habe ich gemacht

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und davor alles ordentlich abgespeichert

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt Geht es auf einmal :-))
davor habe ich nur Build & Run gemacht

Danke Stefan!!!
Wozu dient das Rebuild all?

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kloster wrote:
> Wozu dient das Rebuild all?

"Build" übersetzt nur die C-Dateien, die sich verändert haben.
"Rebuild All" übersetzt bedingungslos alle.

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt Habe ich Was Neues!

Während der Simulation verändert sich nichts im Input/Output Fenster
(Ich kann nicht sehen Welche Bits bei den DDRs PORTs gesetzt oder 
gelöscht werden, obwohl der Inhalt der Register r0-r16 sich ändert)

Autor: Stefan Ernst (sternst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du im Simulator auch den richtigen AVR-Typ ausgewählt?

Autor: Kloster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, Das war der Fehler!
Jetz läuft die Simulation einwandfrei
Danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.