Hallo... Ich habe ein neues Project vor und bin dabei mir Hardware Auszusuchen. Das grosse Ding ist: Ich brauche massenhaft Speicher. Als Programm code wuerden mir wahrscheinlich die 128k des Atmega128 reichen, aber ich brauche mehr SRAM und ... . Der Atmega128 kann 64k extern adressieren. Da ist es ja so, dass man an die ersten ~4k des externen Speichers nicht drankommt. Kann man ev. durch eine geschikte Adressdekodierung auch die ersten ~4k nutzen? Zum zweiten koennte ich ein Flash zusaetzlich gebrauchen. Ich habe etwa 40k Daten, die waehrend des Programmablaufs nicht veraendert werden, aber es wird permanent darin gesucht. Kann man diese externe 64k aufteilen in z.B. 32k SRAM und 32k Flash? Danke Alex
Vielleicht ist das für dich interessant, gerade bei einem "Spiele-Rechner": http://members.aon.at/voegel/ Gruß Sebezahn
Den Speicher kannst Du problemlos aufteilen. Allerdings solltest Du Dir überlegen, ob Du dafür nicht einen anderen Controller nimmst. Das macht die Software und Hardware viel einfacher. Fujitsu hat sehr schöne, auch Renesas hat ganz brauchbare (für beide gibt es kostenlose C-Compiler).
Wie geht das denn? Muss ich dann nicht dem Linker auch sagen, wie gross mein SRAM ist und das ROM DatenSegment ist? Kann ich das Flash (ist ja dann parallel angeschlossen) auch problemlos programmieren? Eine andere Hardware weiss ich nicht. Grosse Teile des Codes sind schon in C++ geschrieben. Die umzuschreiben in C ... Hmmm... Alex
Dem Compiler musst Du das nur sagen, wenn Du das RAM nicht selber verwaltest. Das hängt von Deiner Software ab. Beim AVR-GCC kannst Du bestimmen, ob der Compiler das RAM komplett nutzt, nur für den HEAP oder gar nicht. Das Flash kannst Du im Prinzip schon programmieren, so funktioniert das beim PC ja auch. Vielleicht schreibst Du mal, wie Deine Software aufgebaut ist und welchen Compiler Du verwendest.
Alternativ kann man natürlich noch über Speicherbankaufteilungen nachdenken. Sowas wurde schon beim Z80 gemacht.
Hallo... Ich benutze WinAVR. Ich hatte an eine Adressdekodierung in 8k Schritten gedacht. Ueber einen GAL. Ich habe Bibliotheken, die etwa 40kB Gross sind. Diese sollen in den Flash-Speicher. Der Rest von 64kB soll bleiben fuer das SRAM. Nur wollte ich das so machen, dass wenn ich die Bibliotheken kleiner bekomme, moechte ich ueber den GAL von den 40 kB etwas abzwacken und dem SRAM zukommen lassen. Eine Weitere Frage waere, ob man eine etwas groesseren Adressbereich hinbekommt. Man koennte ja z.B. es so machen, dass wenn man z.B. eine ganz bestimmte Adresse im GAL (ich weiss nicht ob so etwas mit einem GAL geht. Ich habe das frueher mit einem Altera so gemacht) schreibt, dann praktisch die Adressleitung A16 setzt und somit nochmal 64kB bekommt. Ist so etwas den mit einem GAL moeglich ? Vielleicht ein anderer Baustein ausser Altera? Alles nur Fragen ;-() Danke. Alex
So etwas geht, auch mit einem GAL. Ich würde allerdings ein CPLD nehmen. Die verbrauchen weniger Strom. Vielleicht ein Xilinx XC9536XL, den gibt es für ca. 2,50 bei Reichelt. Software dazu bei Xilinx kostenlos, ISP-Programmer-Bauanleitungen dazu im Netz.
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.