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
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).*
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
>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
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 :-(
bin Gcc Neueinsteiger, hab nur ein vorhandenes Projekt kompiliert
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
Und hast du danach auch das komplette Projekt neu übersetzt?
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 :-(
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
Kloster wrote: > ja, habe ich. > > so steht es jetzt drin > ... Ich meine, ob du ein "Rebuild All" gemacht hast?
Jetzt Geht es auf einmal :-)) davor habe ich nur Build & Run gemacht Danke Stefan!!! Wozu dient das Rebuild all?
Kloster wrote:
> Wozu dient das Rebuild all?
"Build" übersetzt nur die C-Dateien, die sich verändert haben.
"Rebuild All" übersetzt bedingungslos alle.
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.