Hallo zusammen,
für eine LCD-Ansteuerung möchte ich die Zeichensatzdaten im Flash
ablegen, d.h. z.B.
1 | const __flash uint8_t mjg8pxBitmaps [] = { ... }
|
für die eigentlichen Bitmaps,
1 | const __flash uint16_t mjg8pxIndices[] = { ...}
|
für die Indizes auf die Positionen der (unterschiedlich breiten) Zeichen
im Bitmap-Array, und
1 | const __flash uint8_t mjg8pxWidths[] = {
|
für die Breiten der einzelnen Zeichen.
Ebenfalls ins Flash soll ein Descriptor
1 | typedef struct {
|
2 | const uint8_t numRows;
|
3 | const uint8_t first;
|
4 | const uint8_t last;
|
5 | const uint8_t * const bitmaps ;
|
6 | const uint16_t * const indices;
|
7 | const uint8_t * const widths;
|
8 | } mjgFontDescriptor_t;
|
um alle Daten zu einem Zeichensatz - das System soll mit mehreren
umgehen können - mit einem Zeiger auf den Descriptor übergebn zu können.
1 | const __flash mjgFontDescriptor_t mjg8pxDescriptor = {
|
2 | 1, // number of 8 bit rows
|
3 | 33, // ASCII code of first character in charset
|
4 | 134, // ASCII code of last character in charset
|
5 | mjg8pxBitmaps, // Z. 1471
|
6 | mjg8pxIndices, // Z. 1472
|
7 | mjg8pxWidths, // Z. 1473
|
8 | };
|
Für jedes der Arrays erhalte ich jedoch die Fehler
Error 1 initializer element is not computable at load time 1471
Error 2 (near initialization for 'mjg8pxDescriptor.bitmaps') 1471
Error 3 initializer element is not computable at load time 1472
Error 4 (near initialization for 'mjg8pxDescriptor.indices') 1472
Error 5 initializer element is not computable at load time 1473
Error 6 (near initialization for 'mjg8pxDescriptor.widths') 1473
Was mache ich falsch? Alle Daten des Descriptors sind "eigentlich"
bekannt. Trotzdem kriege ich den nicht initialisiert -- liegt es daran,
dass der Compiler hier Daten haben müsste, die erst der Linker kennt?
Gruß & Dank,
Michael