Hallo, sollte man Parameter aus Geschwindigkeitsgründen besser im RAM halten oder sind die Performanceverluste vernachlässigbar, wenn man die Parameter erst bei Bedarf aus dem EEPROM liest? Schreiben dauert ja in jedem Fall deutlich länger als Lesen. Da ich den ganzen EEPROM-Bereich ausfülle hätte ich ziemliche Einbußen an RAM beim Spiegeln der Werte. Mein Arbeitsprozessor ist ein ATmega16. Gruß R A L F
EEPROM-Zugriffe dauern auf jedemfall länger als RAM-Zugriffe. Jedoch soltest du das EEPROM nicht als RAM misbrauchen, denn das EEPROM mag nur 1000000 schreibzugriffe. Wenn du dann ständig liest und schreibst, so ist das EEPROM bald im Eimer! Gruß, Florian
kann man nicht so pauschal sagen, kommt auf das Programm an. Ein Lesezugriff auf das EEPROM kostet natürlich etliche Takte, und wird zum Beispiel in einer Schleife die Variable immer wieder aus dem EEPROM gelesen, kann das deutliche Verluste bringen. Der Einsatz von lokalen Variablen schafft hier Abhilfe, die im Teilprogramm benötigten Variablen werden in die Register oder SRAM gespiegelt und dann damit arbeiten.
Hallo, vielleicht habe ich mich falsch ausgedrückt: ich will das EEPROM nicht als RAM mißbrauchen. Ins EEPROM sollen eine große Steuertabelle, die sich hin und wieder ändert - entweder per Upload oder programmgesteuert. Allerdings greift das Programm ständig lesend auf diese Tabelle zu, und da frage ich mich, ob das stark bremst gegenüber RAM-Zugriffen. Da die Tabelle das gesamte EEPROM belegt und eine Spiegelung ins RAM den halben RAM-Speicher kosten würde. Die Zugriffe sind ziemlich willkürlich und immer nur Einzelzugriffe, so dass auch ein Puffern häufiger benötigter Bereiche nicht so viel bringt. Gruß R A L F
Nur fürs Lesen lohnt sich nicht das Kopieren ins RAM, das geht fast genauso schnell. Bei 16MHz dauert das Lesen etwa 250ns (4Takte), dürfte also kaum ins Gewicht fallen. Peter
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.