Hallo,
Steff wrote:
> Hast mir einer einen Tipp wie man dabei vorgehen könnte?
> Hat eigentlich so ein buffer auch noch irgendwie so untergeordnete pages
> oder sowas?Wenn ich die 1. Struktur in buffer geschreiben hab, an welche
> Stelle schreib ich dann die 2.?Wie bekommt man dazu den freien, noch zur
> verfügung stehenden Speicherplatz heraus?oder schreibt es die neuen
> Daten einfach automatisch hinter die Daten, die schon im buffer stehen?
>
> Wäre echt nett wenn mir jemand weiterhelfen könnte
Irgendwie bringst Du da ein paar Sachen durcheinander.
Wo und wie Du die Daten im Flash ablegen willst, ist letztlich Dein
Problem.
Du kennst Deine Datenstruktur, deren Platzbedarf usw.
Die Buffer sind ja vor allem, damit man ohne Verrenkungen eine ganze
Page programmieren kann.
Also Bufferzeiger auf den Anfang setzen, Deine Daten nach und nach
reinschreiben und wenn der Buffer voll (oder Du nicht weiter willst) den
Buffer per Kommando in die gewünschte Page flashen lassen.
Der 2. Buffer hilft ja nur, um die maximale Geschwindigkeit zu
erreichen.
So kann man seine nächsten Daten schon in den anderen Buffer schreiben,
während der Flash intern noch die Daten des ersten ins Flash kopiert.
usw.
Wieviel Daten Du schreibst, weißt Du (bzw. Dein Programm) doch. Solange
Du /CS aktiv läßt, schreibt er einfach nacheinander Deine Bytes in den
Buffer. Wie voll der ist, darauf muß Du selbst achten, wenn Du das Ende
erreichst macht er kommentarlos wieder ab Anfang weiter und
überschreibt, was da schon stand.
zur binary Pagesize: die Meinungen gehen da sicher auseinander, ich
programmiere meine AT45DBxxxD immer auf binary Pagesize. Einfach, weil
meine Gewohnheiten mit 512 Byte besser klarkommen als mit 528. ;)
Das Umprogrammieren ist allerdings eine Einbahnstraße. Einmal auf binary
Pagesize gesetzt bleibt es auch für immer so.
Gruß aus Berlin
Michael