Forum: Mikrocontroller und Digitale Elektronik AVR Studio + Simulation


von Neuling (Gast)


Lesenswert?

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

von Neuling (Gast)


Lesenswert?

hallo bin ich etwa der Enzige mit diesem Problem?

von Gregor B. (gregor54321)


Angehängte Dateien:

Lesenswert?

guckst Du Anhang...

von Neuling (Gast)


Angehängte Dateien:

Lesenswert?

ja so sollte es sein,

aber bei mir sieht es anders aus!

siehe Anhang

von PP (Gast)


Lesenswert?

Ausgabeformat des linkers richtig?
(muss irgendwas mit d für debuig sein, kann grad nicht nachschauen. Hex 
geht nicht)

von Johannes M. (johnny-m)


Lesenswert?

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

von Neuling (Gast)


Angehängte Dateien:

Lesenswert?

meinst du das hier? Siehe Anhang!

Bin irgend wie überfragt!!

von Neuling (Gast)


Lesenswert?

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!!!

von Johannes M. (johnny-m)


Lesenswert?

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)?

von Neuling (Gast)


Lesenswert?

oh genau so!
Aber das verstehe ich nicht was kann da Schief gelaufen sein?

von Johannes M. (johnny-m)


Lesenswert?

Neuling wrote:
> oh genau so!
Genau so wie was?

von Neuling (Gast)


Lesenswert?

genau die gleiche Fehlermeldungen meine ich

von Neuling (Gast)


Lesenswert?

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?

von Johannes M. (johnny-m)


Lesenswert?

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

von Neuling (Gast)


Lesenswert?

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

von Neuling (Gast)


Lesenswert?

das ist auch ein komischer Fehler habe ich bisher nicht gehabt:
make: *** [1Versuch.hex] Error 1

von Neuling (Gast)


Lesenswert?

Kann sein dass ich zum compelieren Administratorenrechte brauche?
Bin kapput!

Help!!

von Johannes M. (johnny-m)


Lesenswert?

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?

von Johannes M. (johnny-m)


Lesenswert?

Neuling wrote:
> Kann sein dass ich zum compelieren Administratorenrechte brauche?
> Bin kapput!
Normalerweise nicht...

von Johannes M. (johnny-m)


Lesenswert?

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.

von Neuling (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Johannes M. (johnny-m)


Lesenswert?

Tja, bei .rar hört meine Kooperationsbereitschaft leider auf...

von Neuling (Gast)


Angehängte Dateien:

Lesenswert?

Bei ZIP vielleicht

oder

von Neuling (Gast)


Angehängte Dateien:

Lesenswert?

oder .c

von Johannes M. (johnny-m)


Lesenswert?

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"...

von Neuling (Gast)


Angehängte Dateien:

Lesenswert?

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!!!

von Johannes M. (johnny-m)


Lesenswert?

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

von Neuling (Gast)


Lesenswert?

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!

von Johannes M. (johnny-m)


Lesenswert?

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

von Neuling (Gast)


Lesenswert?

ok danke für den Tipp

von Neuling (Gast)


Lesenswert?

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

von Johannes M. (johnny-m)


Lesenswert?

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

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.