Forum: Compiler & IDEs SImulation AVR STUDIO Makefile ändern


von Kloster (Gast)


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/Disassembler.jpg


MfG GCC Neueinsteiger Kloster

von Kloster (Gast)


Angehängte Dateien:

Lesenswert?

Hier der Anhang

von Kloster (Gast)


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).*

von Oliver (Gast)


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

von Stefan E. (sternst)


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

von Oliver (Gast)


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

von Kloster (Gast)


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 :-(

von Kloster (Gast)


Lesenswert?

bin Gcc Neueinsteiger, hab nur ein vorhandenes Projekt kompiliert

von Stefan E. (sternst)


Lesenswert?

Hast du das Makefile geändert?

von Kloster (Gast)


Lesenswert?

Nein, es war von Anfang an so

von Kloster (Gast)


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

von Stefan E. (sternst)


Lesenswert?

Und hast du danach auch das komplette Projekt neu übersetzt?

von Kloster (Gast)


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
:-(

von Kloster (Gast)


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

von Stefan E. (sternst)


Lesenswert?

Kloster wrote:
> ja, habe ich.
>
> so steht es jetzt drin
> ...

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

von Kloster (Gast)


Lesenswert?

ja, rebild all habe ich gemacht

von Kloster (Gast)


Lesenswert?

und davor alles ordentlich abgespeichert

von Kloster (Gast)


Lesenswert?

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

Danke Stefan!!!
Wozu dient das Rebuild all?

von Stefan E. (sternst)


Lesenswert?

Kloster wrote:
> Wozu dient das Rebuild all?

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

von Kloster (Gast)


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)

von Stefan E. (sternst)


Lesenswert?

Hast du im Simulator auch den richtigen AVR-Typ ausgewählt?

von Kloster (Gast)


Lesenswert?

Jo, Das war der Fehler!
Jetz läuft die Simulation einwandfrei
Danke!

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.