Hallo Leute,
mal kurz eine andere Frage!
wie kann ich es beinflußen, dass ich bei der Simulation mein in C
geschriebenes Programm sehe und nicht assembler, welcher von C in
Assembler von Compiler übersetzt wurde?
Es ist so, dass bei manchen Projekten wenn ich auf Compelieren und Run
drücke, kommt ein C-Programm in Simuklation. Bei anderen Projekten kommt
dann Assembler für die Simulation. Was muss ich einstellen damit immer
nur C-Programm in Simulation erscheint.
Gruß und Danke
Neuling wrote:
> ja so sollte es sein,>> aber bei mir sieht es anders aus!
Du hast Dir Gregors Posting nicht genau genug angeschaut! Du sollst auf
"Toggle Disassembler Window" klicken, damit das Disassembler-Fenster
verschwindet. Du kannst aber auch ganz einfach zwischen dem
Disassembler-Window und der .c-Datei wechseln, indem Du einfach auf den
entsprechenden Tab unten klickst...
ich habe Gregors Posting schon verstanden aber, wenn ich dort TAB
umschalte dann kommt bei mir nur das C-Programm mehr nicht und wenn ich
im C-Programm auf z.B. Step Into drücke, dann passiert nichts!!!
Da ist bei Dir aber auch irgendwas schiefgelaufen. Schau mal in Dein
Message Window (Posting von 13:05): Da steht "The object file does not
contain source code information". Wie sieht es denn bei den Projekten,
mit denen es nicht klappt, überhaupt mit Fehler- bzw. Warnmeldungen aus
(Build-Fenster)?
was bedeutet dieser Fehler:
Coordinator: The object file does not contain source code information.
Ich meine ich verstehe den Satz aber, keine Ahnung warum es so ist?!
Kann mir jemand helfen?
Neuling wrote:
> was bedeutet dieser Fehler:> Coordinator: The object file does not contain source code information.
Das bedeutet, dass die Objekt-Datei keine Source-Code-Informationen
enthält...
Du hast mich oben aber anscheinend nicht richtig verstanden (bzw. mein
Posting nicht komplett gelesen): Ich habe extra geschrieben, Du sollst
erzählen, ob (und wenn ja, welche) Fehler- bzw. Warnmeldungen im
Build-Fenster auftauchen. Das was Du da schreibst, steht im
Message-Fenster und das kann ich in Deinem Bildchen selber lesen...
Oh Sorry,
Das kommt beim compilieren heraus!
Build started 26.11.2007 at 16:42:31
-------- begin --------
avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
Copyright (C) 2006 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: 1Versuch.c
rsuch.o
Linking: 1Versuch.elf
1Versuch.elf -Wl,-Map=1Versuch.map,--cref -lm
Creating load file for Flash: 1Versuch.hex
avr-objcopy -Oihex -R .eeprom 1Versuch.elf 1Versuch.hex
avr-objcopy: 1Versuch.hex: Invalid bfd target
make: *** [1Versuch.hex] Error 1
Build succeeded with 0 Warnings...
das ist das Programm:
#include <avr/io.h>
int main(void)
{
/* Setzt das Richtungsregister des Ports A auf 0xff
(alle Pins als Ausgang): */
DDRB = 0xff;
/* Setzt PortA auf 0x03, Bit 0 und 1 "high", restliche "low": */
PORTB = 0x00;
}
Gruß und Danke
So, da bin ich wieder...
Das oben sieht nach einem Linker-Fehler aus. Da stimmt vermutlich
irgendwas in Deinem Code nicht!
> das ist auch ein komischer Fehler habe ich bisher nicht gehabt:> make: *** [1Versuch.hex] Error 1
Den hast Du wahrscheinlich schon gehabt, nur übersehen... Bist aber
nicht der erste, dem das passiert. Genau deswegen hatte ich nämlich
gefragt, was im Build-Fenster steht.
EDIT:
OK, an dem bisschen Code wirds wohl nicht liegen. Aber möglicherweise an
den Projekt-Einstellungen. Ist die korrekte Ziel-CPU in den
Configuration Options eingestellt?
Aaaah, versuchs mal bitte mit einem Dateinamen, der nicht mit einer
Ziffer beginnt! Das dürfte die Ursache für das "invalid target" sein.
Gewöhn Dir auch besser gleich wieder ab (auch wenn WINDOOF es zulässt),
irgendwelche Bezeichner zu benutzen, die mit einer Ziffer beginnen.
Normalerweise sollten Namen immer mit einem Buchstaben oder einem
Underscore ("_") beginnen.
Hallo,
Sorry das ich mich so lange nicht gemeldet habe. War leider verhindert.
@Johannes M.
Danke für dein Tipp mit Zahlen am Anfang. Also es hat funktioniert.
Ein kleines Projekt hat bei mir funktioniert, jetzt versuche ich dieses
Projekt, siehe Anhang, zu simulieren, leider genau das gleiche Problemm.
Irgendwie verstehe ich das nicht ganz.
Neuling wrote:
> oder .c
Warum nicht gleich so? Aber die (Fehler-)Meldungen aus dem Build-Fenster
solltest Du noch schicken...
Abgesehen davon sind einige Sachen in dem Code veraltet und werden nur
noch mit viel gutem Willen von aktuellen WINAVR-Versionen unterstützt.
Dazu gehört die nicht mehr existente signal.h und das Makro "SIGNAL",
sowie die delay.h, die mittlerweile im Verzeichnis "util" schlummert und
nicht mehr in "avr"...
Oh ok, nicht gut! Muss irgendwie umschreiben! Ohee!
NAch Compelieren und Run steht folgendes!
Build started 27.11.2007 at 08:52:32
-------- begin --------
avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
Copyright (C) 2006 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.
Size before:
AVR_SPS.elf :
section size addr
.text 2644 0
.bss 21 8388704
.stab 3252 0
.stabstr 2492 0
Total 8409
Creating load file for EEPROM: AVR_SPS.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O ihex AVR_SPS.elf AVR_SPS.eep
c:\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be
copied!
c:\WinAVR-20070525\bin\avr-objcopy.exe: --change-section-lma
.eeprom=0x00000000 never used
make: [AVR_SPS.eep] Error 1 (ignored)
Size after:
AVR_SPS.elf :
section size addr
.text 2644 0
.bss 21 8388704
.stab 3252 0
.stabstr 2492 0
Total 8409
-------- end --------
Build succeeded with 0 Warnings...
Das Fenster was danach erscheint Siehe oben!
Danke für deine Mühe!!!
> make: [AVR_SPS.eep] Error 1 (ignored)
Auch wenn da steht, dass der Fehler ignoriert wird, so ist er doch
fatal. Es wurde nämlich keine Objektdatei erzeugt, und dementsprechend
gibts auch nix zu simulieren...
das heist das ich diesen Code überarbeiten muss um es simulieren zu
können? Denke ich das jetzt richtig!
Oh man ich wollte eigetlich über diesen Code ganz vertshen wie es
funktioniert!
Neuling wrote:
> das heist das ich diesen Code überarbeiten muss um es simulieren zu> können?
Zumindest die o.g. Kleinigkeiten sollten schon geändert werden. Hab grad
keine Zeit, mir den kompletten Code en détail anzusehen, aber wenigstens
die signal.h rauswerfen, "SIGNAL" durch "ISR" ersetzen (die Vektornamen
sind zwar auch veraltet, werden aber noch unterstützt) und den Pfad von
"avr/delay.h" nach "util/delay.h" ändern. Dann sollte es zumindest keine
Kompatibilitätsprobleme mehr geben. Ob's dann läuft, weiß ich aber auch
nicht...
Also ich habe jetzt den Code so geändert, wie du es mir gesagt hast. Das
oben genannte Problemm ist nicht mehr da. Der Simulationsfenster ist
immer noch der gleiche, aber jetzt schreibt der Compiler folgendes hin!!
Was kann das bedeuten? Sorry das ich nerve.
Build started 27.11.2007 at 10:25:13
-------- begin --------
avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
Copyright (C) 2006 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.
Size before:
AVR Memory Usage
----------------
Device: atmega8
Program: 652 bytes (8.0% Full)
(.text + .data + .bootloader)
Data: 21 bytes (2.1% Full)
(.data + .bss + .noinit)
Creating load file for EEPROM: AVR_SPS.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 --no-change-warnings -O ihex
AVR_SPS.elf AVR_SPS.eep || exit 0
c:\WinAVR-20070525\bin\avr-objcopy.exe: there are no sections to be
copied!
Size after:
AVR Memory Usage
----------------
Device: atmega8
Program: 652 bytes (8.0% Full)
(.text + .data + .bootloader)
Data: 21 bytes (2.1% Full)
(.data + .bss + .noinit)
-------- end --------
Build succeeded with 0 Warnings...
Nun, das Projekt ist offensichtlich für einen AT90S2313 geschrieben
(steht zumindest im Kopf des Programmtextes). Wenn Du das Projekt
komplett übernommen hast (ohne irgendwas an Projektdatei oder Makefile
zu ändern), dann ist es auch für den 90S2313 compiliert worden. Dann
kannst Du aber auch nicht erwarten, dass das beim Simulieren mit einem
ATMega8 funktioniert. Der ist schließlich ganz was anderes...