STM32F4xx: Von SD-Karte 8mit zusätzlichen Filesystem) booten

Gast #4515586
Hallo zusammen,

kann man eigentlich mit einem STM32F407 von einer FAT-formartieren 
SD-Karte booten? Auf der SD-Karte sollen zudem Firmware-Image auch Bild- 
und Textdateien gespeichert werden können, die vom Controller gelesen 
werden.

Gibt es schon einen Bootloader, der so was kann?

Danke und Grüße
Kai
Gast
Der Controller an sich kann das nicht. Du kannst dir aber ein Programm 
schreiben, welches ein Image von der SD Karte lädt, es in den RAM 
schreibt und dort ausführt. Besonders sinnvoll ist das aber nicht, da 
dein Image dann ja wesentlich kleiner sein muss damit es in den RAM 
passt, und eben weniger RAM für Daten übrig bleibt. Du kannst das 
Programm alternativ auch in den internen Flash schreiben, als 
Möglichkeit zum Firmware Upgrade.

Kai schrieb:
> Gibt es schon einen Bootloader, der so was kann?
Du kannst dir so etwas mithilfe einer SD Karten Library auch selber 
schreiben...
Gast
Hallo Jojo,

danke für deine Antwort! Das bis verwendete Betriebssystem ist FreeRTOS.
Würde ungern den Code, den ich schon habe, portieren müssen...

Grüße
Kai
Gast
Kai schrieb:
> Debuggen wird beim Booten von SD-Karte dann nicht mehr funktionieren,
> oder?

Doch klar, es werden weiterhin Instruktionen aus dem Speicher 
ausgeführt, das kann man normal Debuggen. Du musst nur dafür sorgen, 
dass die PC Software des Debuggers den aktuellen Sourcecode hat und die 
richtigen Adressen, damit auch source Level Debugging geht.

Kai schrieb:
> Habe einen Bootloader gefunden: OpenBLT
Dieser überschreibt bei jedem Boot Vorgang den internen Flash und nutzt 
ihn somit ab. Ist das das, was du willst?
Gast
Der OpenBLT sieht gut aus, habe ich auch in meine Favoritenliste 
gepackt.

Dr. Sommer schrieb:
> Dieser überschreibt bei jedem Boot Vorgang den internen Flash

Das lässt sich doch einfach lösen, ein SW-Update per 
SD-Karte/USB-Memorystick ist doch gängige Praxis bei vielen Geräten. 
Nach dem Update einfach die Firmwaredatei von der Karte löschen, beim 
nächsten boot wird nix gefunden und der Code aus dem Flash ausgeführt.
Wenn wirklich jeder Start von der SD Karte erfolgen soll dann ist es 
natürlich sinnvoller ins RAM zu schreiben. Der F4 hat mit internen 512 
kB oder evtl. externem SDRAM ja reichlich Reserven.
Gut ist einfach das der ARM Cortex die Architektur hat mit der das 
möglich ist.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.