Autor Tema: Crossing page boundary  (Leído 13680 veces)

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Crossing page boundary
« en: 11 de Septiembre de 2007, 23:04:28 »
Crossing page boundary -- ensure page bits are set.

Esto es lo que arroja la compilacion de un 648A...en que parte debo setear el bit de pagina ???

Agradeceria una ayudita...sobre como interpretar este mensaje de ERROR o donde puedo leer algo al respecto !!!

Gracias de antemano...Ya conozco la predisposicion y voluntad del FORO, asi que no tengo mas que agradecerles !!!

SALUDOS a todos y gracias por compartir !!!

_____________________________
"Justo a mi me toco ser YO" QUINO
« Última modificación: 05 de Abril de 2008, 19:40:47 por Resistencio »

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Crossing page boundary
« Respuesta #1 en: 11 de Septiembre de 2007, 23:35:08 »
Realmente es un error o un warning ?? 8) 8)
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Crossing page boundary
« Respuesta #2 en: 11 de Septiembre de 2007, 23:46:49 »
Hola MGLSOFT, es un mensaje con codigo 306...si lo paso por alto, el soft, no corre...

Por lo que vengo leyendo hasta el momento, tiene que ver con el paginado de memoria...nunca antes habia hecho un programa de mas de 2k, y ahora me encuentro con este problema...donde estoy llamando a subrutinas que estan en la 2º pagina de un 648A...parece que la solucion estaria en indicar antes del call, que quiero ir a esa pagina...pero eso me obligaria a retocar mucho el  programa en gral...

Una opcion que se me ocurre, es correr esa subrutina a la 1º pagina y enviar otras menos "llamadas" a la 2º...No se si esta es una elegante solucion o una terrible "estupidez"...

Espero impaciente el aporte de alguno de los mas sabios y con mas experiencia en estas "batallas" !!!

SALUDOS !!!

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Crossing page boundary
« Respuesta #3 en: 12 de Septiembre de 2007, 00:24:50 »
Sera bueno si paginas correctamente, las rutinas conviene tenerlas en lo posible en la primera pagina, evitando saltos.
Lo que no debes hacer es dejar que una rutina determinada comience en una pagina y termine en la siguiente, alli tendras un problema grave...
Prueba haciendo macros como BANK0, BANK1, etcetera, donde seteas los bits de esa pagina, luego las llamas segun la pagina donde este la rutina...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Crossing page boundary
« Respuesta #4 en: 12 de Septiembre de 2007, 08:52:33 »
Por lo que vengo leyendo hasta el momento, tiene que ver con el paginado de memoria...nunca antes habia hecho un programa de mas de 2k, y ahora me encuentro con este problema...donde estoy llamando a subrutinas que estan en la 2º pagina de un 648A...parece que la solucion estaria en indicar antes del call, que quiero ir a esa pagina...pero eso me obligaria a retocar mucho el  programa en gral...

Antes que nada, quiero aclarar que el mensaje que te arroja el ensamblador es un warning o advertencia, indicandote que cierto código está una parte en una página y mitad en otra. 

Respecto a "retocar" el programa, no te escapas.

Una opcion que se me ocurre, es correr esa subrutina a la 1º pagina y enviar otras menos "llamadas" a la 2º...No se si esta es una elegante solucion o una terrible "estupidez"...

Me parece una solución práctica y no la veo una estupidez ni mucho menos.  :)

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Crossing page boundary
« Respuesta #5 en: 12 de Septiembre de 2007, 10:15:59 »
Gracias MAUNIX, estuve haciendo mucha lectura sobre este problema...y he leido sobre tus aportes al respecto...entre tantas soluciones propuestas, lei tambien la de BRUNOF, que invita al uso de PAGESEL...

Use misma tecnica, con PAGESELW, por ej. pero no tuve los resultados esperados...Entiendo el problema que tengo enfrente, uso las herramientas necesarias para poder solucionarlo, pero aun asi no puedo...Por el momento resulta bastante frustante, no poder solucionar este inconveniente...pero se que mas adelante estare gratificado con la solucion...

Gracias por los aportes y seguire tratando de encontrarle la vuelta !!!

El compilador MPLAB7.50, solo dice mensaje(306)...no aclara si es un WARNNING o un ERROR...

SALUDOS !!!

______________________________
"justo a mi me toco ser YO" QUINO.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Crossing page boundary
« Respuesta #6 en: 12 de Septiembre de 2007, 11:35:17 »
Gracias MAUNIX, estuve haciendo mucha lectura sobre este problema...y he leido sobre tus aportes al respecto...entre tantas soluciones propuestas, lei tambien la de BRUNOF, que invita al uso de PAGESEL...
Hacer un pagesel es como configurar los bits del PCLATH pero te lo hace solo el Ensamblador.  Pagesel es un macro, no lo mencioné antes porque es lo mismo que estas haciendo, por ende, no cambia nada.

Use misma tecnica, con PAGESELW, por ej. pero no tuve los resultados esperados...
Ojo que pageselw guarda en el WREG el valor de la página, lo cual no es lo mismo que guardarlo en el PCLATH.


Entiendo el problema que tengo enfrente, uso las herramientas necesarias para poder solucionarlo, pero aun asi no puedo...Por el momento resulta bastante frustante, no poder solucionar este inconveniente...pero se que mas adelante estare gratificado con la solucion...
Si, es frustante cuando uno no le encuentra la vuelta pero también se aprende mucho así.  En cuanto a consejos, o cosas para revisar, te puedo decir que si estas en la página 0 y llamas con un call a  una subrutina en la pagina 1, el return hará que vuelva sola, pero de inmediato si vas a llamar a una rutina dentro de la página 0, debes volver a cargar la página 0 en el PCLATH. 

Y como un ejemplo vale a veces más que mil palabras te dejo este link para no repetir el tema.

Ejemplo pagesel


El compilador MPLAB7.50, solo dice mensaje(306)...no aclara si es un WARNNING o un ERROR...
De todas formas no es un error, si fuera un error no se ensamblaría el archivo.  Un error detiene el proceso de ensamblado.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Crossing page boundary
« Respuesta #7 en: 12 de Septiembre de 2007, 23:58:35 »
He seguido al pie de la letra el ejemplo de pagesel, pero no funciona...tambien use el pageselw y tampoco...he comenzado a cuestionar mi capacidad de interpretacion y la posibilidad de pasarme a arquitecturas VON NEUMAN, sin paginado...Existe alguna gama de PIC que no use paginados...

De todos modos pienso seguir insistiendo !!!

Por ejemplo, podria armar un programita que encienda un led y llamar a la rutina de demora, que ubicaria en la segunda pagina, y desde ahi ver que va pasando...

Y yo que me jactaba de entender algo de micros y su manejo (si hasta he experimentado con EEPROM sin problemas) , y me derrota un pagesel, que ironia, la de los micros, cuanto mas los conozco, menos los domino...me pasa lo mismo con mi DVD...que maldicion tecnologia me estara persiguiendo ???  :D

SALUDOS y gracias a quien pueda aportarme alguna otra pista...creame que lei casi todo al respecto en este foro...nada me sirve !!!

_____________________________
"Justo a mi me toco ser Yo" QUINO

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Crossing page boundary
« Respuesta #8 en: 14 de Septiembre de 2007, 13:25:41 »
He seguido al pie de la letra el ejemplo de pagesel, pero no funciona...tambien use el pageselw y tampoco...he comenzado a cuestionar mi capacidad de interpretacion y la posibilidad de pasarme a arquitecturas VON NEUMAN, sin paginado...Existe alguna gama de PIC que no use paginados...
Si, los 18F, 24F, dsPCI


Por ejemplo, podria armar un programita que encienda un led y llamar a la rutina de demora, que ubicaria en la segunda pagina, y desde ahi ver que va pasando...
Buena Idea.


Y yo que me jactaba de entender algo de micros y su manejo (si hasta he experimentado con EEPROM sin problemas) , y me derrota un pagesel, que ironia, la de los micros, cuanto mas los conozco, menos los domino...

Solo puedo decirte que cuanto más aprendo más me doy cuenta de cosas que no se...

Es propio del que poco sabe (y me ha pasado) creer que todo es fácil, minimizar la complejidad de los problemas y pensar que todo se hará más rápido de lo que termina siendo.  También me ha pasado jeje.


me pasa lo mismo con mi DVD...que maldicion tecnologia me estara persiguiendo ???  :D

SALUDOS y gracias a quien pueda aportarme alguna otra pista...creame que lei casi todo al respecto en este foro...nada me sirve !!!
Si pones un código de ejemplo al que le podamos echar mano, entonces te vamos a poder ayudar.  Para explicar la idea está el ejemplo del link que te mandé y si no es suficiente hace falta ir a lo concreto.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Crossing page boundary
« Respuesta #9 en: 14 de Septiembre de 2007, 16:36:07 »
Gracias MAUNIX, voy a escribir algo como lo que comento y ver que pasa...

Estaba esperando el oporte de BRUNOF, pero la ultima vez lo volvi loco al pobre (y estoy hablando de MAYO 2007), y parece que ni quiere aparecer por aca...de todos modos he leido mucho de sus explicaciones y de las tuyas...como las de CHARLY y otros que no recuerdo sus nicks...

Tambien con MISTER INCREIBLE !!! (ese es su AVATAR)...Todos demuestran un espiritu de compartir, increible y gratificante...Estoy hace unos meses en algunos foros americanos (los "YONIS" saben muchisimo de esto...sobre todo en las universidades de NY y W, donde leo bastante y hasta me he atrevido a preguntar !!!)...la diferencia fundamental con este foro, es que se nota una falta de compromiso, con las respuestas, todo esta preasumido como que deberia saberse !!! y luego no importa mucho, si el aporte sirve o no !!! Pero en fin, son otras culturas y/o formaciones la de los sajones...digo esto solo para buscarle alguna explicacion, mi viejo es descendiente de anglo-irlandeses, asi que los conozco bastante bien...

En fin seguire viendo si puedo sacar definitivamente este problema de encima...y ese fucking DVD, que tengo adentro de la reproductora hace meses !!!  :D

SALUDOS...a tutti !!!

_____________________________
"Justo a mi me todo ser Yo" QUINO

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Crossing page boundary
« Respuesta #10 en: 14 de Septiembre de 2007, 16:54:24 »
Gracias MAUNIX, voy a escribir algo como lo que comento y ver que pasa...
Bueno.


Estaba esperando el oporte de BRUNOF, pero la ultima vez lo volvi loco al pobre (y estoy hablando de MAYO 2007), y parece que ni quiere aparecer por aca...
No creo que sea esa la razón (que no quiera), de seguro está ocupado con algo, los que somos miembros del foro solemos tener 'vida' después del foro.  :)


Tambien con MISTER INCREIBLE !!! (ese es su AVATAR)...
Ariel, nick Aitopes.

la diferencia fundamental con este foro, es que se nota una falta de compromiso, con las respuestas, todo esta preasumido como que deberia saberse !!! y luego no importa mucho, si el aporte sirve o no !!! Pero en fin, son otras culturas y/o formaciones la de los sajones...digo esto solo para buscarle alguna explicacion, mi viejo es descendiente de anglo-irlandeses, asi que los conozco bastante bien...
Si, son diferentes, en esos foros si no captas el interés de alguien (con alguna pregunta complicada y que demuestre algún bug serio del compilador por ejemplo) solo te responderán diciendote "lee acá, fijate esto" y hasta ahi nomás. 

Como bien intuis son culturas diferentes, donde ellos valoran mucho el esfuerzo pero el esfuerzo propio asi que si te interesa te dan material para leer... pero el esfuerzo lo tenes que hacer 102% vos.

Acá , no somos como ellos, pero si te vamos a pedir que el esfuerzo lo pongas vos.  :mrgreen: :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Crossing page boundary
« Respuesta #11 en: 15 de Septiembre de 2007, 07:22:16 »
Hola muchachos!

lei tambien la de BRUNOF, que invita al uso de PAGESEL...

Use misma tecnica, con PAGESELW, por ej. pero no tuve los resultados esperados...

Deberia funcionar. ¿Cómo sabés que no lo hace?

Use misma tecnica, con PAGESELW, por ej. pero no tuve los resultados esperados...
Ojo que pageselw guarda en el WREG el valor de la página, lo cual no es lo mismo que guardarlo en el PCLATH.

Bueno, todo tiene una explicación. Si bien la más cómoda sería usar la macro PAGESEL(formada por una instruccion movlw xxx y otra movwf PCLATH) en lugar de la PAGESELW(solo la instruccion movlw xxx), hace un tiempo atrás tuve problemas con la PAGESEL. Hubo una tanda(aunque no sé si el error no continúa) de versiones del MPLAB en las que sencillamente el PAGESEL no hacía absolutamente nada. Ponías un PAGESEL y en el código de salida no generaba instrucción alguna(y en más de una ocasión me ha generado instrucciones completamente bizarras).
Si en las nuevas versiones el PAGESEL efectivamente mueve el literal al acumulador y luego lo copia al registro PCLATH, aliento a usar dicha macro en reemplazo de la PAGESELW.

Estaba esperando el oporte de BRUNOF, pero la ultima vez lo volvi loco al pobre (y estoy hablando de MAYO 2007), y parece que ni quiere aparecer por aca...de todos modos he leido mucho de sus explicaciones y de las tuyas...como las de CHARLY y otros que no recuerdo sus nicks...

Pero si siempre estoy! ;)

http://www.todopic.com.ar/foros/index.php?topic=14797.msg130360#msg130360

¿Acaso no me has visto?

Estaba esperando el oporte de BRUNOF, pero la ultima vez lo volvi loco al pobre (y estoy hablando de MAYO 2007), y parece que ni quiere aparecer por aca...
No creo que sea esa la razón (que no quiera), de seguro está ocupado con algo, los que somos miembros del foro solemos tener 'vida' después del foro.  :)

Efectivamente, la semana pasada me planchó una angina y en la oficina me asesinan si no me pongo las pilas un poco con el trabajo acumulado...

Pero igualmente siempre ando por aqui.

Saludos!.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Crossing page boundary
« Respuesta #12 en: 16 de Septiembre de 2007, 17:30:10 »
Hola BRUNO, se efectivamente que no funciona porque, grabe el PIC con ese HEX, y no hace lo esperado...cosa que si hace cuando lo hago de la manera que venia usando hasta ahora...es decir todo en una misma pagina !!!

El tema es que no pasa de pagina o no vuelve !!! IMPOSIBLE saberlo ???

El micro que uso es el 648A...considero que la pag 1 (o la 2º pagina) esta en 0X800...

Probe con varios micros, 3 por lo menos, pero no anda...uso MPLAB 7.50 !!!

Este IDE insiste con esto....Message[306] : Crossing page boundary -- ensure page bits are set.

No parece un error de hecho indica que la compilacion es BUILD SUCCEEDED, pero al ejecutar el soft, se "freeza", exactamente en ese lugar !!! :x

Pa´mi que esta embrujado !!!  :D

Me parece que me paso a los 18F, como me sugirio alguien por ahi....Lei un comentario tuyo, donde decias que te pasabas a C o BASIC, por un problema similar...y hay quien dice, que si ya estoy lidiando con los problemas de paginado, es hora de pasarse a otro lenguaje...lo cierto es que me siento muy comodo en ASM, por varias razones, entre ellas, tengo pleno control de lo que hago (salvo esto del paginado, claro  :D)...

SALUDOS y seguire tratando de hacerlo andar en ASM...aunque me tome 1 mes !!! (no - si, para porfiado no me gana nadie !!!  :mrgreen:)

_____________________________
"Justo a mi me toco ser YO" QUINO




Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Crossing page boundary
« Respuesta #13 en: 16 de Septiembre de 2007, 17:38:30 »
Efectivamente, la semana pasada me planchó una angina y en la oficina me asesinan si no me pongo las pilas un poco con el trabajo acumulado...

Pero igualmente siempre ando por aqui.


Bruno, ojalá te hayas repuesto bien de la angina  :) :) y recuerda, primero tu salud y después el foro!!   :mrgreen: :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Resistencio

  • PIC12
  • **
  • Mensajes: 82
Re: Crossing page boundary
« Respuesta #14 en: 16 de Septiembre de 2007, 19:13:36 »
De la respuesta de MAUNIX se desprende que seria lo mismo usar PAGESEL que BANKSEL...digo esto a riesgo de equivocarme...

http://www.todopic.com.ar/foros/index.php?topic=15674.0

en esa parte del foro, se dice ciertamente que:

banksel REGISTRO  --> hará un bsf y bcf del STATUS,RP0 y STATUS,RP1   para que apunten a la página donde está definida la variable

pagesel SUBRUTINA  --> hará una carga del PCLATH con los bits adecuados de acuerdo a la página donde esté SUBRUTINA

Con lo cual se me ocurre que si conozco en que pagina esta tal variable, estare llendo a esa pagina, a encontrar por ejemplos RUTINAS...es decir estaria usando el BANKSEL en lugar del PAGESEL, para iguales propositos !!!

Es eso correcto ??? O hay diferencia entre BANCOS DE MEMORIA y PAGINAS ???  :shock:

QUE CONFUSION MAMITA, y a mi el PAGESEL que no me anda !!!  :-)

______________________________
"Justo a mi me toco ser YO" QUINO