Hallo Ich möchte mit OpenOCD und ST-Link V2 unter Windows 10 einen nRF51822 Board flashen. Eine Verbindung mit ST-Link V2 war schon mehrmals vorhanden, bleibt aber immer irgendwo an fehlerhaften Befehlen hängen. Ich habe Tagelang alles ausprobiert und das ganze Internet durchsucht. Kann mir jemand sagen mit welchen Befehl ich direkt ohne GDB und ohne Telnet ein hex file flashen kann. Im nachbar Thread hatte ich auch schon gefragt und dann auch nur eine Verbindung zu ST-Link V2 hinbekommen Beitrag "Arduino Custom Firmware für Fitness Armband mit NRF52" Gruß
ktfk schrieb: > bleibt aber immer irgendwo an fehlerhaften Befehlen hängen. Genauer würde sicher helfen. Ich hatte die gleiche Kombi vor längerer Zeit unter Linux laufen. Vielleicht braucht es mal ein richtiges Full erase?
https://www.youtube.com/watch?v=BzTcqwFI1m4 Ist für Linux, aber der Mann hat viele Videos zum Thema. Könnte auch was für Win dabei sein.
Den Hinweis von openocd 'Do not enable UICR APPROTECT' hast du hoffentlich befolgt...
Wieso nicht das Originale Nordic Uploadtool wenn es nur eine Hexdatei ist?
Hallo Vielen Dank für eure Antworten. softwerker schrieb: > Den Hinweis von openocd 'Do not enable UICR APPROTECT' hast du > hoffentlich befolgt... Ich habe immer nur einen hex file flash Befehl gesendet und vorhin konnte mein Smartphone eine BT Verbindung aufbauen, was aber bedeutet das im Speicher nur das Programm drin gewesen sein kann was beim kauf schon da drin war, und das völlig unverändert seit dem Kauf! Neu geflasht kann ich Ausschließen. @pegel Das Video hatte ich mir vor ein paar Tagen Angehört bei niedrigster Auflösung also nicht gesehen, weil ich zur Zeit nur eine begrenzte mobile Internet Verbindung habe! Dieser Befehl z.B.: openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg "program C:\bootloader.hex verify reset"; "shutdown"; ergibt folgendes in gekürzter Form C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg "program C:\bootloader.hex verify reset"; "shutdown"; Open On-Chip Debugger 0.10.0 (2020-01-14) [https://github.com/sysprogs/openocd] http://openocd.org/doc/doxygen/bugs.html Unexpected command line argument: program C:\bootloader.hex verify reset; Philipp K. schrieb: > Wieso nicht das Originale Nordic Uploadtool wenn es nur eine > Hexdatei > ist? Kenne ich nicht vielleicht zu Aufwändig. Ich habe nur einen ST-Link V2 und 3,3V Arduinos Ich brauche eigentlich nur den richtigen flash Befehl! Die meisten Leute verwenden in dem Fall auch OpenOCD.
ktfk schrieb: > openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg "program > C:\bootloader.hex verify reset"; müsste da nicht ein -c rein? ... -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; ...
ktfk schrieb: > openocd -f > interface/stlink-v2.cfg -f target/nrf51.cfg "program C:\bootloader.hex > verify reset"; "shutdown"; so geht das auch nicht.. vielleicht eher so: openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; "shutdown"; Kein Plan also ich flashe mit der Original Software von Nordic, da kann man auch die Firmware neu flashen..
@pegel Das Video werde ich nochmal prüfen @Philipp K. Das Nordic Uploadtool kann ich mir noch Alternativ in ein paar Tagen ansehen wenn ich mit OpenOCD nicht weiter komme. pegel schrieb: > ktfk schrieb: >> openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg "program >> C:\bootloader.hex verify reset"; > > müsste da nicht ein -c rein? > > ... -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; ... Ich habe das -c raus genommen weil ich dachte es deaktiviert die PC Rückmeldungen auf genau den Befehl davor. welche Funktion hat -c eigentlich?
1 | -c, --command <cmd> |
2 | Add the command <cmd> to a list of commands executed on server startup. Note that you will need to explicitly invoke init if the command requires access to a target or flash. |
pegel schrieb: > ktfk schrieb: >> openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg "program >> C:\bootloader.hex verify reset"; > > müsste da nicht ein -c rein? > > ... -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; ... Ich hatte das -c wohl wo anders entfernt also nicht an dieser Stelle. Ich habe das jetzt nochmal mit -c Getestet aber gleiches Ergebnis openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; "shutdown"; C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; "shutdown"; Open On-Chip Debugger 0.10.0 (2020-01-14) [https://github.com/sysprogs/openocd] http://openocd.org/doc/doxygen/bugs.html Unexpected command line argument: shutdown;
Das -c hat doch was bewirkt. Ich bin damit etwas weiter gekommen.
Vielleicht braucht das "shutdown;" auch noch ein -c, oder sollte in der vorigen Zeichenkette enthalten sein.
nochmal ohne shutdown; openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:\bootloader.hex verify reset"; Open On-Chip Debugger 0.10.0 (2020-01-14) [https://github.com/sysprogs/openocd] Licensed under GNU GPL v2 libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3 For bug reports, read http://openocd.org/doc/doxygen/bugs.html WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD Info : clock speed 1000 kHz Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.249304 Info : Unable to match requested speed 1000 kHz, using 950 kHz Info : Stlink adapter speed set to 950 kHz Info : nrf51.cpu: hardware has 4 breakpoints, 2 watchpoints Info : Listening on port 3333 for gdb connections target halted due to debug-request, current mode: Thread xPSR: 0xc1000000 pc: 0x000006d0 msp: 0x000007c0 ** Programming Started ** Error: couldn't open Cootloader.hex embedded:startup.tcl:439: Error: ** Programming Failed ** in procedure 'program' in procedure 'program_error' called at file "embedded:startup.tcl", line 504 at file "embedded:startup.tcl", line 439
Der PC hat selber C:\bootloader.hex nochmal wiederholt als Bestätigung und dann Error: couldn't open Cootloader.hex Geantwortet. Befehl nochmal gesendet aber wieder Error: couldn't open Cootloader.hex
Er interpretiert wohl das \B falsch. leg die bootloader.hex an besten in dein Benutzerverzeichnis, wechsele dort hin, starte openocd von dort und gib die Datei ohne Pfad an. Notfalls noch den openocd Pfad zu PATH hinzufügen.
\b = Backstep ? Würde den Doppelpunkt verschwinden lassen.
Ich hatte gerade keine Zeit zum schreiben Ich habe das hex file jetzt nach Dokumente kopiert + umbenant zu X.hex und nochmal getestet mit und ohne Doppelpunkt aber immer noch ähnliche Fehlermeldungen Der Doppelpunkt hat das C in Cootloader.hex Verursacht. pegel Danke für deine Hilfe, das hat mich jetzt schon viel weiter gebracht auch ein Danke an Philipp K. und softwerker Ich muss für Heute erstmal Schluss machen. Morgen kann ich dann weiter testen Grüße
und mit forward slash '/' in den Dateinamen? Ich hatte auch schon unterschiedlich kompilierte OOCD Versionen die das jeweils anders haben wollten.
Hallo Ich habe eben nochmal weiter getestet mit C:/X.hex startet der flash Prozess aber mit Error. cd C:\Program Files\OpenOCD-20200114-0.10.0\bin openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset"; C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset"; Open On-Chip Debugger 0.10.0 (2020-01-14) [https://github.com/sysprogs/openocd] Licensed under GNU GPL v2 libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3 For bug reports, read http://openocd.org/doc/doxygen/bugs.html WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD Info : clock speed 1000 kHz Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.249967 Info : Unable to match requested speed 1000 kHz, using 950 kHz Info : Stlink adapter speed set to 950 kHz Info : nrf51.cpu: hardware has 4 breakpoints, 2 watchpoints Info : Listening on port 3333 for gdb connections target halted due to debug-request, current mode: Thread xPSR: 0xc1000000 pc: 0x000006d0 msp: 0x000007c0 ** Programming Started ** Info : nRF51822-QFAA(build code: H0) 256kB Flash, 16kB RAM Info : Flash write discontinued at 0x000007c0, next section at 0x00001000 Warn : Adding extra erase range, 0x000007c0 .. 0x000007ff Error: flash write algorithm aborted by target Error: timed out while waiting for target halted target halted due to debug-request, current mode: Thread xPSR: 0x61000000 pc: 0x0001193e msp: 0x200039c8 Error: error waiting for target flash write algorithm Error: Failed to write to nrf5 flash Error: error writing to flash at address 0x00000000 at offset 0x00000000 embedded:startup.tcl:439: Error: ** Programming Failed ** in procedure 'program' in procedure 'program_error' called at file "embedded:startup.tcl", line 504 at file "embedded:startup.tcl", line 439 Hier steht das ein nrf51 mass_erase Befehl vor dem flashen dieses Problem lösen soll https://devzone.nordicsemi.com/f/nordic-q-a/6918/programming-nrf51822-with-openocd-and-stlink-v2-issues openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "nrf51 mass_erase"; C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "nrf51 mass_erase"; Open On-Chip Debugger 0.10.0 (2020-01-14) [https://github.com/sysprogs/openocd] Licensed under GNU GPL v2 libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3 For bug reports, read http://openocd.org/doc/doxygen/bugs.html WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD Error: The 'nrf51 mass_erase' command must be used after 'init'. openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c init -c "nrf51 mass_erase"; C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c init -c "nrf51 mass_erase"; Open On-Chip Debugger 0.10.0 (2020-01-14) [https://github.com/sysprogs/openocd] Licensed under GNU GPL v2 libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3 For bug reports, read http://openocd.org/doc/doxygen/bugs.html WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD Info : clock speed 1000 kHz Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.248372 Info : Unable to match requested speed 1000 kHz, using 950 kHz Info : Stlink adapter speed set to 950 kHz Info : nrf51.cpu: hardware has 4 breakpoints, 2 watchpoints Info : Listening on port 3333 for gdb connections Info : nRF51822-QFAA(build code: H0) 256kB Flash, 16kB RAM Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections ab hier habe ich OpenOCD mit dem Taskmanager beendet Nach dem letzten flash Versuch konnte ich nichts mehr in die Console eingeben weil OpenOCD auf den start einer tcl oder Telnet Verbindung wartet und jede Eingabe in die Console blockiert Ich musste OpenOCD mit dem Taskmanager beenden. Der letzte Befehl war also auch nicht korrekt und nur von mir schnell zusammen gebastelt, deswegen suche ich jetzt im Internet erstmal nach den richtigen Befehlen.
Beim letzten Befehl fehlt vielleicht wieder -c openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c init -c "nrf51 mass_erase"; so das "nrf51 mass_erase"; nicht Ausgeführt wurde und statt dessen genau dieser Befehl Interpretiert wurde openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg Genau diese Befehl hatte auch bei meinen Tests vor ein par Tagen den Effekt das OpenOCD auf eine tcl oder Telnet Verbindung wartet
ktfk schrieb: > C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd Nein, genau anders herum. Ich meinte in den Ordner wechseln, in dem sich die hex Datei befindet, damit diese ohne Pfad angegeben werden kann. openocd kann ruhig mit pfad aufgerufen werden, da das keine Probleme bereitet.
Ich habe den ersten Befehl aus den ersten Beitrag von mir Heute 11:52 nochmal unverändert gesendet und der nRF51822 wurde diesmal Vollständig Erfolgreich Geflasht aber OpenOCD hat danach wieder auf eine tcl oder Telnet Verbindung gewartet und wurde von mir mit dem Taskmanager beendet. Vielleicht fehlt noch der "shutdown"; Befehl am Ende oder ein andere Befehl. cd C:\Program Files\OpenOCD-20200114-0.10.0\bin openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset"; C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset"; Open On-Chip Debugger 0.10.0 (2020-01-14) [https://github.com/sysprogs/openocd] Licensed under GNU GPL v2 libusb1 09e75e98b4d9ea7909e8837b7a3f00dda4589dc3 For bug reports, read http://openocd.org/doc/doxygen/bugs.html WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'. Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD Info : clock speed 1000 kHz Info : STLINK v2 JTAG v28 API v2 SWIM v7 VID 0x0483 PID 0x3748 Info : using stlink api v2 Info : Target voltage: 3.251459 Info : Unable to match requested speed 1000 kHz, using 950 kHz Info : Stlink adapter speed set to 950 kHz Info : nrf51.cpu: hardware has 4 breakpoints, 2 watchpoints Info : Listening on port 3333 for gdb connections target halted due to debug-request, current mode: Thread xPSR: 0xc1000000 pc: 0xfffffffe msp: 0xfffffffc ** Programming Started ** Info : nRF51822-QFAA(build code: H0) 256kB Flash, 16kB RAM Info : Flash write discontinued at 0x000007c0, next section at 0x00001000 Warn : Adding extra erase range, 0x000007c0 .. 0x000007ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Info : Flash write discontinued at 0x0001b4d8, next section at 0x0003b000 Warn : Adding extra erase range, 0x0001b4d8 .. 0x0001b7ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Warn : Adding extra erase range, 0x0003ed8c .. 0x0003efff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Warn : Adding extra erase range, 0x10001000 .. 0x10001013 Warn : Adding extra erase range, 0x10001018 .. 0x100013ff ** Programming Finished ** ** Verify Started ** target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc ** Verified OK ** ** Resetting Target ** Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections
aber das ist dann doch ok, da könnte sich der gdb mit verbinden und dann kann man Befehle senden. Oder 'reset run' als oocd command, statt nur 'reset'.
pegel schrieb: > ktfk schrieb: >> C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd > > Nein, genau anders herum. > > Ich meinte in den Ordner wechseln, in dem sich die hex Datei befindet, > damit diese ohne Pfad angegeben werden kann. > > openocd kann ruhig mit pfad aufgerufen werden, da das keine Probleme > bereitet. Ein Missverständnis cd C:\Program Files\OpenOCD-20200114-0.10.0\bin muss immer für den OpenOCD Programm Start Ausgefürt werden wenn man die Console öffnet Für z.b.: unerfahrene Anfänger habe ich jetzt bloss alle Komandos Aufgelistet. Johannes S. schrieb: > aber das ist dann doch ok, da könnte sich der gdb mit verbinden > und dann > kann man Befehle senden. > Oder 'reset run' als oocd command, statt nur 'reset'. Ich werde das alles noch testen Das könnte der richtige Befehl sein openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset"; "shutdown"; Ich war hier die ganze Zeit hauptsächlich eigentlich nur mit Beitrag schreiben beschäftigt (Dokumentieren), deswegen mach ich erstmal Pause vielleicht bis Morgen
habe auch nochmal nachgesehen, nur 'reset' macht 'reset run'. Habe schon lange nix mehr mit oocd gemacht, BMP ist besser und einfacher. Kann man auf dem PC laufen lassen und STLink2/3 nutzen wie U. Bonnes schon öfter schrieb oder in ein BluePill flashen für eine standalonge debug probe.
Dieser Befehl Funktioniert leider nicht openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset"; "shutdown";
ktfk schrieb: > cd C:\Program Files\OpenOCD-20200114-0.10.0\bin > > muss immer für den OpenOCD Programm Start Ausgefürt werden wenn man die > Console öffnet Deshalb mein Vorschlag mit der Windows PATH Systemvariable. Wenn dort: C:\Program Files\OpenOCD-20200114-0.10.0\bin angehängt wird, lässt sich openocd von überall ohne Pfad aufrufen.
pegel schrieb: > ktfk schrieb: >> cd C:\Program Files\OpenOCD-20200114-0.10.0\bin >> >> muss immer für den OpenOCD Programm Start Ausgefürt werden wenn man die >> Console öffnet > > Deshalb mein Vorschlag mit der Windows PATH Systemvariable. > Wenn dort: C:\Program Files\OpenOCD-20200114-0.10.0\bin > angehängt wird, lässt sich openocd von überall ohne Pfad aufrufen. Stimmt jetzt fällt mir das auch wieder ein!
Das nennt sich bei Win "Umgebungsvariablen" Da gibt es Systemvariablen/Path da würde das hinzufügen auf jeden Fall funktionieren und Benutzervariablen/PATH bei der ich nicht sicher bin.
Nach Änderung der Variablen, bitte Neustart nicht vergessen.
> Das nennt sich bei Win "Umgebungsvariablen"
Ich weiß, das hatte ich auch alles Gelernt und bloß etwas Vergessen!
Aber gut das du das hier noch Angesprochen hast.
Ich müsste als nächstes erstmal selber herausfinden wie ich den
OTA Bootloader mit der Arduino IDE Verwenden kann, und
ob der OTA Bootloader überhaupt jetzt im Controller ist.
Das Flashen muss dann auch noch wiederholbar und
Zuverlässig klappen und darf keine Glückssache sein.
Meine Umgebung war Linux, eclipse und openocd. Habe dann aber die BT Aktivitäten eingestellt, mangels Handy.
Achso
> Habe dann aber die BT Aktivitäten eingestellt, mangels Handy.
Die nRF52 und nRF51 können aber auch zwischen einander Komunizieren
und mit PC, Notebook, Handy und Smartphone.
oder meintest du was anderes?
ktfk schrieb: > Dieser Befehl Funktioniert leider nicht > openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program > C:/X.hex verify reset"; "shutdown"; Probiers stattdessen mal mit
1 | openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset exit" |
und lass das "shutdown" weg.
ktfk schrieb: > Die nRF52 und nRF51 können aber auch zwischen einander Komunizieren Theoretisch schon, dachte ich auch mal. Ich hatte auch die QFAA Variante, die hat dafür zu wenig Speicher, jedenfalls für die zu der Zeit aktuelle Firmware. Meine Idee war damals mehrere "Schlüsselfinder" mit LED und Piepser als Liste auf einem Win10 Tablet darzustellen/auszuwählen. Eine Rückmeldung "Batterie schwach" oder "außer Reichweite" sollte auch dabei sein. Aber schon um die BT Parameter zu testen gab es nur Handy Apps.
Christopher J. schrieb: > Probiers stattdessen mal mitopenocd -f interface/stlink-v2.cfg -f > target/nrf51.cfg -c "program C:/X.hex verify reset exit" > und lass das "shutdown" weg. toll Danke der Befehl funktioniert noch besser! nach dem reset exit kann ich sofort weitere Befehle eingeben und brauche jetzt kein Taskmanager mehr zum beenden. Allerdings hat der Befehl 2 mal Funktioniert (mit init + nrf51 mass_erase vorweg genau wie bei mir gestern) und 2 mal nicht Funktioniert (ohne init + nrf51 mass_erase vorweg) Der gekürzt Fehlversuch ohne init + nrf51 mass_erase vorweg openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset exit" ** Programming Started ** Info : nRF51822-QFAA(build code: H0) 256kB Flash, 16kB RAM Info : Flash write discontinued at 0x000007c0, next section at 0x00001000 Warn : Adding extra erase range, 0x000007c0 .. 0x000007ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0x000007c0 Info : Flash write discontinued at 0x0001b4d8, next section at 0x0003b000 Warn : Adding extra erase range, 0x0001b4d8 .. 0x0001b7ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0x000007c0 Warn : Adding extra erase range, 0x0003ed8c .. 0x0003efff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0x000007c0 Warn : Adding extra erase range, 0x10001000 .. 0x10001013 Warn : Adding extra erase range, 0x10001018 .. 0x100013ff Error: The chip was not pre-programmed with SoftDevice stack and UICR cannot be erased separately. Please issue mass erase before trying to write to this region Error: failed erasing sectors 0 to 0 ** Programming Failed ** shutdown command invoked C:\Program Files\OpenOCD-20200114-0.10.0\bin> Wenn ich ein init + nrf51 mass_erase Befehl vorher sende dann Funktioniert dein Befehl Alles gekürzt openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c init -c "nrf51 mass_erase"; -c "reset exit" openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset exit" C:\Program Files\OpenOCD-20200114-0.10.0\bin>openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c "program C:/X.hex verify reset exit" ** Programming Started ** Info : nRF51822-QFAA(build code: H0) 256kB Flash, 16kB RAM Info : Flash write discontinued at 0x000007c0, next section at 0x00001000 Warn : Adding extra erase range, 0x000007c0 .. 0x000007ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Info : Flash write discontinued at 0x0001b4d8, next section at 0x0003b000 Warn : Adding extra erase range, 0x0001b4d8 .. 0x0001b7ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Warn : Adding extra erase range, 0x0003ed8c .. 0x0003efff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Warn : Adding extra erase range, 0x10001000 .. 0x10001013 Warn : Adding extra erase range, 0x10001018 .. 0x100013ff ** Programming Finished ** ** Verify Started ** target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc ** Verified OK ** ** Resetting Target ** shutdown command invoked C:\Program Files\OpenOCD-20200114-0.10.0\bin> Das hatte so mit dem init + nrf51 mass_erase Befehl vorher senden 2 mal Funktioniert Flashen geht nicht ohne nrf51 mass_erase und nrf51 mass_erase nicht ohne init das hat OCD gestern ganz klar so mitgeteilt Error: The 'nrf51 mass_erase' command must be used after 'init'. und ganz wichtig hier Error: The chip was not pre-programmed with SoftDevice stack and UICR cannot be erased separately. Please issue mass erase before trying to write to this region Also erst init + nrf51 mass_erase und dann SoftDevice flashen und dann den Bootloader oder so ähnlich, ich weiß es gerade nicht? Oder waren die erfolgreichen Flash Versuche schon ausreichend?
Ich habe nochmal kurz etwas kombiniert openocd -f interface/stlink-v2.cfg -f target/nrf51.cfg -c init -c halt -c "nrf51 mass_erase"; -c "program C:/X.hex verify reset exit" ** Programming Started ** Info : Flash write discontinued at 0x000007c0, next section at 0x00001000 Warn : Adding extra erase range, 0x000007c0 .. 0x000007ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Info : Flash write discontinued at 0x0001b4d8, next section at 0x0003b000 Warn : Adding extra erase range, 0x0001b4d8 .. 0x0001b7ff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Warn : Adding extra erase range, 0x0003ed8c .. 0x0003efff target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000001e msp: 0xfffffffc Warn : Adding extra erase range, 0x10001000 .. 0x10001013 Warn : Adding extra erase range, 0x10001018 .. 0x100013ff ** Programming Finished ** ** Verify Started ** target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc target halted due to breakpoint, current mode: Thread xPSR: 0x61000000 pc: 0x2000002e msp: 0xfffffffc ** Verified OK ** ** Resetting Target ** shutdown command invoked C:\Program Files\OpenOCD-20200114-0.10.0\bin> Der Befehl hat 3 mal hintereinander sofort Funktioniert. Vielleicht habe ich den gesuchten flash Befehl jetzt gefunden.
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.