Saludos a todos, hace tiempo que estoy registrado, y aunque a veces he seguido algunos hilos creo que esta es la primera vez que publico un tema en esta gran comunidad.
Llevo unos dias tratando de poner en pie un programa en el que necesito hacer lo siguiente: desde una libreria situada al principio del programa necesito leer un array de constantes que esta situado al final. Para ello he intentado usar la palabra clave EXTERN la cual permite que las funciones de la libreria que se refieren al array puedan tener visibilidad del mismo, pero aunque el programa compila sin problemas, no parece estar realmente llegando a acceder al array. Lo unico que leen desde el array son ceros... He hecho la prueba incluso accediendo a un array normal en memoria, y curiosamente tambien devuelve siempre ceros... No se si esque no entiendo el uso de extern o si en CCS hay alguna diferencia que no pillo. Uso CCS desde MPLAB.
Aqui pongo un ejemplo del codigo de pruebas para ver si consigo acceso tanto a un array en memoria como un array const:
void funcion1 (void){
int8 i,n;
extern char data[]; // """SI PONGO EXTERN CHAR CONST DATA[] SE PRODUCE UN ERROR..."""
for (n=0;n<4;n++) i=data[n];
}
...
char const data[]={0x10,0x20,0x30,0x40}; // si QUITO LA PALABRA CONST tampoco consigo nada
Monitorizando el valor de i, este siempre se pone a cero. Y si comento la definicion char const data[]=... genera un error, por lo que parece que el compilador realmente toma como que la declaracion dentro de la funcion se refiere a este array.
¿Que puede estar llendo mal?
Gracias. Saludos.