Autor Tema: No consigo pasar código .asm a .hex  (Leído 12619 veces)

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

Desconectado cobmirpic

  • PIC10
  • *
  • Mensajes: 20
No consigo pasar código .asm a .hex
« en: 16 de Diciembre de 2008, 07:51:08 »
Hola.
Estoy intentando pasar un fichero .asm a .hex y no hay manera. Después de mucho leer estoy un poco desesperado. Empiezo por investigar un poco y llego a la conclusión que hay varias formas de hacerlo, con el MPLAB, y con el IC-prog. Empiezo con el IC-prog. Hago una prueba, me bajo de una web (Pablin.com) el .asm y el .hex. Cargo el asm en el IC-prog y lo guardo como .hex. Vale.  Ahora compruebo lo que me ha guardado y veo que no tiene nada que ver con el .hex que me he bajado de internet. Digo esto no funciona. Voy con el MPLAB, project wizard,  nombre del pic, etc etc. Le doy a Build all y salen un montón de errores y no hay .hex por ninguna parte. Conclusión: (Despúes de casi dos días perdidos). ¿Hay algún alma caritativa que me pueda hacer el favor de pasar el fichero.asm a .hex o explicarme como demonios se puede hacer de una manera fácil?. Por cierto el fichero .asm que quiero pasar es un proyecto de un reloj de la casa Microchip.
Gracias por leerme.
Un saludo.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: No consigo pasar código .asm a .hex
« Respuesta #1 en: 16 de Diciembre de 2008, 08:01:45 »
No puedes pasar directamente el asm a hex .

NAda que ver!

Lo que tienes que hacer es compilar ese ASM y el compilador te generará su HEX correspondiente.

Lo que en si hace es pasar del ASM(las intrucciones) su equivalente a Nmonico HEx,que es lo que ENtiende nuestro uC.

Puedes ABrir ese ASM con MPLAB ,guardalo(esto es opcional) y dale quick build .

Si le das BUILDALL te da error porque seguro no cargas ni el *.lkr,*.inc.,ni un proyecto creado.

Asi que dale en Project , Quickbuild y te generá el HEX , el HEX es el que tienes que abrir con el ICprog o cualquier otro soft paa programar.

Un saludo!
« Última modificación: 16 de Diciembre de 2008, 08:06:15 por AKENAFAB »

Desconectado cobmirpic

  • PIC10
  • *
  • Mensajes: 20
Re: No consigo pasar código .asm a .hex
« Respuesta #2 en: 16 de Diciembre de 2008, 09:10:04 »
Muchas gracias por responder.
Abro el MPLAB, cargo el asm, le doy a Quickbuild y me da un montón de errores. Me crea tres archivos (.err, .lst, .cod,). No se que puedo hacer mal. Pongo el archivo que me he bajado de la página de Microchip, por si lo pudieras comprobar, a ver si es el .asm que está mal, cosa que dudo. Es el proyecto AN615 de microchip.
Gracias.
Un saludo.

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: No consigo pasar código .asm a .hex
« Respuesta #3 en: 16 de Diciembre de 2008, 10:06:41 »
pero que quieres hacer grabar un pic un proyecto??? porque si es eso lo que tienes que hacer es grabar el .hex del proyecto al pic... con el icprog o con el programa que le venga bien a tu programador. El .hex es el resultado de la compilación del asm.

Desconectado cobmirpic

  • PIC10
  • *
  • Mensajes: 20
Re: No consigo pasar código .asm a .hex
« Respuesta #4 en: 16 de Diciembre de 2008, 12:05:52 »
Si, lo que quiero es grabar un .hex en el pic. El problema es que el harware que tengo para programar no soporta el pic 16c54. Hay una empresa que me graba el pic, pero les tengo que llevar el fichero .hex, y es ahí donde no consigo compilarlo y obtener el fichero .hex para la grabación.
Saludos.

Desconectado WillyP

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 280
    • Sitiónica
Re: No consigo pasar código .asm a .hex
« Respuesta #5 en: 16 de Diciembre de 2008, 12:23:33 »
Yo te sugeriría si disponés del código fuente en asm que primero migres hacia un Pic de la línea flah reprogramable, los 16C54 son OTP (programables sólo una vez) y especialmente ese Pic,  es de programación paralela no serial. Microchip aconseja la migración de este Pic hacia dispositivos flash.
No es dificil hacer el cambio de un pic a otro. Hay que tener en cuenta las direcciones de los registros utilizados y la palabra de configuración.

El 16F54 es el reemplazo directo del 16C54. (pero no se si por tu zona se pueda conseguir). 

Desconectado flacoclau

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1692
    • El Micro Reactor
Re: No consigo pasar código .asm a .hex
« Respuesta #6 en: 16 de Diciembre de 2008, 14:03:26 »
hola cobmirpic: estuve revisando el código y está mal redactado y con graves errores de sintaxis de asembler, por ejemplo donde dice DECFSZ Temp no te especifica el destino, y así en gran parte del código, donde es dificil saber que es lo que hace el programa y a donde deben quedar los datos.
En síntesis, así al tuntún no creo que te sirva, salvo que aprendas a programar en asembler e interpretes lo que quiso hacer el autor y lo corrijas.
otra cosa es que ese micro ya está obsoleto, por lo que te conviene migrar a uno más nuevo como dicen los colegas mas arriba.
Las personas con buena ortografía me atraen textualmente.

El Micro Reactor

Córdoba capital - Argentina.

Desconectado cobmirpic

  • PIC10
  • *
  • Mensajes: 20
Re: No consigo pasar código .asm a .hex
« Respuesta #7 en: 16 de Diciembre de 2008, 16:35:55 »
Gracias por responderWillyP y flacoclau.
Parece que la cosa es más dificil de lo que pensaba. El código del pic está redactado por la casa microchip y tienen un pdf, el código y el pdf en están en esta dirección http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011114
Lo curioso es que al final del pdf después del código pone:
Errors : 0
Warnings : 0
Messages : 0
De ahí he sacado la información para construirme el reloj descrito en el pdf. Migrar a otro, o corregir el código para mi es inpensable porque no tengo ni idea.
Saludos

Desconectado WillyP

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 280
    • Sitiónica
Re: No consigo pasar código .asm a .hex
« Respuesta #8 en: 16 de Diciembre de 2008, 20:53:29 »
Hola, estuve viendo el archivo y lo compilé para saber que pasaba con el MPlab v8.10 que es el que tengo instalado. Salen 143 errores por lo tanto no se genera el archivo Hex y también innumerables mensajes de atención.

Te doy una ayudita para que lo compiles sin errores y se genere el archivo hex. Te aclaro que no me detuve a analizar el programa, solo a ver las causas de los errores.
Te aconsejo que pases por el subforo de ensamblador y sigas el  tutorial del amigo Leon Pic "ASM desde 0" para ir comprendiendo el código del programa. http://www.todopic.com.ar/foros/index.php?topic=23623.0
Ya que tendrás que completar los destinos de los registros que no están detallados en el programa, como bien dijo  anteriormente Flacoclau.

La cabecera del programa hay que corregirla:

Original:

LIST F=INHX8M,P=16C54
INCLUDE "c:\pictools\picstarc\p16C5X.inc"
        __FUSES _CP_OFF&_WDT_OFF&_LP_OSC

Debe quedar así y en esta posición no en el margen. En el INCLUDE de arriba figura una ruta que seguramente no existe en tu PC.

                               LIST P=16C54
                               INCLUDE "p16C5x.inc"
                               __FUSES _CP_OFF&_WDT_OFF&_LP_OSC

Compilando nuevamente ya tenemos solo 3 errores debido al contador de programa definido como PC y debe ser PCL.
Cliqueando sobre los errores aparecidos, nos lleva al código y lo corregimos:

Figura como:            debe ser :      (esto está repetido 3 veces en el código )

ADDWF   PC              ADDWF   PCL

Compilamos nuevamente y ya no hay más errores, se generó el hex. Pero sale una lista inmensa de mensajes de atención debido a que no está definido el destino de los datos de los registros si F o W. Por defecto se asume como F.

Ahora en el PDF está el  mismo archivo como list. Por lo que observé a simple vista, ahí si están definidos los destinos.

Tenés que ver esto último y agregarlos al código asm y compilar nuevamente hasta que no salgan más mensajes de atención.

Supongo que ya tendrás el proyecto creado desde el Mplab, en todo caso crealo con el Wizard.

Cuando tengas todo completo lo de la migración hacia otro Pic se puede ver. Pero tenés que entender primero las bases del asm.

Saludos.-

Desconectado cobmirpic

  • PIC10
  • *
  • Mensajes: 20
Re: No consigo pasar código .asm a .hex
« Respuesta #9 en: 16 de Diciembre de 2008, 22:42:31 »
¡WillyP muchas gracias por dedicarme tu tiempo!, bueno y a los que me habeis contestado también. He modificado el programa siguiendo tus indicaciones WillyP, y finalmente he corregido el destino de los datos, que como tu decías era F en todos los casos..... Y ha generado el .hex sin ningún error. El siguiente paso es comprobar si funciona grabándolo en el micro. Tardaré un tiempo porque no tengo la placa de circuito impreso todavía hecha. Lo de migrar a otro micro no me lo planteo si este funciona. Ya os contaré en los próximos días si se soluciono el tema.
Gracias a todos.
Saludos desde España.