Gast
#3625624
Hallo, zuerst ein paar Infos zur verwendeten Hardware. Debugger: Segger JLink µC: STM32F407IG (Cortex-M4) Die JTagpins sind ohne Pullups. Sie sind direkt vom µC mit dem JTag verbunden. Ich habe das Board gelötet und konnte dann problemlos von Linux auf die Cortex per JTag zugreifen. Ich konnte die Register etc. auslesen und habe ein kleines LED-Beispiel aufgespielt (auf dem STM32F4 Eval Board ging das Programm problemlos, ich habe nur die Pins angepasst). Nachdem ich einmal "go" eingegeben habe, konnte das JTag die CPU nicht mehr in den Haltmodus versetzen. Ich hatte BOOT0 mit 10k gegen Masse. Boot1 war erst nicht angeschlossen (laut Datenblatt ist es für den Main Memory egal). Ich hab allerdings testweise auch ein definiertes Signal angelegt. Nach ewigen hin und her testen konnte ich zweimal richtig per JTag zugreifen. Dann konnte ich ein Programm aufspielen und im "Step" Modus hätte er die richtigen Befehle ausgeführt. Ich habe es wieder zurück gelesen und es stimmte. Mit "go" und "reset" kam wieder die Meldung, dass er die CPU nicht in den Haltemodus versetzen kann. Wenn ich mit der Hand den Resetknopf drücke, erkennt er die CPU, er kann sie allerdings ebenfalls nicht in den Haltemodus versetzen. Programmieren geht ebenfalls nicht, da er versucht vorher die CPU in den Haltemodus zu versetzen. Ich habe den Flash oder Register ausgelesen und er hat nur Nullen angezeigt. Beim JLink (9-Poliger Stecker) kann ich den Pin 9 auf Reset brücken, den habe ich auch an Reset vom µC gelegt. Dies hatte keinen Erfolg. Auch die Jlink-Stm32-unlock.exe von Segger brachte einen Fehler. Testweise habe ich den BOOT0 mit 10k gegen VCC gelötet. Ich konnte auf den Bootloader mit UART zugreifen. JTag funktioniert hier auch problemlos. Ich habe ein anderes Testprogramm mit dem JLink (ebenfalls für das STM32F4 Eval Board) in den Mainflash laden können und per Bootloader zurücklesen. An dem Fehlerbild im Bootmodus "Mainflash" hat sich nichts geändert. Ich habe auch eine leichte Erwärmung im "Mainflashmodus" gemerkt. Könnte an den eigentlich eingestellten 168MHz liegen. Wenn ich per Bootloader boote, hat die LED nicht geblinkt und JTag ging nicht mehr. (gleiche Fehlermeldung als angehängt) Ich habe es von 3 verschiedenen PCs (Windows und Linux) mit zwei verschiedenen Versionen getestet und immer den gleichen Fehler erhalten. Ich habe auch an dem Taster einen Pullup gebaut, brachte nichts. Auch ein Pullup an JTag-TDI brachte nichts. Das JTag habe ich eben nochmals mit einer Freescale Kinetis Cortex-M4 getestet, da ging es problemlos und eben im Systemflash Bootmodus auch. Da die Software fast unverändert aus dem I-Net übernommen wurde, kann ich sie nicht komplett hochladen. Müsste ich irgend etwas ändern, damit die Software vom Eval Board auch auf der größeren Cortex läuft. (außer der Flashgröße und evtl der Ramgröße/Stackpointer) Für eine einfache LED-Blinkanwendung sollte der Startupcode ja 1:1 funktionieren. Sleepmodus, Watchdog habe ich nicht bewusst aktiviert. CMSIS sollte es ja auch nicht einfach so aktivieren. Ich hoffe ihr könnt mir weiter helfen. Vielen Dank! Simon
