Forum: Mikrocontroller und Digitale Elektronik STM32F4xx: Von SD-Karte 8mit zusätzlichen Filesystem) booten


von Kai (Gast)


Lesenswert?

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

von Jojo S. (Gast)


Lesenswert?

Es gibt ucLinux Portierungen für STM32F4, habe sowas aber selber noch 
nicht getestet.

von Dr. Sommer (Gast)


Lesenswert?

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...

von Kai (Gast)


Lesenswert?

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

von Kai (Gast)


Lesenswert?

Habe einen Bootloader gefunden: OpenBLT
https://sourceforge.net/projects/openblt/?source=typ_redirect

Damit scheint das zu funktionieren, was ich brauche.
Nur ... was mir eingefallen ist - Debuggen wird beim Booten von SD-Karte 
dann nicht mehr funktionieren, oder?

von Dr. Sommer (Gast)


Lesenswert?

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?

von Jojo S. (Gast)


Lesenswert?

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.

von Kai (Gast)


Lesenswert?

Eigentlich soll alles ins RAM geladen warden...

von Kai (Gast)


Lesenswert?

Als in ein externes ...

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
Noch kein Account? Hier anmelden.