Forum: Mikrocontroller und Digitale Elektronik STM32 CUBE IDE Debuggen ohne Source Code?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bastler (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Hallo,

Jetzt muss ich hier schon wieder nerven, nachdem ich vorhin schon dachte 
ich hätte einen STM32F103C8T6 mit einer IDE kaputtgemacht...

Ich will den RAM des Prozessors auslesen und sehen was wann da drin 
steht. Leider flasht mir die IDE immer wenn ich versuche Debugging zu 
starten irgendwas auf den Chip was dann den SWO Port deaktiviert und den 
Chip solange unbrauchbar macht, bis man ihn durch auf LOW ziehen des 
RESET Pin und neu flashen der Firmware die drauf gehört wiederbelebt. 
Jetzt ist die Frage, wie kann ich der Firmware auf dem Chip im RAM 
zuschauen ohne dass die IDE den vorher flasht. Hab auch schon mal 
versucht debugging ohne Files im Projekt zu starten, aber das tut mir 
die Software nicht, die will erstmal was kompilieren und flashen bevor 
sie Debugging erlaubt. Nun ist die Frage, ist das Absicht oder bin ich 
zu blöd?

von Thomas Z. (usbman)


Bewertung
0 lesenswert
nicht lesenswert
Was willst du den Debuggen ohne Source? Was du brauchst ist ein ICE 
(InCircutDebugger) Das kann die SWD Schnittstelle bei weitem nicht 
leisten

von Bastler (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Ich will ja lediglich wissen was im RAM drinsteht, wäre auch kein 
Problem den Chip dazu anzuhalten, nur will eben die CUBE IDE immer erst 
was Kompilieren und Flashen bevor Debuggen möglich ist. Es müsste doch 
gehen den RAM auszulesen, im Zweifelsfall wenn man den Chip anhält?

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Debug Configurations -> Startup -> Load Image and Symbols

Da kannst Du einstellen was er machen soll.
Dann ausführen (F8), Register und Speicher sind lesbar.

Notfalls musst Du eine andere Startadresse einstellen.

Sieh dir einfach die Parameter in "Debug Configurations" an.

von Bastler (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Warum auch immer es geht nicht, wenn ich eine neue Konfiguration 
erstelle ist die Schaltfläche Debug ausgegraut. Anscheinend hat ST da 
eine Sperre eingebaut die verhindert dass einer den RAM eines 
Controllers analysiert, von dessen Firmware er den Source Code nicht 
hat. Werde wohl nicht um ein Gerät von Segger rum kommen, ist zwar 
gerade total doof, weil ich im Moment pleite bis zum geht nicht mehr 
bin, aber anscheinend geht das nicht mit dem STlink.

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
OpenOCD unterstützt ST-Link und kann RAM Adressen lesen (auch zur 
Laufzeit).

Natürlich funzt das nur wenn die Firmware nicht die SWD Pins 
umprogrammiert...

von Bastler (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Die SWD Pins sind offen, aber die CUBE IDE lässt sich einfach nicht 
davon überzeugen dass sie debuggen soll ohne vorher Quellcode zu haben. 
Keine Ahnung warum die das so doof programmiert haben, kann mir nur 
vorstellen dass sie nicht wollten dass darüber einer fremde Firmware 
analysiert.

von pegel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Also gut, letzter Hinweis:

Nimm irgend ein Blinky Projekt als Grundlage.
Spielt keine Rolle, da es bei richtiger Einstellung nicht geflasht wird.

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> kann mir nur
> vorstellen dass sie nicht wollten dass darüber einer fremde Firmware
> analysiert.

Sind Verschwörungstheorien ansteckend?
Die Debugfunktion in Eclipse möchte ein .elf oder ähnliches file laden, 
wenn das nicht da ist, dann ist der Button grau. Das ist in Eclipse 
einfach intransparent und die Internas sind schwer nachzuvollziehen. 
Deshalb bin ich zu VSCode gewechselt.
Die Funktionalität basiert auf dem gdb, den kann man auch aus der 
Kommandozeile starten und sich an das laufende Target hängen. Wenn man 
Adressen kennt, dann lassen die sich auch auslesen. Mit der .elf Datei 
ist das natürlich bequemer weil man dann mit Symbolen arbeiten kann.

: Bearbeitet durch User
von Paul (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Bastler schrieb:
> kann mir nur vorstellen dass sie nicht wollten dass darüber einer
> fremde Firmware analysiert.

Bei dem Wissen das Du hier zeigst, dürften sich Deine Vorstellungen kaum 
mit der Realität decken.
Außerdem ist es unhöflich Vorsatz zu unterstellen, wenn Dummheit als 
Erklärung ausreicht.

Schau Dir die Grundlagen an und lern erstmal mit den Werkzeugen 
umzugehen bevor Du hier wirre und haltlose Vermutungen äußerst.
Dann wird das alles viel Einfacher.

von Bastler (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
War nur eine Vermutung von meiner Seite, hätte ja sein können.

von Guest (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bastler schrieb:
> Die SWD Pins sind offen, aber die CUBE IDE lässt sich einfach nicht
> davon überzeugen dass sie debuggen soll ohne vorher Quellcode zu haben.

Wenn du normal mit der CubeIDE Debuggst, dann kannst du dir alle 
Register und Variablen oder andere Expressions angucken. Die Werte sind 
sogar so benannt wie du sie in einem #define oder enum benannt hast. Wie 
soll sie das machen oder Break Points setzen, wenn sich keinen Code und 
keine Memory Map hat?

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.

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