Autor Tema: Ayuda, no consigo arrancar placa LPC2148  (Leído 3478 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado splasma2

  • PIC16
  • ***
  • Mensajes: 131
Ayuda, no consigo arrancar placa LPC2148
« en: 09 de Enero de 2009, 18:30:40 »
Hola a todos, me presento en este foro, aunque ya he publicado algunos post en el foro de los PICs.

Hasta ahora he estado usando PIC de todos los tamaños, pero quería pasarme a otro micro más potente de 32 bits, y creo que los ARM pueden ser la opción buena.

Me compre una plaquita por ebay con un LPC2148 y un JTAG wriggler para probar, todo muy baratito.. :) :).

He instalado el enorno Key uVision3 y la aplicación H-JTAG / H-Flasher para flashear. El problema que tengo es que al probar el ejemplito de parpadeo de LEDS ( blinky) que viene con Key, consigo que funcione desde el debugger del IDE de Key, es decir consigo "flasher" y ejecutar ( veo como los LEDs parpadean en la placa) , pero so consigo que el programa corra sin el entorno, es decir de manera autónoma, sin conexión al JTAG.

Otra cosas que me ocurre, es que cuando intento ejecutar el comando "Flash -> Download" me da un error de "Cannot Load Flash Programming Algorithm" y no lo ejecuta, he seguido todo lo que se dice sobre este error en los foros de Keil, pero sigue igual, lo curioso es que cuando lanzo el debugger, donde todo funciona correctamente, veo como se lanza H-Flasher para flasher y todo va bien...

Chicos, echadme una mano, ya se que somos pocos, pero a ver si hay suerte....


GRACIAS...

Desconectado psykhon

  • Moderador Local
  • PIC24F
  • *****
  • Mensajes: 823
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #1 en: 10 de Enero de 2009, 12:18:00 »
mira, el problema es un poco ambiguo pero suena a que el codigo esta configurado para ejecutarse en ram
No, no se lo que estoy haciendo. Nadie sabe que estoy haciendo. Por eso se llama "Investigacion".

Desconectado splasma2

  • PIC16
  • ***
  • Mensajes: 131
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #2 en: 10 de Enero de 2009, 17:27:00 »
psykhon, a lo mejor no he descrito bien el problema, intento aclarar más:

 La placa corre el programa perfectamente cuando desde el entorno del Keil, ejecuto el comando "run" del debugger, en la placa se encienden los LEDs. Como dices puede ser que se ejecute en RAM, ¿ es esa  la configuración por defecto del entorno ? , si es así no sé como indicarle que se ejecute desde flash.

 Si genero un fichero HEX desde Keil y lo cargo con el H-Flasher, tampoco funciona y he comprobado en el fichero HEX, que las dirección del código incluido  empieza en 0x00000000 ( dirección origen de la flash, creo. ..soy nuevo con este micro...).


Desconectado splasma2

  • PIC16
  • ***
  • Mensajes: 131
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #3 en: 12 de Enero de 2009, 20:39:32 »
Sigo investigando, en un post de Darukur he encontrado esto:

"Un avance mas:
En el KEIL, en "option for target" se setean los rangos de memoria para FLASH ROM y RAM.
Tiene las "Read only memory areas" y "Read / write memory areas"
Tenia los rangos bien configurados pero arranca en 100000 (pos de inicio de FLASH) pero evidentemente generaba un hex con longitud como para empezar desde cero.
Cuando se lo pasaba al H-Flasher me decia que no entraba en su cap de mem.
Configure dos secciones de mem, una la de los vectores de arranque y otra de mem Flash y el H-Flasher funciono perfecto.
Ahora tengo debug en RAM y Flasheado en ROM desde el KEIL!!!
"

Pero no me queda claro que valores ha puesto en las secciones de memoria, para conseguir un HEX que pueda flashear con el H-Flasher. HELP!!!

Desconectado splasma2

  • PIC16
  • ***
  • Mensajes: 131
Re: Ayuda, no consigo arrancar placa LPC2148 (SOLUCIONADO)
« Respuesta #4 en: 17 de Enero de 2009, 10:22:43 »
SOLUCIONADO.


Bueno chicos, después de leer y releer los manuales del LPC2148 he encontrado  el problema. Parece ser que estos bichitos chequean, cuando arrancan, que el codigo este "firmado", bueno realmente es un checksum de los valores de los vectores de interrupción que hay que poner en la dirección 0x14.

El Keil, cuando genera el fichero HEX, no lo incluye, para mi esto es un fallo importante  :x :x, y hay que poneselo a mano; yo lo he hecho cambiado esto en el fichero startup.s:

                ;NOP                            ; Reserved Vector
SIGNATURE      DCD      0xB9205F80            ; Signature

Hecho esto, lo grabo con el H-Flasher y a correr.   :-/ :-/ :-/ :-/


Desconectado grosella

  • PIC10
  • *
  • Mensajes: 3
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #5 en: 04 de Agosto de 2009, 07:33:29 »
Hola a todos,
me gustaría algo más de información sobre la solución propuesta por splasma2, ya que soy bastante nueva con temas de micros y tengo un par de cosas en la cuerda floja.

Tengo un ProgramaA que lo lanza el bootloader, y que en un determinado momento llama a un ProgramaB. (Estoy empleando LPC2200). Al saltar de ProgramaA a ProgramaB no hace nada y deduzco que es porque no tengo la signature de ProgramaB incluida.

Para calcular la signatura de B, he calculado previamente el checksum del contenido de los vectores de interrupcion al arrancar el ProgramaB y se lo quiero incluir manualmente en el startup.s

Cuando lo voy a incluir en el startup.s me da todo tipo de errores. En los manuales pone que la forma es incluir
      .long 0x05855869 en vez de NOP
y he probado también a incluir lo propuesto por splasma2 pero me dice que no entiende SIGNATURE y no se ni como ni donde definirlo.

¿Alguna idea para que pueda funcionar mi ProgramaB please?

Thanks,

Grosella.
       







Desconectado grosella

  • PIC10
  • *
  • Mensajes: 3
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #6 en: 06 de Agosto de 2009, 07:28:55 »
Hola de nuevo,

Ya he conseguido meter la signature en el startUp.s pero debo tener problemas en su cálculo porque sigue sin hacer nada coherente.  Lo que hago ahora es ver en que posición están los vectores (Reset_Handler, Undef_Hander...) y sumar su contenido.

Ex.  Reset_ Handler está en 0x00000020 tiene el valor 0x80010054, el Undef_Handler está en 0x00000024 y tiene el valor 0x80010040,...

Sumo los valores 0x80010054, 0x80010040,... y calculo su complemento a dos.

Ese valor es con el que modifico el StartUp.s y el que aparece en la posicion 0034 del fichero Hex. (Que por defecto cuando no se incluye nada está a cero).

¿Alguna idea de que me está fallando?
 
Thanks por adelantado, por haber leido (y espero que entendido mi explicación).

Grosella

Desconectado splasma2

  • PIC16
  • ***
  • Mensajes: 131
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #7 en: 25 de Agosto de 2009, 14:03:10 »
Hola grosella,

El poblema que yo tenia , creo que es diferente a lo que a ti te pasa, yo conseguia correr mi programa desde el entorno Keil con el JTAG enchufado, pero no conseguia arrancarlo sin el. ¿ te pasa a ti lo mismo ?

Por otro lado , comprueba que la suma que haces incluye a los restantes 6 vectores. Suerte.

Desconectado grosella

  • PIC10
  • *
  • Mensajes: 3
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #8 en: 26 de Agosto de 2009, 03:07:03 »
Tienes razón,

creo que mi problema no está relacionado con la signature, creo que tiene que ver más con que se me solapen dichos vectores de interrupción al pasar de un programa a otro. De hecho sin incluir signature parece que iría la cosa si solvento el otro tema.

Gracias por haberme respondido.
Un saludo,

Grosella

Desconectado splasma2

  • PIC16
  • ***
  • Mensajes: 131
Re: Ayuda, no consigo arrancar placa LPC2148
« Respuesta #9 en: 14 de Octubre de 2009, 08:02:18 »
Hola de nuevo.

Hasta ahora no había tenido oportunidad de comentaros que el problema que originó este hilo, tiene una solución mucho más sencilla:

Yo uso H-Flasher para programar y ... esta herramienta tiene una opción que genera automaticamente el checksum    :oops: :oops: :oops:

La opción es "Adjust the checksum of vector table before programming"... más claro imposible, esto me pasa por no leerme los manuales  :(

Aprovecho para comentaros que ahora estoy probando una versión FreeRTOS bastante maja en la plaquita y parece que funciona... buscad en google lpc2148_demo...

Suerte.