PIC24F Software Stack?

5

Sé que muchos de los PIC de gama baja tienen pilas de hardware fijas que pueden convertirse en un problema durante el desarrollo del firmware. Recientemente he escuchado que la serie PIC24 (y quizás algo más que la serie PIC18) tiene pilas definidas por software? ¿Eso significa que se asignan dinámicamente mientras se ejecuta el código o es el tamaño que MPLAB acaba de asignar cuando compilas?

Sé que esta es una pregunta más matizada, pero aprecio cualquier ayuda que pueda haber ahí fuera. Parece que no se habla mucho en las hojas de datos o en las páginas de productos.

    
pregunta tarabyte

1 respuesta

4

Si mira la página 37 de PIC24F16KA102 hoja de datos (PDF) (una típica pequeño dispositivo PIC24) verá una descripción de la pila de software: el registro W15 se utiliza como puntero de pila.

"El puntero siempre apunta a la primera palabra libre disponible y crece de direcciones más bajas a más altas. Previene decrementos para los saltos de pila y los post-incrementos para los empujes de pila, como se muestra en la Figura 4-4."

La página 70 de MCU de 16 bits y el Manual de referencia del programador DSC (PDF) tiene más información:

"Los dispositivos MCU y DSC de 16 bits cuentan con una pila de software que facilita las llamadas de función y el manejo de excepciones. W15 es el puntero de pila (SP) predeterminado y, después de cualquier reinicio, se inicializa a 0x0800 (0x1000 para dispositivos PIC24E y dsPIC33E ). Esto garantiza que el SP apuntará a una RAM válida y permite la disponibilidad de la pila para excepciones, que pueden ocurrir antes de que el software del usuario configure el SP. El usuario puede reprogramar el SP durante la inicialización en cualquier ubicación dentro del espacio de datos. "

    
respondido por el Leon Heller

Lea otras preguntas en las etiquetas