TODOPIC

Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: atani123 en 21 de Junio de 2006, 09:51:56

Título: Problema con el debug de Proteus
Publicado por: atani123 en 21 de Junio de 2006, 09:51:56
Lo hago todo bien, compilo el codigo con MPLAB cargo en el Proteus el fichero.cod para el micro, le doy a start debugger y me sale.

Se lo que me esta diciendo el error, pero no se como solucionarlo. Alguien sabe como solucionar este problema. (Por cierto a la hora de simularlo funciona bien, solo es el debugar)

Gracias

SIMULATION LOG
==============
Design:   G:\Varios\ASM\IODigital\Proteus\IODigital.DSN
Doc. no.: <NONE>
Revision: <NONE>
Author:   <NONE>
Created:  20/06/06
Modified: 21/06/06

Compiling source files...
Build completed OK.
Compiling netlist...
Linking netlist...
Partition analysis...

Simulating partition 1 [CFB961FC]...
Animation started sucessfully...
PROSPICE Release 6.7 SP0 (C) Labcenter Electronics 1993-2005.
SPICE Kernel Version 3f5. (C) Berkeley University ERL.

Reading netlist...
Reading SPICE models...
Loading library 'ANALOGD.SML'
Loading library 'APEX.SML'
Loading library 'BURRBROWN.SML'
Loading library 'ELANTEC.SML'
Loading library 'FAIRCHLD.SML'
Loading library 'INTERSIL.SML'
Loading library 'LINTEC.SML'
Loading library 'NATOA.SML'
Loading library 'SUPERTEX.SML'
Loading library 'TECCOR.SML'
Loading library 'TEX101.SML'
Loading library 'TEX301.SML'
Loading library 'TEX3_1.SML'
Loading library 'TEX401.SML'
Loading library 'TEX5_1.SML'
Loading library 'VALVES.SML'
Loading library 'ZETEX.SML'
Building circuit...
Instantiating SPICE models...
[U1] PIC16 model release 6.7 SP0 simulating PIC1684 device.
[U1] Loaded 64 bytes of persistent EEPROM data.
[U1] Loading COD file '..\IODigital.COD'
FATAL: [U1] Program or EEPROM data has invalid address [2000] for this device

Real Time Simulation failed to start

Real Time Simulation FAILED.

Título: Re: Problema con el debug de Proteus
Publicado por: jfh900 en 22 de Junio de 2006, 07:49:49
Con la información que das no se puede sacar muchas conclusiones, pero parece que estas intentando escribir en una posición de memoria que no es válida. Esto ocurre cuando el pic que estas utilizando en la simulación no coincide con el  utilizado en la compilación. Es una suposición ya que no se que elemento es el U1 que hace referencia el error.

Un saludo.

Citar
FATAL: [U1] Program or EEPROM data has invalid address [2000] for this device

Título: Re: Problema con el debug de Proteus
Publicado por: atani123 en 22 de Junio de 2006, 11:57:27
No es nada del otro mundo. Esta compilado para 16f84a y en el proteus el u1 tambien es un 16f84a. He podido ver que lo unico que se escribe por encima de la posicion 0x2000  es en la 0x2007 y precisamente es la configuracion del pic  __CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC.
La pone automaticamente el MPLAB o yo no se cambiarla.

A ver si alguien me puede echar algo de luz.
O si es posible alguien puede pasarme un ejemplo ASM (16f84a) con su correspondiente DSN que funcione en debug para poder echarle un ojo.


Gracias
Título: Re: Problema con el debug de Proteus
Publicado por: fjalex en 22 de Junio de 2006, 16:46:33
Estimado atani123:

Voy a dar unos palos de ciego.

Yo no he usado nunca el 16f84a, pero sí he usado el 18f250 con mplab-c18 y tuve problemas parecidos. Cuando miraba el fichero de mapeado (*.map) que devuelve el compilador, me fijé que escribía en posiciones de memoria que no correspondían con las que se señalaban para mi micro en la información de proteus y daba errores al simular.

Yendo a las opciones de construcción del proyecto (build options) y modificando los parámetros referentes a modelo de memoria, modelo de datos y modelo de pila al final conseguí que funcionara. Pero estos datos se refieren al mplab-c18 y no sé si tu estás usando c o programas en ensamblador.

En Proteus, si pinchas con el ratón en el micro y abres la ventana de edición del componente, verás que existe una propiedad avanzada que se llama 'dump model configuration'. Márcala con un yes. Con ello al comenzar la simulación en la ventana 'simulation log' te escribirá un resumen de los valores que utiliza para simular el micro. Ahí podrás ver el tamaño de memoria de código y de datos y comprobar si la dirección que te dá error entra dentro de ese márgen o está fuera de él.

En fin, que entre el mapeado y el volcado de modelo de configuración, tendrás que encontrar el problema.

De todas formas si enlazas el proyecto de pic y el diseño de proteus, podríamos intentar echarle un vistazo.

No sé si te aclaro algo o te lío más.  :? En fin, recibe un saludo.