El tamaño de pila limitado de los PIC de presupuesto es un área problemática y he ajustado mi código para adaptarse a esta realidad. Actualmente adopto un paradigma aproximado de agrupar funciones estrechamente relacionadas en un módulo y declarar todas las variables estáticas globales en el módulo (para reducir la cantidad de variables almacenadas en el psecto automático y las cuestiones de mutabilidad solo son relevantes en los ISR, que explico). .) No hago esto porque es una buena práctica, pero la realidad es que tienes una cantidad limitada de espacio para asignar todas las funciones locales que existen en un proyecto completo.
En el mundo integrado de chips de 8/16 bits, ¿es este un método apropiado, siempre que esté seguro de tomar las precauciones necesarias? También hago cosas como asignar > 256 bytes de RAM para buffers de Ethernet y tengo que acceder a esa memoria a través de punteros para que pueda evitar la semántica de la banca de memoria. ¿Lo estoy haciendo mal? Mi aplicación funciona, pero estoy 100% abierta a sugerencias para mejorar.