Tengo problemas con la asignación de memoria constante con XC8. Intento hacer esto:
const unsigned char patterns[12] = {
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
};
pero recibo este error: "no puedo encontrar 0xC palabras (0xc con total) para psect" stringtext "en la clase" STRCODE "(el mayor rango contiguo no utilizado 0x57)". Eso es extraño porque el espacio necesario es menor que el espacio disponible (contiguo). En la guía de usuario:
Lo leí
stringtext psect debe vincularse dentro de la primera mitad de cada página de memoria del programa
No estoy muy seguro de por qué. Supongo que el compilador llena todas las primeras mitades antes de intentar encontrar espacio para constantes. De todas formas, ¿puede aconsejarme cómo dar una pista al compilador donde ubicar la sección de constantes? O ¿Hay alguna otra forma de solucionar este problema?
Estoy usando MPLAB porque me resulta difícil usar MPLAB X.
P.S. Tenga en cuenta que la ROM está casi llena, solo quedan 0x57 bytes. Está bien fragmentado en pequeñas secciones para adaptarse mejor.