hallo, ich verwende einen atmega128 mit 32kb externen ram. weis jemand wie ich im AVR Studio unter Memory Settings die Einstellungen setzen muss um den auch zu verwenden? Ich hab mal bei Adresse 0x1000 reinbgeschrieben, da fängtmein ext RAM auch an, oder? Wenn er fertig mit compilieren ist sagt er mir aber immer noch das programm braucht gleich viel RAM wie ohne externen RAM. Hab ich da was vergessen einzustellen? Vielen Dank für die Hilfe Gruß Philipp
Nabend, Philipp Putzer schrieb: > Wenn er fertig mit compilieren ist sagt er mir aber immer noch das > programm braucht gleich viel RAM wie ohne externen RAM. Hab ich da was > vergessen einzustellen? nein, warum soll das Programm mehr Speicher brauchen :-) avr-size berücksichtigt (zeigt ihn nicht an) den dazubekommenen Speicher nicht! schau mal hier nach: "Beitrag "48KB SDRam für gcc auf xplain"; da hatte Ich mal die Linker-Optionen für externes Ram beschrieben. MfG
ja, das mit "brauch immer noch gleich viel RAM" stimmt so nicht ganz. ALso das Studio sagt er braucht gleich viel % RAM wie ohne externen RAM. Aber ich stell die Größe ja nirgends ein, deswegen bleibt die Anzeige auch immer gleich
Moin, Philipp Putzer schrieb: > Aber ich stell die Größe ja nirgends ein... So ist es. avr-size kennt nur das Device (aus den Partdescriptionfiles im Pfad von AVR-Studio) und nicht das was außen angebaut wurde. MfG
Hi, ich habe mal ein Projekt mit extern 64kRAM gemacht. Ignorier die 'memory options' in den Studio-Options ganz. In den 'Custom options' musst du in den [Linker options] am Ende der Dateiliste als Linkeroption -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80FFFF angeben. Halt, das ist für 64K. Bei 32K ist __heap_end kleiner: -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x808FFF Die Symbole __heap_start und __heap end benutzen Compiler und Linker um zu wissen, wieviel Speicher zur Verfügung steht. Außerdem musst Du noch das externe RAM aktivieren. Z.b. so: void XRAMInit(void) { MCUCR |= (1<<SRE); // XRAM einschalten XMCRB |= (1<<XMBK); // Buskeeper einschalten, sonst tristate } Weitere Info über Speicherverwaltung etc: http://www.nongnu.org/avr-libc/user-manual/malloc.html Da gibts Info satt. auch eben über __heap_start etc. Hat mir seinerzeit sehr geholfen :) Gruß Andi
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.