Ich schreibe Daten in den internen Flash eines STM32F746 und frage mich, was der Unterschied zwischen Seiten und Sektoren ist. Und was ist der Zweck, stattdessen Sektoren zu verwenden? Beachten Sie, dass ich sehr neu bin und der Grund, warum ich frage, darin besteht, dass ich zuvor in Flash geschrieben habe, wobei ich die Seitengröße und die Anzahl der Seiten kannte. Aber jetzt habe ich stattdessen 8 Sektoren.
Sofern ich es nicht irgendwo übersehen habe, kann ich in keinem Dokument zum STM32F746 einen Hinweis auf Seiten oder Seitengröße finden
Das Konzept ist das gleiche, zwischen Seite und Sektoren. Die STM32F7-Dokumentation verwendet den Sektorbegriff , da sie viel größer sind als die typischen Seiten in einem externen Flash-Speicher. Aber es spielt keine Rolle.
Sie können also keine Verweise auf Seiten finden , da das, was Sie Seiten genannt haben, hier Sektoren genannt werden.
Die Einschränkung ist: Wenn Sie löschen möchten, müssen Sie den gesamten Sektor löschen. Wie Sie gesehen haben, gibt es bei STM32F7 8 Sektoren mit unterschiedlichen Größen (4 Sektoren mit 32 KByte, 1 Sektor mit 128 KByte und 3 Sektoren mit 256 KByte). Die Tatsache, dass sie unterschiedliche Größen haben, ermöglicht Ihnen mehr Flexibilität bei der Organisation Ihres Blitzes. Beispielsweise könnten Sie einen Sektor für Konfigurationsdaten reservieren. Auf diese Weise müssen Sie nicht den gesamten Firmware-Code löschen, wenn Sie diesen Teil neu programmieren möchten. Aber Sie müssen immer noch den gesamten Konfigurationssektor löschen, selbst wenn Sie nur ein einziges Byte davon ändern müssen. Und es ist wahr, dass diese Sektoren riesig sind, sodass Sie diesen Flash nicht so einfach verwenden können wie typische externe serielle Flashs, auf denen Sie die Dinge flexibler organisieren (oder sogar ein Dateisystem verwenden könnten).
Wenn Sie eine flexiblere Möglichkeit zum Speichern persistenter Daten benötigen, die sich im Laufe der Zeit ändern können, verwenden Sie je nach Ihren Einschränkungen einen externen Flash oder ein externes EEPROM. Es gibt jedoch einen Trick, den Sie anwenden könnenauf dem Haupt-MCU-Flash: Das Löschen ist nur erforderlich, wenn Sie Bits von 0 auf 1 umschalten. Um Bits von 1 auf 0 umzuschalten, müssen Sie nur die Flash-Bytes programmieren (siehe Hinweis in Kapitel 3.3.7 im Ref-Handbuch). . Die Programmierung der Flash-Bytes kann beliebig oft auf dem Sektor und auf einzelnen Bytes erfolgen. Sie könnten dies also ausnutzen, indem Sie den riesigen "Konfigurations"-Sektor in kleine Stücke aufteilen, die Sie individuell programmieren, wenn sich Ihre Daten ändern. Dann brauchen Sie einen Index, in dem Sie die Bits von 1 bis 0 „verschmelzen“, um zu wissen, in welchem Chunk die neuesten Daten zu finden sind. Schließlich, wenn alle Chunks verwendet wurden, löschen Sie den gesamten Sektor und beginnen von vorne. Dies verschwendet viel Platz, gibt Ihnen aber möglicherweise die Flexibilität, die Sie benötigen, ohne zu große Kompromisse bei der Blitzlebensdauer einzugehen.
tothphu
schwach
tothphu
schwach
tothphu
schwach