Hallo miteinander, nachdem ich bei meinen Recherchen in diesem Forum auf das "Problem" mit der speziellen Behandlung von Daten im Flash ( um nicht zuviel RAM benutzen zu müssen ) gestossen bin, möchte ich meine spezielle Frage in den Raum werfen. Ich möchte mit einem ATmega128 und einem LCD incl. Tastatur eine kleine Bedieneinheit entwickeln. Ich habe dazu eine kommerzielle Grafik-Library zur Verfügung. Diese Bibliothek kann auch Fonts einbinden. Fuer diese Fontdaten müsste ich wohl mit der bekannten Vorgehensweise ( PROGMEM ) dafuer sorgen, dass diese im Flash abgelegt werden, weil die 4k wohl nicht ausreichen würden. Jetzt wollte ich aber ungern in der LIB etwas ändern ( alle Tabellen, Zugriffe auf Daten etc. ) Meine Frage: Ist ein AVR oder speziell der ATmega128 dann überhaupt noch die richtige Wahl, oder geht das Alles doch einfacher??
Ganz einfach: Wenn deine "kommerzielle Grafik-Library" nicht in der Lage ist, die Fonts und sonstige Grafikelemente ins Flash zu packen, passt sie nicht zum Mega128. Dann brauchst du entweder eine andere lib, oder einen anderen Prozessor, je nachdem, was für dich einfacher zu handeln ist. Wobei ich mich schon frage, was das für eine lib ist, die zwar prinzipiell auf einen Mega angepasst ist, daber trotzdem darauf gar nicht richtig funktionieren kann. Oliver
Hallo, die LIB ist fuer alle denkbaren Controller geschrieben worden und (Zitat) "For use with embedded processors" konzipiert. Nur eben das spezielle "Problem", wie die statischen Daten abgelegt werden müssen berücksichtigt sie nicht. Mit ausreichend RAM wäre das sicher kein Problem. Deswegen frage ich mich, ob der AVR der Richtige ist. Oder ist die Verwendung von externem RAM eine mögliche Lösung? Den Prozessor zu wechseln ist prinzipiell auch kein Problem, wenn ich mir damit weniger Probleme aufhalse.
Das ist doch ganz einfach: Ein 96-Zeichen-Font in 12*8 Punkt belegt ca. 1kB Speicher. Einer in 8*5 mit 40 Zeichen weniger. Wenns mal große Buchstaben werden sollen (48 Punkt sind für eine zweistellige Anzeige auf einem 128*64 Display gerade richtig), sind alleine für die Ziffern 0-9 schon 2kB weg. Icons brauchen Länge mal Breite, usw. Rechne dir selber aus, ob du alles, was du benötigst, neben Stack und sonstigen Variablen in deine 4kB reinbekommst. Wenn du nur eine Font, keine Icons, ect. benötigst, mag das funktionieren, aber dann brauchst du eigentlich die lib nicht. Also entweder eine andere lib, oder einen Prozessor mit größerem oder externem Ram. Oliver
Hallo Oliver, danke fuer die (moralische) Unterstützung. Ich werde pro Font wohl auch mehrere Spachvarianten anbieten müssen. Die 4k Grenze ist damit weit überschritten. Bin bereits auf der Suche nach einem geeigneterem Prozessor. Wollte mich hier nur noch vergewissern, dass ich nicht total daneben liege und Probleme sehe, wo keine sind. Patrick
Ergänzung zu diesem Thema. Ich musste mich zwangsläufig weiter mit diesem Thema beschäftigen, weil ich eine zugekaufte Bibliothek einsetzen möchte, um möglichst einfach, möglichst viele Fonts ( Sprachvarianten ) nutzen zu können. Mit AVR-GCC ist da nur umständlich voran zu kommen. So gut die Tools auch sind, da stoßen sie an die Grenzen. Mit kommerziellen Compilern/Linkern ( habe IAR und ImageCraft probiert ) ist das Thema der const Daten im FlashRAM sehr einfach zu handeln. Gruß PM
Wie möchte die Lib den die Daten haben? Wenn du zur Laufzeit einfach über einen Zeiger neue Daten zuliefern kannst, wäre es vielleicht eine Idee die Daten alle ins Flash zu packen und nur die gerade verwendeten "Häppchen" ins RAM zu laden.
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.