TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: c4chus en 15 de Junio de 2010, 20:57:41

Título: Stack overflow :S??? en PIC
Publicado por: c4chus en 15 de Junio de 2010, 20:57:41
Estoy desplegando video en una televisión :S e intento escribir unas palabras... creando tablas para cada letra...

cuando corro el programa en Proteus, me marca Stack overflow en una dirección que se encuentra justo después de un call...

Corrí el programa y si me despliega unas letras bien... pero después hace un cochinero!!! :(... supongo que es por el stack overflow!!!.... ;-) mi duda es la siguiente:

EL STACK OVERFLOW SE PUEDE GENERAR DEBIDO A QUE UTILIZO MUCHOS CALL??

De antemano Gracias amigos :) :-/
Título: Re: Stack overflow :S??? en PIC
Publicado por: jhozate en 15 de Junio de 2010, 21:10:49
si claro si utilizas muchos call el problema puede ser por ahi y mas si de pronto en alguno se te olvidó el return
Título: Re: Stack overflow :S??? en PIC
Publicado por: BrunoF en 15 de Junio de 2010, 21:19:38
Más que muchos CALLs, el problema sucede con muchos CALLs anidados. Cada familia de uC posee una cantidad de niveles de STACK distinta. Seguramente estés trabajando con un 18F, que poseen 32 niveles de STACK. Esto significa que puedes anidar hasta 32 CALLs, pero ojo! Una interrupción también carga el STACK, y también lo hacen las llamadas que hagas dentro de su rutina.

Saludos.
Título: Re: Stack overflow :S??? en PIC
Publicado por: c4chus en 15 de Junio de 2010, 21:20:23
 :shock: :oops:Gracias amigo!!! checaré mi programa para buscar ese detalle!!! y si no a modificarrr se ha dicho :( jaja gracias :D y saludos
Título: Re: Stack overflow :S??? en PIC
Publicado por: c4chus en 15 de Junio de 2010, 21:22:31
por cierto trabajo con un 16F877A :S en el datasheet viene la info del máximo nivel de stack?? :S!!! Gracias :D :-/
Título: Re: Stack overflow :S??? en PIC
Publicado por: BrunoF en 15 de Junio de 2010, 22:10:15
Sip. Ese uC tiene sólo 8 niveles de STACK!

Saludos.
Título: Re: Stack overflow :S??? en PIC
Publicado por: Cryn en 16 de Junio de 2010, 22:35:22
Que poquito stack que tienen los 16F, con razón son de gama media.

Una pregunta, toda la familia sin excepción de ningún micro posee 8 niveles de stack? y en caso de la familia 18F también todos tienen 32?

saludos
Título: Re: Stack overflow :S??? en PIC
Publicado por: BrunoF en 16 de Junio de 2010, 23:54:56
Todos los 16F que he conocido, han tenido 8 niveles de STACK, y todos los 18F con los que me he cruzado han tenido 32 niveles. Lo que digo no alcanza para formular la ley, pero es una tendencia.

Si nos ponemos un poco más técnicos y meditamos que el STACK forma parte del core que comparte toda una familia de uC, podría llegar a casi asegurar que probablemente así sea. Cada familia debe tener un determinado tamaño de STACK.

Saludos.
Título: Re: Stack overflow :S??? en PIC
Publicado por: Cryn en 18 de Junio de 2010, 18:10:23
Si eso mismo pensaba

Curioseando un poco de los stack, vi los micros 16F de la familia mejorada los 16f193x?, que tienen varias mejores tienen también más stack, 16 niveles.

Bien esos micros nuevos! :-/