Hi
Danke für deine Antwort. Mittlerweile habe ich mich schon selbst durch
die Thematik gewühlt.
für alle die selbiges Problem haben hier mal die Kurzversion unter
Benutztung von WinAVR.
1. neues Dateiatribute definieren
1 | #define XRAM __attribute__((section (".xram")))
|
2. Variable anlegen
1 | unsigned char Test XRAM;
|
3. eigenes Linkerscript erstellen, unter WinAVR liegen die Scripte in
????\WinAVR\avr\lib\ldscripts\ ???? ist das Installationsverzeichnis von
WinAVR. Hier das entsprechende Script kopieren (für den Mega256 ist das
avr6.x), z.B. nach MeinScript.x
4. Einträge ins Script
in den Bereich MEMORY den folgenden Eintrag hinzufügen
xram (rw!x) : ORIGIN = 0x808000, LENGTH = 32K
bei meiner Hardware bieginnt der 32k SRAM bei Abresse 0x8000 und geht
bis zum Ende, sprich 0xFFFF
in den Bereich SECTIONS den folgenden Eintrag hinzufügen
/* eigene Section im externen RAM. */
.xram (NOLOAD) :
{
*(.xram*)
} > xram
NOLOAD muss hier rein, da AVR-DUDE auf den ext. RAM nicht zugreifen kann
und somit eine Fehlermeldung ausgeben würde
5. dann dem Linker mitteilen, das er das erstellte Script benutzen soll
entweder dem Linker direkt übergeben mit
-T ????/WinAVR/avr/lib/ldscripts/MeinScript.x
oder per Übergabe vom Compiler
-Wl,-T ????/WinAVR/avr/lib/ldscripts/MeinScript.x
bei mir funktioniert das bestens, sollten allerdings hier Fehler
enthalten sein, berichtigt mich bitte
Gruß Steffen