Eclipse: Array aus MC-Speicher abspeichern

Gast #4501055
Lesenswert?

Hallo zusammen,

ich benutze die auf Eclipse basierende Entwicklungsumgebung "Dave" von 
Infineon zur Entwicklung eines Mikrocontrollerprogrammes.
Ich habe eine Messwerterfassung und Auswertroutine realisiert,
nun liegt das Ergebnis, ein Array mit 2048 Einträgen, im Speicher des 
MCs vor. Über das Debug-Interace kann ich mir einzelne Werte anzeigen 
lassen;
um das Ergebnis bewerten zu können, muss ich es u.a. plotten.
Das MC-Board hat keine Schnittstelle (UART oder USB) über die
ich das Array an einen PC übertragen könnte.
Mein einziger Zugang zu dem Controller ist über das Programmiergerät.
Gibt es die Möglichkeit, das Array aus der Debug-Umgebung von Eclipse 
heraus z.B. in einer Text- oder CSV-Datei abzuspeichern?

Erik
Gast #4502446
Lesenswert?

Wobei, ein System das Daten sammelt, verarbeitet und sie dann nicht 
ausgeben kann??

Na ja ...

Ist nicht noch ein Pin frei?
Zur Not ein Soft UART Tx, der beim Start einfach die Daten seriell 
ausgibt sollte die Benutzerfreundlichkeit wesentlich steigern ;)
Gast #4502698
Lesenswert?

Danke für die Antworten, ich kenne mich mit dem gdb aber nicht gut genau 
aus, um diese anwenden zu können.

Zu der Situation: Ich arbeite mit einer gegebenen Hardware und 
implementiere eine Routine zur Detektion eines bevorstehenden Ausfalls 
einer Komponente.

Ganz ohne die Debugumgebung komme ich nicht aus, weil ich dem Controller 
erstmal durch Registerzugriffe eine bestimmte Situation vorgaukeln muss. 
Dann erfasst dieser Messdaten und startet mehrere Verarbeitungsschritte, 
anhand deren Ergebnis entschieden wird, was er meldet.
Ich gehe nun die gesamte Kette von Messdaten, Verarbeitungsschritten, 
Entscheidungsfindung Schritt für Schritt durch und rechne die 
Zwischenergebnise im PC nach.
Ich muss genau die Messdaten/Zwischenergebnisse verwenden, die der MC 
verwendet.

>Ist nicht noch ein Pin frei?
"Pins" hat das Ding keine, nur Balls und an die komme ich nicht ran.

>Oder einfach zu geeigneter Zeit per Semihosting BKPT 0xAB den ganzen
Buffer am Stück raushauen.
Ich habe während des Debuggens zwar eine Konsole, kann dort aber keine 
Eingaben tätigen.

Ich behelfe mir damit, die in hunderter Blöcken eingeteilen Arrays 
manuell in die Zwischenablage zu kopieren und in einem Editor zu einer 
Datei zu verwursten, die Matlab lesen kann.
Das ist mühsam und Eclipse braucht sehr lange um gerade mal 2048 Werte 
in die Zwischenablage zu kopieren (->viele Kaffeepausen). Das geht auch 
häufig schief.

Ich habe gehofft, dass es eine Funktion zum Abspeichern der Werte oder 
irgendeinen anderen Trick unter Eclipse gibt (die Daten liegen dort ja 
vor) als über die Zwischenablage;
zumal ich wahrscheinlich nicht der Erste mit dem Problem bin.

Danke für die Hilfe!

Erik
#4502846
Lesenswert?

Sobald man am GDB hängt spielt es überhaupt keine Rolle welchen Debugger 
man nutzt, ein memory dump ist auf jeden Fall möglich. Und bei 
lächerlichen 2k geht sich dazwischen mit Sicherheit kein Kaffee aus...

Zur GDB Konsole innerhalb von Eclipse kommst du mit dem "Display 
Selected Console" Button. Innerhalb der Konsole dann einfach den 
Dump-Befehl reinklopfen. (siehe Bild)

Was in solchen Fällen übrigens enorm hilft ist sich den entsprechenden 
Befehl vorher via printf ausgeben zu lassen! Da schmeißt du die Anfangs- 
und Endadressen die du brauchst einfach rein und lässt dir den Befehl 
als String irgendwo anzeigen. Wesentlich einfacher als jedes mal alles 
tippen...
Angehängte Dateien:
Gast #4507216
Lesenswert?

Ich bedanke micht sehr!

Der Debugger ist ein Segger Jlink pro.
Mit JMEM sich in den laufenden Debugger einzuklinken funktionierte auf 
meinem Rechner nicht.

Ein EEProm hat der Controller keines.

Mit der Konsole in Eclipse und "dump" die Speicherbereich in eine 
Textdatei zu kopieren läuft.

An die Möglichkeit mit "append" den Weg umgekehrt zu gehen und von einer 
Datei direkt in den Speicher zu schreiben hatte ich vorher gar nicht 
gedacht.
Es vereinfacht es, die Implementierung im MC mit Testdatensätzen zu 
prüfen ohne diese vorher im Quelltext abzulegen und neu kompilieren zu 
müssen.

Ich muss mir noch ein kleines Programm schreiben, um die Werte zu aus 
der Datei interpretieren, dann bin ich den Schritt wieder voran 
gekommen.

Ich bedanke mich für die Hilfe, ihr habt mich sehr nach vorne gebracht!

Erik

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren