Programación JTAG con LPC4330

2

Debido a que el proyecto Ejemplo de dispositivo serie virtual de NXPUSBLib contiene un espacio en su estructura de directorio (específicamente, Ejemplo_VirtualSerialDevice / LPC43xx M4 / ...) no puedo descargar el código correctamente a través de la herramienta de programación GUI en LPCXpresso.

Por lo tanto, he intentado compilar un archivo binario y descargarlo en el núcleo M4 de mi LPCXplorer4330. Esto da como resultado el error incluido al final de esta publicación.

¿Tiene alguna sugerencia sobre cómo puedo descargar el código? Estoy ejecutando Ubuntu 12.10 x32, y el programador JTAG de LPC-Link.

He cuadruplicado los permisos de los archivos y he probado varias combinaciones de archivos AXF o BIN.

¡Gracias!

$ crt_emu_lpc18_43_nxp -wire=winusb -pLPC4330 -vendor=NXP -flash-load-exec=~/Desktop/Example_VirtualSerialDevice.bin -load-base-address=0x14000000
Ni: LPCXpresso Debug Driver v4.0 (Sep 19 2012 09:15:29)
Nc: Looked for chip XML file in /usr/local/lpcxpresso_4.3.0_1025/lpcxpresso/bin/LPC4330.xml

Nc: Looked for vendor directory XML file in /usr/local/lpcxpresso_4.3.0_1025/lpcxpresso/bin/nxp_directory.xml

Nc: Found generic directory XML file in /usr/local/lpcxpresso_4.3.0_1025/lpcxpresso/bin/crt_directory.xml

Nc: Emu(0): Conn&Reset. DpID: 2BA01477. Info: LPCLINK_1_1
Nc: SWD Frequency: 3000 KHz. RTCK: False. Vector catch: False.
Nc: Packet delay: 0  Poll delay: 0.
Nc: NXP: LPC4330  Part ID: 0x00000000
Cr:v Registered license, download limit of 128K
Et:58: Cannot open binary file 'Example_VirtualSerialDevice.bin'
    
pregunta Peaches491

1 respuesta

1

No estoy seguro de qué placa de desarrollo está utilizando aquí, así que YMMV con esto, pero:

1) Use JTAG directo con una herramienta como OpenOCD. Si tienes el lpc4330-xplorer, como yo, sin embargo, esto puede ser un poco complicado (si estás tratando de depurar la configuración de arranque flash de esta placa (1 encendido, 2 apagado, 3 apagado, 4 apagado en el conmutador DIP de configuración), entonces se requiere un reinicio doble 99.9% del tiempo (he visto una o dos veces que este no era el caso NOT ). Según todo lo que he encontrado, este se debió a un error de silicio. En cualquier caso, por lo general no carga código de esta manera.

2) Utilice el bootrom incorporado de NXP para cargar su código. Funciona con USB0 de la lpc4330. Como es probable que necesite alimentar su placa de desarrollo, probablemente ya esté conectado (a menos que tenga un enchufe de alimentación separado). Las herramientas que necesitarás son estas:

enlace

Esto habla con el cargador de arranque SPIflash desde NXP (que está incluido en el tar). También necesitará una copia reciente de dfu-util. Yo uso 0.7, pero hay versiones mucho más nuevas. En cualquier caso, para escribir en RAM:

dfu-suffix -a filename -v 0x1fc9 -p 0x000c
dfu-prefix -a filename -L
dfu-util -D filename

Esto pondrá tu código directamente en la memoria RAM y será ejecutable. El primer comando proporciona a DFU la información para encontrar tu placa de desarrollo (por lo que puedes tener un vid y un pid diferentes aquí). El segundo comando coloca el encabezado LPC en el binario para que el cargador de arranque pueda usarlo. El comando final lo envía. Recuerde, esto SOLO FUNCIONA si utiliza una configuración de RAM. Esto significa que, CUALQUIER ARCHIVO DE ENLACE QUE USTED DEBE PONER SU CÓDIGO EN LA RAM! Lee eso último otra vez. Si creas algo y lo vinculas para FLASH, luego escríbelo en la memoria RAM, esto fallará y tu procesador se sentará allí tan activo como la arena de la que se hizo. Si quieres FLASH el código:

1) dfu-util -d 0x1fc9:0x000c -D iram_dfu_util_spiflash.bin.hdr

2) lpcdfu -d 3 -e -D "filename" -U -L "logfile name" -C "command logfile" -A 0x14000000

Esto primero enviará a través del spiflasher. En segundo lugar, utiliza lpcdfu para hablar con el código de spiflasher. Ahora, esto funciona para un lpc4330-xplorer. Si tiene una placa de desarrollo DIFERENTE que NO tiene un spiflash, es probable que esto no funcione, pero el primer método aún le permitirá quedarse sin memoria RAM. Como antes, ASEGÚRESE DE QUE EL ESCRITOR DE ENLACE ESTÁ APROPIADAMENTE CONFIGURADO PARA EL FLASH AQUÍ. Lea eso otra vez. Si no lo hace, su procesador volverá a verse como arena de playa, ya que no arrancará adecuadamente.

Ya que está usando LPCXpresso, puede buscar en sus archivos (no he hecho esto, pero tienen que tener estas cosas en algún lugar) y ver si puede encontrar qué archivos están usando para los archivos del enlazador. Escribí el mío porque realmente no creo en usar estas herramientas extrañas para el desarrollo integrado, pero realmente me gusta saber exactamente a dónde va mi código.

Buena suerte programando tu dispositivo.

    
respondido por el roboknight

Lea otras preguntas en las etiquetas