SImulation AVR STUDIO Makefile ändern

Gast #992808
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
Gast
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).*
Gast
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
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
Gast
>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
Gast
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 :-(
Gast
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
:-(
Gast
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
Gast
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)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.