Bueno, lo que me comentas
maunix ya creo que lo entendí, sólo me costó un poco lo de cambiar el .lkr porque no había definido una nueva CODEPAGE... pero lo miré en el manual de C18 y sin problemas.
Estoy intentando lo siguiente en un archivo de cabecera:
#include <p18f4550.h>
#define int8 unsigned char
#define int16 unsigned short
typedef struct{
int8 nombre[11];
int16 longitudFlash;
int16 longitudEeprom;
int16 primeraCeldaMemoriaEeprom;
int8 numeroPalabrasConfiguracion;
int16 id;
}dispositivo;
#pragma romdata seccionDispositivos
rom const dispositivo arrayDispositivos[20];
arrayDispositivos[0].longitudFlash = 0x1FFF;
#pragma romdata
Pero no compila, parece ser que no puedo declarar y despues inicializar sino que debo hacerlo todo en la misma linea: digo esto porque si hago lo siguiente:
#pragma romdata seccionDispositivos
rom const int8 numero = 10;
#pragma romdata
... no tengo problema. El problema es que como se trata de un array de constantes de tipo estructura no puedo declarar e inicializar de golpe.
¿Hay alguna solución a esto?
También me gustaría saber la forma de acceder a estos datos, lo digo porque cuando accedes a datos de ram que estan en una sección declarada por ti y que sobrepasan algún banco... tienes que hacerlo a traves de un puntero... ¿es en el caso de la rom igual?
Mil perdones por ser tan pesado!!!!