Manual del compilador Microchip C18 Laboratorio de Sistemas Basados en Microprocesador y Sistemas Electrónicos Digitales
3
2. Clases de almacenamiento
Se soportan los siguientes tipos de almacenamiento definido en el estándar ANSI: auto,extern, register, static y typedef.
Almacenamiento overlay
Además se introduce el almacenamiento
overlay
, que se aplica a variables locales sólono se aplica a parámetros de funciones, definición de funciones o variables globales. Ellinker MPLINK intentará superponer variables locales tipo
overlay
sobre las mismas posiciones de memoria para funciones que no pueden activarse a la vez. Por ejemplo:
int f (void){overlay int x = 1;return x;}int g (void){overlay int y = 2;return y;}
Si f y g nunca se activan juntas x e y pueden compartir la mismas posiciones dememoria. La ventaja de usar
ovelays
es que estas variables se sitúan estáticamente loque significa que es necesario menos instrucciones para acceder a ellas, mientras que lacantidad de memoria requerida es menor que en el caso de haberlas definidodirectamente como
static
, al estar superpuestas.Una función recursiva no puede contener variables de tipo
overlays.
El formato por defecto para las variables locales es auto. Esto puede ser modificadoexplícitamente mediante los prefijos
static
u
overlay
.
Argumentos para funciones
Los parámetros para las funciones pueden ser almacenados como auto o static. Un parámetro auto se almacena en la pila software que implementa el compilador. Unostatic se considera global y habilita el acceso directo generando menos código. Los parámetros static son posibles sólo si el compilador esta en modo no-extendido. Los parámetros por defecto se definen como auto.
3. Calificadores del almacenamiento
Además de los calificadores ANSI (const, volatile) el MPLAB introduce los siguientestipos nuevos: far, near, rom y ram. A continuación se muestra la posición donde sealmacena la variable asociada en función del calificador.
rom ram
far
Cualquier posición de memoria de Cualquier posición de memoria de
Leave a Comment
Una excelente guia. Gracias