Gast
#6271358
Hallo, Kann man den RAM eines STM32F auslesen während der Mikrocontroller läuft? Oder kann man den Kern anhalten, und den RAM dann auslesen? Gruß.
|
Anzeige
|
STM32F RAM auslesen geht das?
Gast
#6271358
Hallo, Kann man den RAM eines STM32F auslesen während der Mikrocontroller läuft? Oder kann man den Kern anhalten, und den RAM dann auslesen? Gruß.
Gast
#6271360
Debugger ist unbekannt?
Gast
#6271365
Guest schrieb: > Debugger ist unbekannt? Kann man Debugger essen? Ist das besser als Hamburger?
Gast
#6271367
Leute, ich weiß ja dass ihr euch damit alle spitze auskennt, für mich ist das aber absolutes Neuland, ich hab zwar schon mal STMs programmiert aber noch die von einem den RAM während er läuft ausgelesen, also bitte seid doch so nett und erklärt das ein bisschen mehr...
Gast
#6271374
@Bastler: Sie wollen darauf hinaus, dass dein Controller eine JTAG Schnittstelle hat. Du kannst mit JTAG Debugger Hardware und entsprechenden Tools per JTAG Zugriff auf den RAM bekommen und kannst ihn auslesen und manipulieren. JTAG Debugger gibt's z.B. von der Firma Segger. Von denen bekommst du auch die Tools. Alternative gibt es Open Source Tools wie OpenOCD oder ähnliches.
Gast
#6271385
Bastler schrieb: > ich hab zwar schon mal STMs programmiert Lass mich raten mit der Arduino IDE? Jeder ST-Link hat einen Debugger mit drin. Falls nicht schon vorhanden kauf dir ein Nucleo Board und lad dir bei ST Atollic oder die CubeIDE runter. Damit hast du für wenig Geld alles was du brauchst. Bastler schrieb: > Kann man den RAM eines STM32F auslesen während der Mikrocontroller > läuft? Die Frage ist unsinnig gestellt. Wer ist "man"? Während der µC läuft, kann er natürlich jederzeit auf das RAM zugreifen. Und die meisten Programme tun das auch auf die eine oder andere Art. Wenn der µC (bzw. das auf ihm laufende Programm) kooperiert, dann kann er natürlich das RAM zur Laufzeit auslesen und z.B. über den UART ausleiten. Oder - um ein anderes Beispiel zu bringen - am USB ein /mass storage device/ implementieren und darüber den Zugriff auf das RAM erlauben. > Oder kann man den Kern anhalten, und den RAM dann auslesen? Die JTAG und SWD Schnittstellen sind zwar in erster Linie zum Programmieren und Debuggen gedacht, aber das beinhaltet auch Funktionen, um vom Host PC aus auf das RAM des µC zuzugreifen. Und ja, dazu muß i.d.R. der µC-Kern angehalten werden.
Gast
#6271407
Kann mir vielleicht dann noch einer sagen ob und wenn ja, wie das mittels STlink V2 und dem STM32 Stlink Utility geht?
Gast
#6271482
Mit ST-Link-Utility habe ich mich lange nicht beschäftigt. Mit der aktuellen Version 2.4 vom CubeProgrammer geht es. Der kann jetzt ein Programm direkt auf dem µC ausführen. Dazu gibt es: Run, Halt, Reset, Step ... Dabei kann auch der aktuelle RAM Inhalt gelesen werden. Es ist nicht mal der Quelltext erforderlich. Allerdings alles auf Registerebene. Wenn es um ein eigenes Projekt geht, ist es natürlich einfacher z.B. mit CubeIDE ein Projekt zu erstellen und anschliessend zu debuggen. Dabei ist die Live Darstellung von Variablen, Registern oder das Auslesen des RAM möglich.
Gast
#6271485
Voraussetzung ist natürlich das du den ST-Link mit der SWD Schnittstelle verbindest. Du brauchst mindestens NRST, SWCLK, SWDIO, GND und Target Voltage (3,3V). SWO ist nicht notwendig, das ist eine unidirektionale serielle Schnittstelle für ein Terminal.
Gast
#6271486
Guest schrieb: > NRST braucht es nicht unbedingt, bietet der STlink V2 für den STM32 auch nicht.
Gast
#6271488
Jedenfalls der China ST-Link V2 nicht.
Gast
#6271493
pegel schrieb: > Jedenfalls der China ST-Link V2 nicht. Jeder offizielle ST-Link hat den. Den China kram nutze ich nicht.
Gast
#6271499
Welcher STM32Fxxx denn? Ich glaube die Frage war eher "kann man RAM auslesen während der Cortex-M Core läuft". Das ist nicht selbstverständlich weil bei vielen Cores derselbige dafür angehalten werden muss. Beim Cortex-M gibt es aber einen Background Memory Access, sprich man kann über JTAG/SWD Speicher lesen/schreiben während der Core läuft. Damit kann man z.B. so lustige Sachen wie SEGGER RTT machen: https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/
Gast
#6271842
Til S. schrieb: > Ich glaube die Frage war eher "kann man RAM auslesen während der > Cortex-M Core läuft". Das ist nicht selbstverständlich weil bei vielen > Cores derselbige dafür angehalten werden muss. Beim Cortex-M gibt es > aber einen Background Memory Access, sprich man kann über JTAG/SWD > Speicher lesen/schreiben während der Core läuft. Damit kann man z.B. so > lustige Sachen wie SEGGER RTT machen: > https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/ Achtung: Werbung eines Mitarbeiters.
Gast
#6271844
Til S. schrieb: > Ich glaube die Frage war eher "kann man RAM auslesen während der > Cortex-M Core läuft". Das ist nicht selbstverständlich weil bei vielen > Cores derselbige dafür angehalten werden muss. Beim Cortex-M gibt es > aber einen Background Memory Access, sprich man kann über JTAG/SWD > Speicher lesen/schreiben während der Core läuft. Damit kann man z.B. so > lustige Sachen wie SEGGER RTT machen: > https://www.segger.com/products/debug-probes/j-link/technology/about-real-time-transfer/ Achtung: Werbung eines Mitarbeiters bzw. Influencers.
Gast
#6271857
Martin schrieb: > Achtung: Werbung eines Mitarbeiters bzw. Influencers. Ja, aber sachlich gesehen keinerlei Falschmeldung. Til S. schrieb: > "kann man RAM auslesen während der Cortex-M Core läuft" So hemdsärmelig wie der TO daherkommt ist ihm die Unterscheidung wohl noch gar nicht geläufig.
Gast
#6271862
Und die Werbung gleich noch zwei Mal wiederholt. ;) Im Debug der CubeIDE (GDB Server) kann ich auch während das Programm läuft auf Speicher und Register zugreifen.
Gast
#6271889
Geht natürlich auch mit der SWD-Schnittstelle (zwei Leitungen) vom STLink V2. Einfach einen GDB-Server (z.B. der 'EBlink' von EmBitz) installieren. Und dann halt über ein eigenes Programm entsprechende Debugger-Befehle übers Netzwerk zum GDB-Server absetzen. Klappt prima. Übertragungsraten hängen von vielen Dingen ab. Bei mir im Bereich von 50kb/s bis 150kb/s. pegel schrieb: > Jedenfalls der China ST-Link V2 nicht. Doch das geht mit dem ST-Link V2 Clone problemlos. Läuft bei mir einwandfrei zusammen mit STM32CubeIDE. Die entsprechende Funktion heisst "Live Expressions". Hier ein Video wie einfach das geht: https://youtu.be/Nyml66k_Ppk
Gast
#6271922
@ Johnny B. Es ging nicht um den Zugriff, sondern nur um das Reset für den STM32.
Gast
#6271927
Ja, ich weiss. Mit löten geht auch das. pegel schrieb: > @ Johnny B. > > Es ging nicht um den Zugriff, sondern nur um das Reset für den STM32. Falsch; die Frage war: Bastler schrieb: > Kann man den RAM eines STM32F auslesen während der Mikrocontroller > läuft?
Gast
#6272064
Johnny B. schrieb: > Falsch; Einen Beitrag darüber lesen war nicht möglich, oder? Deine Meinung sei dir gegönnt. Martin schrieb: > Achtung: Werbung eines Mitarbeiters bzw. Influencers. Ich habe mein Ziel endlich erreicht! Mein Traumberuf, als ich ein 12 jähriges Mädchen war, war immer schon Influencer!!1! Ich mache gleich mal eine Instagram Story dazu... ;-). Til S. schrieb: > Ich habe mein Ziel endlich erreicht! Ich verstehe auch nicht, warum sich manche hier so aufborsteln. Immerhin schreibst du in deinen Nick, daß du bei Segger arbeitest.
Gast
#6272301
Segger kann ich mir leider nicht leisten, wegn dem einen Projekt, ein originaler STlink V2 muss reichen. Ich weiß was passiert wenn man den Chip anhält, er bleibt stehn (-: mit ihm aber auch wenn da was mit PWM gemacht wird, die PWM. Das wäre dann suboptimal.
Gast
#6272306
Das Problem ist, dass ich auf den Chip kein Programm zum RAM auslesen spielen kann. Auf dem Chip läuft ein Programm. Ich habe den Quelltext nicht. Der Chip ist NICHT geschützt (Keinerlei Lockbits gesetzt) ich will dem Programm auf dem STM32 beim arbeiten zusehen, von außen per STlink V2. Geht das irgendwie? Der Chip ist ein STM32F103C8T6. Bastler schrieb: > Auf dem Chip läuft ein Programm. Ich habe den Quelltext > nicht. Der Chip ist NICHT geschützt (Keinerlei Lockbits gesetzt) ich > will dem Programm auf dem STM32 beim arbeiten zusehen, von außen per > STlink V2. Geht das irgendwie? Das nennt sich "debuggen". Klar geht das, wenn die Lockbits offen sind. Und: mit "RAM auslesen" hat das wenig bis nichts zu tun. Bei einer RISC Architektur spielen sich die meisten Dinge in den Registern ab. Bastler schrieb: > Segger kann ich mir leider nicht leisten, wegn dem einen Projekt, ein > originaler STlink V2 muss reichen. Der Jlink Edu kostet 66€ ;) Das lohnt sich durchaus. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|