TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: Medusa en 04 de Febrero de 2010, 19:58:56

Título: archivo *.cof
Publicado por: Medusa en 04 de Febrero de 2010, 19:58:56
Hola, estoy usando el pic12f629, el MPLAB ide 8.10 y estoy programando en assembler, mi problema es que el mplab no me genera el archovo *.COFf necesario para la simulacion y depuracion con el proteus,  he programado otros pics de la serie f16 y f18 y nunca tuve esta clase de problemas claro que siempre los he programado en CCS, hay alguna configuracion especial que tengo que hacer para obtener el archivo COF?, alguien me podria dar una sugerencia???
Título: Re: archivo *.cof
Publicado por: PalitroqueZ en 04 de Febrero de 2010, 20:03:28
en ensamblador los archivos necesarios para simular, son .lst y .sdi

Título: Re: archivo *.cof
Publicado por: Medusa en 04 de Febrero de 2010, 20:22:37
yo necesito el archivo *.COF para usarlo con el Proteus
Título: Re: archivo *.cof
Publicado por: pablomanieri en 04 de Febrero de 2010, 20:47:37
Para simular en el proteus, cargas el .hex y el mismo proteus se encarga en base al .lst y el .sdi (si estan en la misma carpeta que el .hex), de generar el código para hacer debug.
Título: Re: archivo *.cof
Publicado por: Medusa en 05 de Febrero de 2010, 10:13:50
Les repito  :mrgreen: necesito el archivo *.COF para ver el codigo que se esta ejecutando cuando hago la simulacion con el proteus, si uso el archivo *.HEX solo hara la simulacion pero no podre ver el codigo que se esta ejecutando. Dentro de MPlab, es necesario indicar que los archivos que deben de generarse a partir des ASM?
Título: Re: archivo *.cof
Publicado por: nico en 05 de Febrero de 2010, 12:42:47
A ver Medusa, lo que intentan indicarte es que no vas a obtener el .cof, esa extension es solo para CCS.

Para hacerlo en el proteus, al menos en la version en la que trabajaba se hacia lo siguiente.

-Al micro le cargas el .hex,
-Ademas, en el proteus debes ir al menu source, add/remove source files y cargar el archivo asm con el que estas trabajando, ademas de setear con que herramienta vas a generar el codigo.
-Luego vas al menu source, define code generation tools, y vuelves a cargar la herramienta con la que estas compilando, ademas de asegurarte que el path este hacia la misma
-Una vez aqui vas al menu source, y le das un click a build all. Alli compilara el codigo que cargaste en el segundo paso, con la herramienta que cargaste en el tercer y cuarto paso(que no es mas que compilar tu archivo .asm con el mpaswin en tu caso)

Si la compilacion te da ok, pasa a modo run en el proteus y ya podras ver por donde va el codigo si detienes la ejecucion o usas los breakpoints.

El archivo que usa proteus para simular el .asm es la extension .SDI. Si el mplab te la da, puedes utilizar la misma.

Saludos.
Título: Re: archivo *.cof
Publicado por: mtristan en 05 de Febrero de 2010, 13:03:33
.

Yo no programo otra cosa que assembler y el MPLAB siempre me larga el archivo .cof. Es cosa del MPLINK, aunque no estoy seguro de porqué no te lo genera a vos. Si querés probar, en la configuración del MPLINK (desde el MPLAB Project->Build_options->Project) tengo escrito:
/m"$(BINDIR_)$(TARGETBASE).map" /w /o"$(BINDIR_)$(TARGETBASE).cof"
Espero sirva de ayuda. ¡Saludos!


Título: Re: archivo *.cof
Publicado por: Medusa en 05 de Febrero de 2010, 14:01:23
He seguido los concejos de Nico y ahora si puedo visualizar el codigo pero lo que no logro encontrar por ningun lado son las Variables, o es que usando AMS no estan disponibles estos datos?

Con respecto a lo que mensionas mtristan en la configuracion de mi MPLINK es la misma que tu tienes.

Título: Re: archivo *.cof
Publicado por: BrunoF en 05 de Febrero de 2010, 14:45:05
Yo nunca logre ver las variables de un codigo fuente ASM. Si alguien sabe como hacer me interesaría también...
Título: Re: archivo *.cof
Publicado por: challenge en 05 de Febrero de 2010, 16:08:14
Podés probar cambiando la versión de MPLAB, o viendo en las opciones si no hay alguna opción de agregar a los archivos generados el .cof.
Asimismo podés tener un error de compilación, y te genere unicamente el .hex.

 ;-) Suele suceder que el nombre el proyecto de algún archivo del proyecto contenga espacios o sea muy largo y no permita generarlo. Seguramente verás en el informe de compilación que creó un archivo .cod, si es el caso.

Espero haber ayudado
Título: Re: archivo *.cof
Publicado por: BrunoF en 05 de Febrero de 2010, 16:24:54
El MPLAB genera el .cof. El problema es que se ve que no incluye informacion de la ubicacion de las variables, o bien el Proteus no lo tiene implementado.
Título: Re: archivo *.cof
Publicado por: Medusa en 05 de Febrero de 2010, 17:39:54
Hola BrunoF, tu has logrado que  el mplab te genere el archivo COF, pues a mi me genera un archivo diferente ( *.COD) y esto no es reconocido por le Proteus
Título: Re: archivo *.cof
Publicado por: PalitroqueZ en 05 de Febrero de 2010, 20:27:01
El MPLAB genera el .cof. El problema es que se ve que no incluye informacion de la ubicacion de las variables, o bien el Proteus no lo tiene implementado.

no sabía que el mplab generase el archivo .cof para los proyectos en ensamblador, y en tal caso, ¿para que se utilizaría?

Yo nunca logre ver las variables de un codigo fuente ASM. Si alguien sabe como hacer me interesaría también...

es cierto, en ensamblador no aparece la ventana CPU variables, que se muestra en códigos para lenguaje C, pero sí es posible ver las variables,

- click derecho sobre la ventana Watch Windows
- si es un Registro de Función Especial, seleccionar ADD Items (By Name) y saldrá la lista de SFR.
- si es un Registro de propósito general, seleccionar ADD Items (By Address) e introducir la dirección de la ram donde se asignó la GPR (con su etiqueta).


Título: Re: archivo *.cof
Publicado por: Medusa en 05 de Febrero de 2010, 20:46:31
  :-/  :-/ Gracias PalitroqueZ
Título: Re: archivo *.cof
Publicado por: Suky en 06 de Febrero de 2010, 01:04:51
Otra forma es seleccionar en MPLAB como debugger a Proteus, esto abre una nueva ventana donde se puede cargar el circuito. Con esto podes ver visualmente lo que pasa en la ventana de proteus y además usar las herramientas de view de MPLAB y poder ir paso a paso en el código.

Saludos!
Título: Re: archivo *.cof
Publicado por: fabianjsm en 06 de Febrero de 2010, 15:05:31
no sabía que el mplab generase el archivo .cof para los proyectos en ensamblador, y en tal caso, ¿para que se utilizaría?

A ver Medusa, lo que intentan indicarte es que no vas a obtener el .cof, esa extension es solo para CCS.

Creo que ademas de la duda planteada por nuestro amigo Medusa, hay una confusion sobre el archivo objeto:

MPLAB es solo el IDE, el compilador que estes utilizando, sea C asm u otro siempre genera codigo objeto, y el formato suele ser COF (valga citar, si bien la extension es .cof o, .o en algunos casos, el nombre del formato es COFF (Common Object File Format), es un formato de microsoft, pueden ver la descripcion del formato en el archivo de ayuda llamado 'hlpCOFFfile.chm' que tambien se distribuye con mpasm y suele estar en el directorio "c:\Program Files\Microchip\MPASM Suite", esta no es una descripcion general del formato cof, sino unicamente de la implementacion de este formato para los PIC, en cuyo caso el campo f_magic de la estructura filehdr_t vale  0x1240 -este valor cambio o habia cambiado, si a alguien esta interesado en el formato debe considerarlo).

En el caso particular de "MPASM Suite", la ayuda dice esto: "The main output file generated by the MPLINK linker is the COF file (prog.cof). The linker then uses the utility MP2HEX to generate the Hex file (prog.hex), used by simulators, emulators, debuggers and programmers. For more information on linker output files, see the MPLINK linker documenation. For more information on utilities, see the related documentation."

El cof es luego enlazado con otras librerias si es necesario (hay un dibujito explicando esto en 'hlpMPASMAsm').

Lo que dice ademas la ayuda, es que es necesario especificarle a MPASM que genere el cof: When using MPASM assembler for Windows, check the checkbox labeled "Object File." When using the command line interface, specify the /o option. The output file will have a .o extension.

Hay mucha documentacion sobre el tema acompañando al mismo MPASM!
Título: Re: archivo *.cof
Publicado por: PalitroqueZ en 06 de Febrero de 2010, 16:05:43
ahh! yo del formato coff no tengo mucha idea, solo se que lo requiere el proteus para poder mostrar el código en C en tiempo de ejecución, y que para el asm no lo requería (al menos compilando desde el proteus con mpasmwin, no se genera).

está buena la aclaración, gracias fabian.

Título: Re: archivo *.cof
Publicado por: nico en 06 de Febrero de 2010, 16:36:35
Claro palitroquez, pero segun lo que indica fabianjm el mplab si lo genera, solo hay que especificarle al MPASM que lo genere, y luego solo pasarlo al proteus.
Saludos.
Título: Re: archivo *.cof
Publicado por: Medusa en 08 de Febrero de 2010, 16:08:02
Hola fabianjm y nico, pueden colocar un ejemplo de como indicarle al mplab ide para que genere el archivo cof?
Título: Re: archivo *.cof
Publicado por: fabianjsm en 13 de Febrero de 2010, 04:19:52
Algo estas haciendo mal compañero!

Si en "Project->Select Language Toolsuite" seleccionas la suit MPASM y luego vas a "Project->Build Options...->Project", en el Tab "MPLINK Linker" veras algo como esto en la linea de comandos: "/m"$(BINDIR_)$(TARGETBASE).map" /w /o"$(BINDIR_)$(TARGETBASE).cof"".
A menos que hayas modificado esto por error, MPLAB ya esta configurado para solicitar a MPLINK que genere el punto cof (lo hace mediante la opcion /o como lo dice la ayuda de mplink).

Hice una prueba y te adjunte la captura de pantalla, para que no te quedes con dudas  :lol:
Título: Re: archivo *.cof
Publicado por: fabianjsm en 13 de Febrero de 2010, 04:23:39
Disculpen, nose porque los archivos subieron dos veces  :(
Fue al modificar el post  :(