Ver nombres de las variables en MPLAB X

Hola:

Tanto el MPLAB v8.89 y el más moderno MPLAB X v1.60 pesco.

En MPLAB puedo ver los nombres de las variables y los datos que contiene. En cuanto a MPLAB X, puedo ver los datos de las variables pero no sus nombres.

mplab-553661.png


He comprobado que en el MPLAB v8.89 si compilo bajo Absolute, se me ven los nombres de las variables. Si lo compilo bajo Relocatable, no se ven los nombres de las variables.

Sospecho que el MPLAB X 1.60 pasará algo similar. Creo que lo guardé en auto, no se cual de los dos tiene realmente para descartar este tipo de cosas.

La pregunta es. ¿Cómo voy en las opciones para cambiarlo a Absolute del MPLAB X?

En el MPLAB normal se hace así. En la barra de herramientas arriba:
mplab-553674.png


Espero que en el nuevo MPLAB no hayan quitado de leer los nombres de las variables, entonces para depurar sería un misterio, es más, vuelvo mientras puedas solo al MPLAB v8.xx.
 
Última edición:
Hola:

En MPLABv8 usaba las variables de esta forma:

CBLOCK 0x20
Temp1
Temp2
Temp3
ENDC

Y si usas librerías a parte llamadas *.INC, usas:

CBLOCK
Temp4
ENDC

Sin marcar dirección de inicio porque ya tienes el 0x20 desde el programa principal.

En el MPLAB X no se muestra los nombres de las variables. He encontrado una solución para mostrar los nombres:

VARIABLES UDATA_SHR
Temp1 res 1
Temp2 res 1
Temp3 res 1

UDATA_SHR es la solución.

res es para reserver la memoria sin cargar ningún dato todavía desde el inicio.

El 1 que tiene delante del res, por ejemplo: res 1, quiere decir que reserva solo esa memoria asignada.

Si pones:
VARIABLES UDATA_SHR
Temp1 res 5

En Temp1 ya tienes 5 byte de memoria solo para ella y quedaría así:

Código:
VARIABLES UDATA_SHR
Temp1       res 5 ;Memoria reservada 1.
                     ;Memoria reservada 2.
                                                ;Memoria reservada 3.
                                                ;Memoria reservada 4.
                                                ;Memoria reservada 5.
Temp2       res 1
Temp3       res 1

En MPLABv8 puedo usar esta directiva.

Number EQU .124

En MPLAB X, no me muestra el nombre "Number".

¿Hay alguna solución?
¿O en el MPLAX ya no se usa el EQU?
 
Última edición:
Hola.
Subo un PDF que explica algunas cosas. De ese modo ya no se tiene dudas sobre la programaciòn en ASM y sobre los modos de programacion Absolute y Relocatable. Incluye un poco del tema de simulaciòn sobre el MPLAB-X.
Configurando bien ya todo es posible.

Saludos.
 

Adjuntos

  • ASM con MPLAB-X.pdf
    1,002.4 KB · Visitas: 117
Muy bueno.

Hay cosas que no sabía. Ha cambiado mucho sobre lo de ORG por CODE y cosas así que no tengo idea.

En cuanto a Number EQU .124.

¿Cómo e hace ahora?
 
Cuando esta en modo Relocatable, indican que lo que se declara con EQU es más tratado como constante (solo valor numérico), aún así al compilar funciona... no entiendo el motivo pero recomiendan que en dicho modo es mejor utilizar los otros tipos (res, variable, contant, idata, udata, etc)... Todo esto está en la ayuda del MPLAB-X.

Saludos.
 
EQU es lo mismo que una variable, solo que de esta manera le indicas la localización en la memoria de la variable.
con UDATE simplemente el compilador se encarga de buscar espacio reservado.
 
Buenas tardes, hace poco me he comprado el kit pickit3, y tengo un problema con las tablas watch, en las que añado variables y no me muestra el estado de estas.
Alguien sabe que puede ser.
Gracias de antemano.
 
Buenas tardes, hace poco me he comprado el kit pickit3, y tengo un problema con las tablas watch, en las que añado variables y no me muestra el estado de estas.
Alguien sabe que puede ser.
Gracias de antemano.

Posiblemente sea de la configuración del debug. ¿Como intentas ver las variables?. En play no te permite ver nada. Lo que tienes que hacer es poner un Break y ir depurando linea por linea.

Si pones el programa le hecho una vistazo.

Un saludo.
 
Posiblemente sea de la configuración del debug. ¿Como intentas ver las variables?. En play no te permite ver nada. Lo que tienes que hacer es poner un Break y ir depurando linea por linea.

Si pones el programa le hecho una vistazo.

Un saludo.

Es uno de los programas ejemplo. Pero estaba intentando verlo en run, probare lo de Break.
Lo que queria era ver el estado de uno de los canales de salida, para ver como iba rotando el bit activado.
Gracias por la ayuda.
 
Hola de nuevo:

Mirando un poco más a fondo por mera curiosidad.

1) Usando este conjunto de variables:

Variables UDATA_SHR
Dato RES 1
RAM_ret RES 1
RAM_ret_1 RES 1

y este otro sin la etiqueta azul...

UDATA_SHR
Dato RES 1
RAM_ret RES 1
RAM_ret_1 RES 1

Las dos formas compilan y funcionan. ¿en qué se diferencian? Lo que veo es que en vez de usar la RAM a partir de la dirección 0x20, está por la cara a partir de la 0x70. ¿Por qué?

2) Al usar:
Variables UDATA_SHR
Dato RES 20

Tiene 20 posiciones de memoria, te las gastas, pero solo se comporta como RES 1 al cambiar su byte en su interior. Si quiero usar en Dato 20 otro posición de memoria reservada. ¿Cómo lo hago? De los 20 uso uno, hay 19, como accedo a ellas el que me de la gana. Es como si Dato 20 se comporta como una sola y las demás es un desperdicio. Para eso lo llamo Dato2 RES 1.

Saludo.
 
Holas de nuevo después de tantos meses.

Para ampliar información.

UDATA
Empieza la sección de datos no inicializados en el archivo objeto
Sintaxis:

[<label>]
udata
[<RAM address>]

Descripción:
Para el uso al generar el archivo objeto. Declara el inicio de una sección de datos ainicializar . Si
<label>
no se especifica, la sección se nombra .udata.La primera dirección se indica con a la dirección especificada o se asignará a continuación de la dirección especifica. No se puede generar ningún código en este segmento.La directivaRESdebe utilizarse para reservar espacio para los datos.
Nota:
Dos secciones en el mismo archivo fuente no pueden tener el mismo nombre.
Ejemplo:
udataVar1 res 1
Double res 2
Ver

UDATA_SHR
Empieza la sección de datos no inicializados compartidos
Sintaxis:

[<label>]
udata_shr
[<RAM address>]

Descripción:
Para el uso al generar un archivo del objeto. Declara el inicio de una sección de los datos deuninitialized compartido. Si
<la etiqueta>
no se especifica, la sección es nombrada.udata_shr. La dirección de arranque se inicializa la dirección si no se asignará en momento dellinkado cuando no se indique ninguna dirección. Esta directiva se usa para declarar variablesque se asignan en RAM que es compartido por todos los bancos del RAM (es decir los unbankedRAM). Ningún código puede generarse en este segmento. La directivaRESdebe usarse parareservar el espacio para los datos.
Ejemplo:
Temps udata_shr
Temp1 res 1

Temp2 res 1
Temp3 res 1

Por si acaso les dejo en enlace.
http://es.scribd.com/doc/57692415/53/UDATA-SHR

Aún me cuesta entender estas cosas.

¿Por qué Microchipo aconseja usar UDATA y RES?

¿Cómo lo sabes?

Aún no entiendo que si pongo RES 15, me ocupa 15 espacios de memoria reservada que no ustilizo exceptuando el primero.

¿Para qué estas cosas?

Saludo.
 
Hola a todos
revivo este tema puesto que me surgieron las mismas dudas que Meta, las ultimas preguntas que el hizo, no se si alguien las puede responder por favor, siempre he utilizado MPLAB IDE, pero ahora resulta que en la pagina de microchip ya no existe ese programa y solo tienen para descargar MPLAB X IDE cosa que obliga a los usuarios a mudarse a este entorno de desarrollo, la verdad es que estoy mas acostumbrado al antiguo, veo que el nuevo es mas pesado, mas complicado crear un simple proyecto, mas complicado de observar las variables, en el antiguo MPLAB se puede hacer todo eso en un abrir y cerrar de ojos, aun no me termino de acostumbrar al MPLAB X , entiendo que se tiene que cambiar a absolute para seguir con la antigua sintaxis, pero aun asi hay ciertas directivas a la que hay que adaptarse.

saludos
 
Nop. Las descargas funcionan correctamente. Descarga MPLAB IDE v8.jpg

Y también pude realizar la descarga de MPLAB IDE v8.92 desde el móvil. Pantallazo_15-05-2015-14-29-45.jpg

Los archivos para descarga desde la versión 5.40 hasta la 8.92 se encuentran en la sección MPLAB IDE Archives
Enlaces MPLAB.jpg
 
aaah yaaa yaaa cierto cierto lo que decis, gracias por la ayuda :D , lo voy a descargar

con respecto a las preguntas que hizo Meta, alguien puede darme una mano por favor?, he estado investigando pero no encuentro una respuesta

saludos
 
Última edición:
Hola:

La respuesta que recuerdo son en que hay relativo y absoluto. Unno de los dos funcionan y no recuerdo cual en este momento, debo instalar el MPLAB otra vez.

Saludos.
 
Hola a todos, bueno he estado revisando y programando en el MPLAB X y encontré un problema, no se como mirar la pila del microcontrolador, he visto en alguna parte que si se puede ver si uno esta programando en C, pero yo estoy programando en ASSEMBLER, alguien sabe como es posible poder verl el Stack durante una simulación?

Saludos
 
Atrás
Arriba