www.mikrocontroller.net

Forum: Compiler & IDEs simulavr und avr-gdb


Autor: Andreas Klafft (lowrider)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo MCF's (Micro Controller Fans),

habe da ein dickes Problem bei meiner Entwicklungsumgebung.

Ich arbeite unter SuSE 11.3.

Ich habe mir jetzt Eclipse installiert (funzt super).

Zum Debuggen, was bei AVR ein echtes Thema zu sein scheint, habe ich mir 
AVR-GDB (Version 6.8) und simulavr (Version 0.1.2.6-4.3) aus den 
SuSE-Repos installiert.

Leider funktioniert das Zusammenspiel der Programme nicht. Ich habe 
danach schon gegoogelt und auch hier im Forum schon einiges gefunden, 
was aber nicht zu einer Lösung geführt hat. was passiert:

Ich rufe simulavr mit folgendem Kommando auf:
simulavr -g -p 1212 -P simulavr-disp -d atmega8

Dann starte ich den GDB mit
avr-gdb

Bedient wird der GDB mit folgenden Befehlzeilen:
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-pc-linux-gnu --target=avr".
(gdb) file /home/andreas/workspace/SinusSynchron/Debug/SinusSynchron.elf
Reading symbols from /home/andreas/workspace/SinusSynchron/Debug/SinusSynchron.elf...done.
(gdb) target remote :1212
Remote debugging using :1212
0x00000000 in __vectors ()
(gdb) load
Loading section .text, size 0x15d2 lma 0x0
Loading section .data, size 0x2 lma 0x15d2
Start address 0x0, load size 5588
Transfer rate: 227 KB/sec, 31 bytes/write.
(gdb) break main
Breakpoint 1 at 0x534: file ../Source/SinusSynchron.c, line 152.
(gdb) continue
Continuing.
Remote connection closed
(gdb) 

Nach dem target-Befehl reagiert simulavr wie folgt:
Connection opened by host 127.0.0.1, port -27779

Was mich schon erst einmal wundert, weil der Port nicht stimmt 
(confused?). Scheint aber alles zu funktionieren, da die Verbindung 
besteht. Erst nach dem continue-Befehl bricht simulavr mit folgender 
Meldung ab:
storage.c:97: ERROR: address out of bounds: 0x4ff

Und nichts geht mehr.

Ich würde auch gerne meinen richtigen atmega simulieren (Atmega168), der 
wird aber von dieser simulavr-Version nicht unterstützt. Ich habe auch 
versucht, mir eine aktuelle Version herunterzuladen (0.8..) konnte 
dieser aber nicht compilieren, da hier autoconf und automake irgendwie 
nicht richtig funktionieren und eine configure ist dort nicht, wie in 
der README erwähnt, enthalten.
Ich weiß, das ist jetzt ein bischen viel auf einmal. Kann mir trotzdem 
jemand helfen??

Danke, Andreas

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas Klafft schrieb:

>
Connection opened by host 127.0.0.1, port -27779
>
> Was mich schon erst einmal wundert, weil der Port nicht stimmt
> (confused?).

Das passt schon.  Das ist der Client-Port, von dem aus die
Verbindung geöffnet worden ist.  Eine vorzeichenbehaftete
Angabe ist natürlich Humbug, korrekt wäre also 37757.  Client-
Ports wählt sich der Client selbst aus, typischerweise aus dem
Bereich 30000...40000 (kann je nach Betriebssystem verschieden
sein).

>
storage.c:97: ERROR: address out of bounds: 0x4ff

Die Stack-Initialisierung deines ATmega168 versucht auf Speicher
zuzugreifen, den es im simulierten ATmega8 nicht gibt.

Du musst dir wohl oder übel die Mühe machen, deinen Code für einen
ATmega8 zu compilieren, damit du ihn damit simuliert bekommst.

Die aktuelle Version von simulavr ist übrigens eine komplett andere
Codebasis als die, die du hier benutzt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.