Hallo an alle, Ich möchte gerne ein Display (S1D13700) und 32kB externen Ram an das XMEM Interface eines ATMega1281 hängen. Auf den SRAM des Display kann nicht direkt zugegriffen werden, stattdessen muss indirekt darauf zugegriffen werden (Ist leider vom Display so vorgegeben). Somit hab ich nur 2 Adressen an denen ich lesen oder schreiben kann. Ich möchte nun den externen RAM in die obere Hälfte des Adressraums mappen. Die unteren 8kB Ram sind mit dem internen SRAM des Megas belegt. Dazwischen möchte ich auf das LCD zugreifen. Dadurch verliere ich die unteren 8kB des externen RAMs nicht und habe 40kB zu Verfügung. Nur wie schauen für diese Speicheranordnung die Linkereinstellungen aus? Danke im Voraus Gruß Robert
>Nur wie schauen für diese Speicheranordnung die Linkereinstellungen aus?
Hm. Das weiß ich auch nicht, aber ich mach das immer so:
1 | /** define I/O area (memory mapping) *************************************************** |
2 | //-- wing #0 ----------------------------------------------------------------------------
|
3 | #define O_wing0_red0 _SFR_MEM8(0x1110)
|
4 | #define O_wing0_green0 _SFR_MEM8(0x1111)
|
5 | #define O_wing0_blue0 _SFR_MEM8(0x1112)
|
6 | #define O_wing0_red8 _SFR_MEM8(0x1113)
|
7 | #define O_wing0_green8 _SFR_MEM8(0x1114)
|
Weil die Adressen sind ja durch die Hardware fest vorgegeben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.