mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Memory-Anzeige vor debugging auf 0 setzen


Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich würde gern vor dem debuggen den Inhalt der Data-Section leeren 
wollen. Als Debugplattform nutze ich AVR-Studio mit dem Dragon.
Ein Neustart von AVR-Studio funktioniert nicht. Irgendwie scheint sich 
das AVR-Studio den letzten Inhalt des Speichers zu merken.
Irgend eine Lösung?


Vielen Dank,
pacer

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Irgendwie scheint sich das AVR-Studio den letzten Inhalt des Speichers zu 
>merken. Irgend eine Lösung?

Das AVR-Studio braucht sich den nicht merken. Das macht schon der 
Controller.

MfG Spess

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Irgendwie scheint sich das AVR-Studio den letzten Inhalt des Speichers zu 
>merken. Irgend eine Lösung?

Das AVR-Studio braucht sich den nicht merken. Das macht schon der 
Controller.

> Irgend eine Lösung?

Mach dir ein Hexfile vom leeren RAM und lade das über

Debug->Up/Download Memory

MfG Spess

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Debuger hat damit nichts am Hut. Bei einem Reset bleibt der SRAM 
erhalten. Das kann man nutzen, um z.B. nach einem Watchdogreset einen 
RAM-Dump zu machen.

Wenn Du das nicht willst, dann mußt Du Dir eine Initroutine schreiben, 
die ihn löscht.
Oder Du programmierst in C, dann macht das der Compiler schon 
automatisch.


Peter

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,

ich werde es über über das Hexfile machen, für C reicht es bei mir 
leider noch nicht. Ich habe mir erst mal den Inhalt von Data in das 
Hexfile exportieren lassen um es dann mit der Anzeige im Programm 
vergleichen zu können. das hier ist die erste Zeile im Hexfile:
:100100003035151B16021020051E230F1510020A8C

eigentlich sollte das Hexfile mit der Adresse 100 beginnen. Mit der Zahl
:10010000 kann ich nix anfangen, ebenso die letzte Zahl 8C, sie kommt 
nicht im Speicher vor.

Würde mich freuen wenn mir das jemand erklären könnte.

Autor: Spess53 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Würde mich freuen wenn mir das jemand erklären könnte.

Siehe Anhang.

MfG Spess

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pacer schrieb:
> ich werde es über über das Hexfile machen, für C reicht es bei mir
> leider noch nicht.

Heißt das, Du programmierst in Assembler und weißt nichtmal, wie man 
einen RAM-Bereich mit einem Wert beschreibt???

Dann solltest Du das zuerst mal lernen, sowas gehört zu den absoluten 
Grundlagen.


Peter

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pacer schrieb:
> ich würde gern vor dem debuggen den Inhalt der Data-Section leeren
> wollen.

Wozu? Das ist eher kontraproduktiv.

 Als Debugplattform nutze ich AVR-Studio mit dem Dragon.
> Ein Neustart von AVR-Studio funktioniert nicht. Irgendwie scheint sich
> das AVR-Studio den letzten Inhalt des Speichers zu merken.

Den merkt sich eher der Speicher. Dazu ist er ja da.

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun, mir war nicht klar, das AVR-Studio den Speicher ausließt.
Aber das habe ich wohl mit dem Softwaredebugger verwechselt.

Wofür ich das brauche? Dann sehe ich es wenn Daten in den Speicher 
geschrieben werden. Für mich ist das also nicht Kontraproduktiv.

Und ja, ich weiß wie man einen Wert in den Speicherbereich schreibt. Und 
da ich  immernoch Anfänger bin, reicht es auch wenn es erst beim 3. 
Anlauf klappt ;-)

Da das Hexfile durch die Prüfsumme doch etwas aufwändiger ist, werde ich 
wohl doch eine Löschroutine schreiben müssen.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
pacer schrieb:
> Wofür ich das brauche? Dann sehe ich es wenn Daten in den Speicher
> geschrieben werden. Für mich ist das also nicht Kontraproduktiv.

Dann würde ich aber nicht ausgerechnet 0, sondern irgendeinen anderen 
Wert nehmen.
Prinzipiell ist es immer besser, wenn ein Programm im Debugger möglichst 
exakt genau so läuft wie außerhalb. Sonst hat man nämlich früher oder 
später das Problem, daß ein Programm ohne Debugger Mist baut und im 
Debugger auf einmal fehlerfrei funktioniert, was natürlich das Debuggen 
etwas schwierig macht. Diesen Fall hatte ich schon in Turbo Pascal, wo 
der Debugger auch schon auf die blöde Idee gekommen war, alles vorher zu 
"nullen".

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Wofür ich das brauche? Dann sehe ich es wenn Daten in den Speicher
geschrieben werden. Für mich ist das also nicht Kontraproduktiv.

Schon mal mit dem Watch-Fenster probiert?

MfG Spess

Autor: pacer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muss jetzt nochmal zurückrudern.
Das Datensegement liegt im SRAM und das ist ja ein flüchtiger Speicher, 
sprich wenn ich das Board ausschalte, müsste doch nach dem Einschalten 
der Speicher leer sein? So steht es zumindest sinngemäß im 
SRAM-Tutorial.

Hab ich da was falsch verstanden?

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.