Consulta comandos Flash OpenOCD

108 views
Skip to first unread message

Federico Di Nardo

unread,
Sep 17, 2021, 4:12:42 PM9/17/21
to Embebidos32
Buenas tardes a todos. Quería hacer una consulta acerca de OpenOCD. Tengo una placa TMS570ls3137, y estoy usando la versión de OpenOCD 0.9.0, con un debugger Olimex ARM-USB-OCD-H. Lo que necesito hacer, es poder borrar la flash del mismo. 
Para usarlo, ejecuto el OpenOCD en una terminal de la siguiente manera: openocd.exe  -f ./interface/ftdi/olimex-arm-usb-ocd-h.cfg -f ./target/ti_tms570ls3137.cfg -f (el cual se inicializa satisfactoriamente).
Mediante el PuTTy, ejecuto el cliente Telnet, y conecta bien con el servidor. El problema, es cuando quiero usar los comandos para borrar la flash. Cuando ejecuto los comandos flash erase_bank, flash erase_address, etc, me aparece un mensaje que dice comandos inválidos. Si ejecuto gdb_flash_program enable, me aparece que se puede enviar después del comando 'init' (el cuál nuncaejecite).

No se si se necesita algún comando previo para poder borrar la flash, o hay algún problema en el OpenOCD/TMS570. No tengo mucha experiencia en su uso.

Muchas gracias.

M. Sebastián Tobar

unread,
Sep 17, 2021, 5:48:21 PM9/17/21
to embeb...@googlegroups.com
Cuál es el mensaje de error que te devuelve? con qué parámetros invocás los comandos?

Saludos
--
Sebastián

--
-- Recibiste este mensaje porque estás suscripto al Grupo Google Embebidos32. Para postear en este grupo, escribe un email a embeb...@googlegroups.com. Para des-suscribirte, envía un email a embebidos32...@googlegroups.com. Para más opciones, visita el sitio del grupo en https://groups.google.com/d/forum/embebidos32?hl=es
---
Has recibido este mensaje porque estás suscrito al grupo "Embebidos32" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a embebidos32...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/embebidos32/985a8b03-4cf9-44cb-94ed-193d4edce253n%40googlegroups.com.

Federico Di Nardo

unread,
Sep 18, 2021, 3:36:10 PM9/18/21
to Embebidos32
Buenas. Gracias por comentar.

Al ingresar el comando flash erase_sector 0 0 0, por ejemplo, me devuelve:
'invalid subcommand "erase_sector 0 0 1" in procedure flash'

Al poner solamente el comando 'flash', me aparecen las siguientes opciones:

> flash
flash
  flash bank bank_id driver_name base_address size_bytes chip_width_bytes
            bus_width_bytes target [driver_options ...]
  flash banks
  flash init
  flash list
gdb_flash_program ('enable'|'disable')
mflash
  mflash bank soc_type base_addr pin_id target
  mflash init
nand
program <filename> [address] [verify] [reset] [exit]
flash : command requires more arguments
in procedure 'flash'

No me aparecen las opciones que figuran en el Manual de OpenOCD, como flash erase_address, flash probe, flash erase_bank, entre otras.

M. Sebastián Tobar

unread,
Sep 19, 2021, 9:02:00 PM9/19/21
to embeb...@googlegroups.com
Buenas noches! Acabo de probar en una edu-ciaa el comando:
> flash erase_sector 0 0 0
y funcionó correctamente. 
Con respecto a que no te aparecen las opciones que figuran en el manual al ejecutar el comando flash, se puede deber a la versión de OpenOCD. 
Probaste ejecutar:
> init
> halt 0
> flash erase_sector 0 0 0

Saludos
--
Sebastián

Federico Di Nardo

unread,
Sep 21, 2021, 5:51:12 PM9/21/21
to Embebidos32

Buenas Sebastián! Gracias por su sugerencia. Probé esos comandos, pero sigo con el mismo error. La versión de OpenOCD que estoy usando es la última disponible. Por lo que estuve viendo, en el ConfigFile del tms570 le faltaba llamar al driver de la flash. Le agregué las siguientes líneas:

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME f0xx 0 0 0 0 $_TARGETNAME

Al volverlo a ejecutar, veo que le están faltando los drivers de flash para este micro (que deberían encontraren el scr/flash/nor). 

C:\Users\feder\OneDrive\Escritorio\openocd-0.9.0-rc1\bin-x64>openocd.exe -f ./interface/ftdi/olimex-arm-usb-ocd-h.cfg -f ./target/ti_tms570ls3137.cfg
Open On-Chip Debugger 0.9.0-rc1 (2015-04-24-22:09)
Licensed under GNU GPL v2
For bug reports, read
adapter speed: 1500 kHz
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
TI BE-32 quirks mode enabled
Error: flash driver 'f0xx' not found

Los archivos f0xx que le faltan los pude encontrar en un git. Sabe cómo podría hacer para que los encuentre al ejecutar el openocd? Probé copiarlos a la carpeta de instalación de OpenOCD pero tuve el mismo resultado.

Muchas gracias !

M. Sebastián Tobar

unread,
Sep 21, 2021, 6:10:11 PM9/21/21
to embeb...@googlegroups.com
Buenas tardes! La última versión de OpenOCD es la 0.11. La verdad no se cómo maneja esos drivers OpenOCD. Tal vez lo que podrías probar es descargar el código fuente y compilar, no es complicado el procedimiento, te dejo los comandos que usé en Ubuntu 20.04:

# apt install make libtool pkg-config autoconf automake texinfo libusb-1.0-0-dev git libgpiod-dev
# git clone git://git.code.sf.net/p/openocd/code openocd
# cd openocd
# ./bootstrap
# ./configure
# make

Saludos
--
Sebastián


Carlos Pantelides

unread,
Sep 22, 2021, 9:29:05 AM9/22/21
to Embebidos32
unas preguntas, ¿openocd envía comandos a la placa, ok?

¿los manda directamente o hay una capa intermedia que hace la adaptación a cada placa?

¿puede ser que esa placa o la capa adaptadora que usás no tengan implementados esos comandos?

saludos
Reply all
Reply to author
Forward
0 new messages