Hallo allerseits, ich programmiere schon seit längerem mit Ride7 und dem RLink an einem STM32F103RBT herum. Das läuft auch ganz wunderbar. Aus der Software soll demnächst mal eine Lötstation werden aber bis jetzt enthält sie nur diverse Programmteile wie GPIO- und SysTick-Interrupt, T6963-Displayausgabe, PWM,... Nachdem jetzt mein JLink EDU von SEGGER bei mir eingetroffen ist möchte nun unter IAR Embedded Workbench weitermachen (gut, auch nur 32k als Kickstart-Version aber stürzt wenigstens nicht regelmässig ab wie Ride7). Zu meiner Überraschung stehe ich aber gerade etwas ratlos vor folgendem Phänomen: Wenn ich die Software im IAR EW Debugger ausführe läuft sie beim ersten mal problemlos durch. Go, Break, Stepping... alles geht. Wenn ich dann aber das Debugging mit "Reset" zurücksetze und das Programm das zweite mal laufen lasse springt der Controller an der Stelle, an der ich im NVIC_ISERx-Register den EXTI2-Interrupt aktiviere immer in den HardFault. Im Register taucht die "1" an entsprechender Stelle auch noch auf, wird also wohl geschrieben, aber dann is' Schicht im Schacht. Lasse ich den Interrupt deaktiviert, läuft das Programm auch nach dem 20. Reset problemlos. Unter Ride7 tritt dieses Problem mit genau dem gleichen Quellcode NICHT auf. Der EXTI2-Interrupt funktioniert auch, also bin mir relativ sicher, nicht an eine falsche (illegale) Adresse zu schreiben. Sonst ginge ja der Interrupt nicht. Tjaaaa....??? Hat irgendjemand diese Erfahrung auch schon gemacht? Habe ich eine der umfangreichen Einstellungen bei IAR und/oder JLink übersehen? Danke für Eure Hilfe! Dominik
Welche Einstellung hast du für den Reset gewählt (Project Options)? Wenn es nur ein JLink-"Software"-Reset (einfach PC umsetzen) ist, kann das u.U Probleme machen
Hallo JLink-Nutzer, das klang sehr erfolgversprechend. Leider war es das auch nicht. Mit allen verfügbaren Einstellungen ("Normal", "Core", "Reset Pin", "Connect during Reset", "Halt after Bootloader" und "Halt before Bootloader") das gleiche. An den Flash-Breakpoints liegt's auch nicht. Weiß' auch nicht, ob das sein könnte, hatte ich aber auf Verdacht mal abgestellt. Ich spiel' mal weiter dran rum. Vielleicht hat ja noch jemand eine Idee. Trotzdem natürlich vielen Dank für Deine Hilfe! Dominik
Hi, hast du einen schwarzen (normale Version) oder weissen (Edu Version) JLink, kannste auch mal uVision (MDK-ARM) (www.keil.com) zu Rate ziehen, wenn du eh gerad am IDE ausprobieren bist. VG, /th.
Ok. Hab' mal das Oszilloskop dran gehängt und nachgesehen. Bei keiner der Einstellungen sehe ich beim Reset via Debugger ein Low am Reset-Pin. Bei meiner Hardware-Reset-Taste schon. Und auch zu Beginn des Debuggings! Der JLink scheint also in Ordnung zu sein und einen Reset am Pin zu liefern. Jetzt frag' ich mich nur, warum er das nicht auf Anweisung der IDE auch tut. Es könnte also immer noch ein Einstellungsproblem sein. Nun kann ich immerhin das Problem schon mal eingrenzen. Meine Software scheint's nicht zu sein, denn wenn ich zusätzlich zum Debugger-Reset auch noch die Reset-Taste auf meinem Board drücke, dann läuft's ohne Probleme. Auf jeden Fall war der Hinweis auf den Reset von "JLink-Nutzer" schon mal sehr hilfreich! Dominik
Ah. War zu schnell... Hallo "thorstendb"! Ja, mit diesem Gedanken hatte ich auch schon gespielt. Gibt's ja wohl auch als Eval-Version. Werde ich mir mal runterladen und testen. Ja, ich hab' die weiße EDU-Version. Danke Dir! Dominik
> Gibt's ja wohl auch als Eval-Version.
jep, 32k.
Wenn du Probleme mit dem Treiber hast, hier posten oder PM :-)
VG,
/th.
> Ja, ich hab' die weiße EDU-Version.
Damit hat Segger nen coolen Schachzug gemacht, meiner Meinung nach.
Somit lohnt es nicht mehr, als Hobbybastler nen China Nachbau zu kaufen,
weil er billiger ist (war). **grins**
Schon echt krass, was so an kopierten JLinks und ULINKs rumschwirrt (s.
ebay).
VG,
/th.
Hmm, das Problem beschränkt sich offenbar tatsächlich darauf, dass der JLink während des Debuggings, egal bei welcher Reset-Einstellung, keinen "Low"-Pegel auf den RST-Pin des Controllers legt. Beim Flashen tut er das. Und wenn ich im JLink-Commander "r" eingebe tut er es auch. Keil hab' ich runter geladen aber noch nicht installiert. Ich denke immer noch, dass es ja eigentlich nicht so schwer sein kann und IAR gefällt mir schon sehr gut. Fehlt in irgendeinem Script das "r"? Wenn ja, in welchem? Ich würd's ja auch selbst reinschreiben. Ich hab' mal an IAR geschrieben, aber da ich die kostenlose Kickstart-Version verwende, werde ich wohl auf die Antwort etwas warten müssen... falls ich eine bekomme. Irgendwo hab' ich einen Hinweis darauf gefunden, dass bei Olimex-Boards evtl. der RST und der TRST verbunden sind was Probleme machen könnte. Hatte mich schon gefreut. Aber als ich auf die Unterseite meines Boards (STM32-H103) geschaut hab' war der Jumper natürlich schon offen :-(. Naja, vielleicht schaut ja auch jemand von SEGGER hier vorbei dem was dazu einfällt. Hab' zwar schon dort in's Forum gepostet. Aber die Reaktionen sind (noch) mangelhaft... Ich geh' mal weiterspielen... :-/ Dominik
Dominik Hezel schrieb: > Fehlt in irgendeinem Script das "r"? Wenn ja, in > welchem? Ich würd's ja auch selbst reinschreiben. Schau mal in die IAR Hilfe bzgl. C-Spy Macros. Es gibt ein paar definierte Macros die automatisch aufgerufen werden bei bestimmten Situation (Start Debugging, Reset-Taste, End Debugging). Wenn du so ein Macro definierst und einbindest (Project Options -> Debugger), kannst du ja mal probieren darin einen Reset-Befehl nochmal auszuführen (irgendwo gibts ne Makro-Kommandoreferenz). Aber ne endgültige Lösung ist das natürlich nicht. Würde aber helfen ein anderes Problem auszuschließen
> Naja, vielleicht schaut ja auch jemand von SEGGER hier vorbei dem was > dazu einfällt. Hab' zwar schon dort in's Forum gepostet. Aber die > Reaktionen sind (noch) mangelhaft... Unsere J-Link Entwickler schauen da natürlich auch immer wieder rein, aber in erster Linie ist das ein Forum, indem sich Kunden gegenseitig helfen, wir möchten nicht den kompletten Support darüber machen. Hast du schon mal eine Email an unserern Support geschrieben? Falls dir irgendetwas auffällt, wo du sagst, da könnte es ein Problem geben oder das könnte man besser machen, dann bitte nicht zögern, sich direkt bei uns zu melden! Ich werde aber natürlich mal einen Kollegen auf diesen Thread aufmerksam machen.
So. Hat etwas länger gedauert, sorry... @JLink-Nutzer: Das wäre evtl eine Lösung. Hab's in der Hilfe gefunden. Ich werd's mir mal durchlesen. Und wenn das problemlos läuft dann könnte das schon die endgültige Lösung sein. @SEGGER - Til Stork: Ich dachte, für den JLink-EDU gäbe es den Support nur über's Forum. Deshalb war ich da etwas zurückhaltend. :) Vielleicht schreib' ich einfach doch mal eine Email. Es sieht aber ohnehin so aus, als wäre das ganze ein IAR-Problem. Hab' jetzt mal Keil installiert und da kommt ein ganz normales "Low" als Reset. Funktioniert also. Crossworks gäbe es ja auch noch. Gefällt mir auch ganz gut. Und wenn ein Projekt mal kommerziell werden sollte, dann käme man mit Crossworks commercial license plus JLink commercial immerhin zu ca. einem Drittel des IAR-Preises weg... Das ist heute ja fast schon geschenkt. :) Auf jeden Fall schon mal danke für Eure Tipps! Wenn ich den Fehler finde werde ich natürlich berichten. Grüße Dominik
Dominik Hezel schrieb:
> Es sieht aber ohnehin so aus, als wäre das ganze ein IAR-Problem.
Dann schildere Dein Problem doch einfach dem IAR-Support in München.
Wir haben in der Firma auch ein Jahr lang die 32kB Version genutzt und
es gab Support bevor wir die Vollversion gekauft haben. Denn so ein
Fehler wäre dann sicher auch in der Vollversion drin.
Also,... laut dem IAR-Support ist ein solcher Reset in der Embedded Workbench gar nicht vorgesehen (!?) da es einen Abbruch des Debuggers verursachen könnte... Da damit mein Problem nicht gelöst und das ganze eine eher unbefriedigende Antwort ist hab' ich noch mal nachgefragt. Hab' allerdings darauf noch keine Antwort. Nachdem dieser "PC-Reset" ja allerdings normalerweise zu funktionieren scheint, frage ich mich, ob ich doch beim Programmieren was übersehen habe (siehe ganz oben). Gibt es dazu irgendwelche Ideen? Grüße Dominik
Hattest Du ein Lösung gefunden? Möglicherweise hab ich ein ähnliches Problem mit einem Stm32f7
Falko J. schrieb: > Hattest Du ein Lösung gefunden? Typischerweise hat man bei diesem Fehler einfach den IRQ-Handler vergessen :-)
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.