Varios errores al escribir un archivo de imagen con OpenOCD y Stlink v2 a NRF51822

2

Quiero actualizar un firmware en mi módulo nrf51822. Estaba probando un ejemplo de Nordic, concatené el archivo bin con el archivo s110 y funcionó bien. Ahora, cuando fui a mostrar el archivo bin, he aquí lo que obtuve (seguí la wiki enlace )

> flash probe 0
nRF51822-QFAA(build code: Gx0) 256kB Flash
flash 'nrf51' found at 0x00000000

> flash banks
#0 : nrf51.flash (nrf51) at 0x00000000, size 0x00040000, buswidth 1, chipwidth 1
#1 : nrf51.uicr (nrf51) at 0x10001000, size 0x00000000, buswidth 1, chipwidth 1

por alguna razón, no tengo idea de por qué size 0x00000000 .. ¿alguna pista?

Si lo hago

> nrf51 mass_erase
> flash banks
#0 : nrf51.flash (nrf51) at 0x00000000, size 0x00040000, buswidth 1, chipwidth 1
#1 : nrf51.uicr (nrf51) at 0x10001000, size 0x00000100, buswidth 1, chipwidth 1

Ahora cuando intento actualizar el firmware, obtengo lo siguiente:

> flash write_image erase    ~/NRF51822/Board/pca10001/s110/ble_app_proximity/gcc/_build/test.bin 0
auto erase enabled
Padding image section 0 with 12596 bytes
using fast async flash loader. This is currently supported
only with ST-Link and CMSIS-DAP. If you have issues, add
"set WORKAREASIZE 0" before sourcing nrf51.cfg to disable it
jtag status contains invalid mode value - communication failure
error waiting for target flash write algorithm
Failed to enable read-only operation
Failed to write to nrf51 flash
error writing to flash at address 0x00000000 at offset 0x00000000

Previous state query failed, trying to reconnect

Me está volviendo loco, no tengo ni idea de por qué está sucediendo eso. No pude hacerlo funcionar.

Nota: Tengo un dongle STLink-v2, no hay placa STM32 involucrada. También actualicé el firmware stlink-v2 usando la utilidad stlink.

Una última cosa, el archivo test.bin que estoy usando es básicamente el resultado de lo siguiente (usando S110 v6 y ejemplo de sdk v6): srec_cat ~/Downloads/s110_nrf51822_6.2.1/s110_nrf51822_6.2.1_softdevice.hex -intel ble_app_proximity_s110_xxaa.hex -intel -o ./test.bin --line-length=44

    
pregunta moenad

1 respuesta

1

Después de nrf51 mass_erase , probablemente necesites un reset halt .

Si eso no ayuda:

If you have issues, add
"set WORKAREASIZE 0" before sourcing nrf51.cfg to disable it

¿Lo intentaste? Eso debería eliminar los problemas, pero el parpadeo será lento. Es posible que tenga mejor suerte con un valor mayor que 0 pero más pequeño que el valor predeterminado, como "establecer WORKAREASIZE 0x2000".

    
respondido por el Jim Paris

Lea otras preguntas en las etiquetas