Hallo, ich habe das seltsame Phänomen, dass ich in einigen STM32 Projekten unter µVision3 die Änderungen der globalen Variablen nicht in Echtzeit sehen kann. Sie werden erst aktualisiert, wenn ich einen Breakpoint setze. Bei anderen Projekten funktioniert das. Die Projekteinstellungen habe ich bereits übeprüft. Kennt jemand das Problem oder hat sogar abhilfe? Gruß Ringo Star
Hi Ringo, ich nutze uVision3 und ULINK2 mit einem STR9. Habe auch das gleiche Problem. Die Variablen werden bei mir auch nur bei Breakpoints oder wenn ich Schritt für Schritt durchgehe aktualisiert. Gruß Maxim
Hallo ich arbeite hier auch mit eine ULINK an einem ARM LPC2292. Das Problem kenne ich auch. Variablen werden manchmal sogar nach dem anhalten nicht aktualisiert. Aber nur scheinbar. Schon des öfteren habe ich gedacht mein Programm hat einen Fehler weil die Variableninhalte einfach nicht angezeigt werden. Mein Fazit: Schmeißt die ULINK-Dinger auf den Müll. Zum Programmieren der Elektronik gehen die Dinger ja, zum Debuggen taugen sie nichts. Zum Debuggen nutzen wir den Lauterbach-Debugger. Teuer aber SEHR GUT. Hat uns schon viel Zeit gespart. Das Teil ist Gold Wert. Gruß Mandrake
Aber es muß doch einen Grund geben, warum die Variableninhalte nicht aktualisiert werden. Einfach wegwerfen? Was sagt denn Keil zu diesem Verhalten? Liegt das Problem überhaupt am Ulink?
> Mein Fazit: Schmeißt die ULINK-Dinger auf den Müll. > Zum Programmieren der Elektronik gehen die Dinger ja, zum Debuggen taugen sie nichts. Zum Debuggen taugen sie sogar sehr viel, wenn man die Architektur verstanden hat, auf der man programmieren will. Der ARM Cortex besitzt intern eine neue Debug Unit, die Coresight Arch. Diese erlaubt ein Non-Invasive Debugging, das heisst, man kann Memory Reads und Watches auf die Debug IDE übertragen, ohne dass das Zielprogramm auf dem Core davon beeinflusst wird. Bei ARM7/9 gibt es das nicht. --- Damit die IDE auch im RUN mode die Variablen und Memory Window updated, muss unter "View" das "Periodic Window Update" eingeschaltet sein. Weiterhin kann man sich zwei globale! Variablen in den Logic Analyzer holen und (bei eingeschaltetem SWO Trace!) dort live ansehen. Achtung: Die SWO Bandbreite des CM3 ist sehr begrenzt. > Variablen nicht in Echtzeit geht nicht, ausser du nimmst nen ULINK Pro oder ein anderes Trace device. Ebenfalls neu im Cortex sind die 6 HW BPs (gegenüber zwei beim ARM7). ein BP wird meist vom Emu (ULINK, JLINK) gebraucht, im Step Over Mode. Alle anderen sind frei verwendbar. In die Hard Fault Routine z.B. kann man sich eine "bkpt" Instruction legen, das ersetzt einen HW BP. Weitere Fragen? Erst lieb fragen, dann schimpfen. VG, /th.
Nachtrag: ULINK2, ME und Pro unterstützen alle SWJ sowie SWO. Ich habe noch keinen gehabt, wo das nicht ging (und habe sie alle hier liegen, ebenfalls die JLink/Trace :-) )
Random ... schrieb: > Ebenfalls neu im Cortex sind die 6 HW BPs (gegenüber zwei beim ARM7). > ein BP wird meist vom Emu (ULINK, JLINK) gebraucht, im Step Over Mode. > Alle anderen sind frei verwendbar. Warum eigentlich? CM3 hat doch das C_STEP bit im DHCSR. Oder soll das Verhalten in Halt-mode und Monitor-Mode einfach identisch sein? Gruß Marcus
Hallo Random, vielen Dank! Das mit dem "Periodic Window update" war genau was ich suchte! Gruß Ringo Star
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.