Quiero cargar el programa a mi STM32F4 Discovery de la junta utilizando st-flash comando.
El problema es cuando trato de cargar *.hex o *.fichero elf es simplemente no funciona.
He intentado de muchas maneras ( como el uso de xxd ) de la conversión de *.elf o *.hex a *.bin, pero todavía no está en el trabajo cuando puedo subir. Y sí, he intentado subir un archivo hex desde otro ordenador con Windows y funciona.

De la muestra ( tres primeras líneas, sólo para mostrar cómo se ve en el interior ) de un archivo hex:

:020000040800F2
:100000000000022099020008A1020008A5020008D1
:10001000A9020008AD020008B102000800000000BB

Mi sistema operativo es Ubuntu 14.04 LTS.

Gracias por la ayuda!

OriginalEl autor Jacajack | 2014-11-16

3 Comentarios

  1. 8

    Supongo que tiene linux y ha instalado ARM GCC toolchain, por lo que acaba de hacer:

    arm-none-eabi-objcopy -I ihex --output-target=binary code00.hex code00.bin
    
    Cuidado: esto distorsiona la carga de la dirección de la base. Trabajará para OPs caso, aunque, como la ihex bytes de datos de inicio en 0000. También, cualquier conjunto de herramientas es bueno para esta operación, no necesariamente BRAZO.
    1. la pregunta es para el BRAZO, por lo tanto la respuesta es para el BRAZO; 2. los archivos de la papelera no contienen carga de dirección de la base de que la reclamación será ilegible. especifique la dirección cuando se carga el .bin

    OriginalEl autor A. Genchev

  2. 2

    .hex formato de archivo está documentado en la web. Usted necesita un cargador de programa capaz de entenderlo, ya que cuenta con varios tipos de registros para el control del proceso de carga. Algunos de los registros de control de punto de entrada de la dirección. Otros son los datos a ser cargados en algún dirección fija.

    Usted puede obtener información en la wikipedia (lo he encontrado) por Intel formato Hexadecimal (que es como se llama). Si todos los datos es de sólo un segmento y no hay punto de entrada se especifica que, en teoría, puede convertir a binario los datos a ser cargados, pero eso es improbable.

    Es un archivo de texto hecha de líneas que comienzan con ‘:’ carácter, luego viene un dos en campo número hexadecimal que representa el número de bytes de los datos de este registro, a continuación, la dirección de estos datos se cargan en, a continuación, el tipo del archivo, que puede ser uno de:

    • 00 Este valor es para un montón de datos, normalmente de 16 bytes (0x10)
    • 01 Final del archivo. No tiene datos, por lo que siempre es codificado como :00000001FF
    • 02 Ampliado de la dirección del segmento, para permitir que las direcciones con más de 16 bits.
    • 03 de Inicio punto de Entrada de la dirección, para registrar el inicial CS:IP dirección en 0x86 arquitectura.
    • 04 Extendido Dirección Lineal, para especificar direcciones de 32 bits. Esto especifica la parte superior de 16 bits de dirección de parte de 00 registros.
    • 05 Inicio del punto de Entrada de Dirección Lineal. Este es el de 32 bits lineal de punto de entrada de dirección.

    Luego viene n bytes (n es el valor del primer campo) de los datos (en hexadecimal codificado) para ser cargado y, finalmente, un byte de suma (la suma en complemento a dos de todo el registro de bytes desde el colon).

    ¿Qué proponen para mí? Yo estaba usando st-flash write bingotfromhex.bin 0x8000000. De hecho, estoy aprendiendo openOCD pequeños pasos para que yo pueda subir *.archivos elf. Gracias por explicar cómo hex archivos de trabajo!
    No sé. Formato Intel hex es un general, muy extendido formato. Yo no trabajo con Armas. No puedo dar mucha más ayuda. Lo siento. Tal vez usted tiene que usar una opción para st-flash para ser capaz de analizar el archivo hex… ¿has probado st-flash –help ???
    Es aceptar. c: de todos Modos el conocimiento que me dio puede ser muy útil. Gracias por la ayuda!
    Estoy buscando st-flash de la documentación de la utilidad, pero sin resultados todavía.
    tjakubowski.wordpress.com/2012/12/04/… (parece que funciona con el .hex archivos)

    OriginalEl autor Luis Colorado

  3. 1

    Han considerado que el uso de arm-none-linux-gnueabi-objcopy (o similar) en lugar de xxd?
    Esto se puede encontrar en cualquier BRAZO de herramientas.

    Sí que tengo, pero hay una posibilidad de que lo hizo de manera incorrecta. Ahora estoy lejos de mi equipo. (con mi móvil para publicarlo) creo que he utilizado algo como arm-none-eabi-objcopy myhex.hex -O binary mybin.bin pero no estoy seguro ahora. Voy a dejar que usted sabe que cuando llego a casa.
    Ok, puedo acceder a mi PC ahora. Así que me he probado las dos opciones: arm-none-eabi-objcopy "F4 Discovery test.elf" -Obinary "out.bin" y arm-none-eabi-objcopy "F4 Discovery test.elf" -Oihex "newout.bin" – no funciona, al menos para mí. En realidad estoy tratando de entender OpenOCD y he subido mi *.hex y funciona…
    tal vez usted tiene el nombre que termina con .hex

    OriginalEl autor Adashi

Dejar respuesta

Please enter your comment!
Please enter your name here