Hallo, ich möchte eine Tabelle mit Kalibrierwerten im Flash-ROM ablegen. Diese Daten müssen dann immer wieder von meinem Programm ausgelesen werden. Ich kann ja sicher nicht einfach mit einem C-Programm auf das Flash zugreifen, sondern muss mir einen entsprechenden Treiber schreiben, der die Protection aufhebt, die Timings einhält etc. Gilt dies für Lese- als auch Schreibzugriffe? Wie baut man sich sowas zusammen? Macht es Sinn, den Inhalt der Tabelle bei Programmstart ins RAM zu übertragen, also z.B. ein konstantes Array deklarieren und es dann mit den Daten aus dem Flash initialisieren? Oder soll ich, jedesmal wenn ich Daten aus der Tabelle benötige, den Treiber mit einem Lesezugriff bemühen und der Funktion übergeben? Gruß TechInfo
Werte ins RAM schaufeln bringt sehr wahrscheinlich bessere Zugriffszeiten. Verbraucht aber ggf. kostbaren RAM. Musst du abwägen, was du brauchst.
Stefan B. wrote: > Werte ins RAM schaufeln bringt sehr wahrscheinlich bessere > Zugriffszeiten. Zwei statt drei Takte Zugriffszeit, nicht wirklich der Rede wert.
Gibt es die Treiber für die Flash-Bausteine irgendwo im Netz, oder muss man die sich wirklich selbst coden?
@ TechInfo >ich möchte eine Tabelle mit Kalibrierwerten im Flash-ROM ablegen. Diese >Daten müssen dann immer wieder von meinem Programm ausgelesen werden. >Anmerkung: Es handelt sich nicht um einen AVR, also PROGMEM und co. kann >ich vergessen. Mach doch mal deinem Namen Ehre und gib mal ein paar Techinfos rüber! Welcher Prozessor, welcher Compiler. Und FLASH ist nicht gleich FLASH. Man kann parallels FLASH an den exteren BUS hängen, da ist der Zugriff meist genausoschnell wie auf RAM (bei "langsamen" Prozessoren bis ca. 20 MHz). Oder man hat serielles FLASH/EPROM per I2C oder SPI. Klar, DAS ist wesenlich langsamer. Für I2C EEPROMs gibst sicher irgendwo Treiber in den unendlichen Weiten des Internet. MfG Falk
Es handelt sich (wie immer bei meinen Threads) um den MicroBlaze-Softcore samt GCC. Der Flash-Baustein ist ein AMD AM29LV640 und hängt am On-Chip-Peripheral-Bus. Soweit ich das Datenblatt verstanden habe benötigt eine Schreiboperation 4 Taktzyklen (die Sperre muss erst "aufgeschlossen" werden).
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.