Ich mach das immer so:
im C-File
1 | #pragma udata LARGEDATA_SECTION
|
2 | char deinArray[256];
|
3 | #pragma udata
|
Im .lkr dann
1 | DATABANK NAME=largedata START=0x100 END=0x2FF PROTECTED
|
2 | SECTION NAME=LARGEDATA_SECTION RAM=largedata_0
|
Das #pragma udata am Ende bedeutet, das die nachfolgenden Variablen
wieder im "normalen" RAM abgelegt werden. Über die Adresse brauchts Du
dir keine Sorgen machen. Mit der obigen Vorgehensweise legt der Compiler
das Array schon in die richtige Section. Wenn genügend Platz ist, passen
dort auch mehrere große Variablen rein.
Vielleicht kann mir ja noch einer erklären, warum beim PIC18 in
Extended-Mode überhaut RAM-Bänke gebraucht werden. Ich dachte immer, er
kann hier 64k linear adressieren?
Gruß, Steffen