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?
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"; "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?
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;
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.
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
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.
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.
> 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.
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:> 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?