Forum: Mikrocontroller und Digitale Elektronik multi-Application-flash + bootloader konzept


von haube (Gast)


Lesenswert?

hallo !

meine aufgabe is es ein bootloader zu bauen der über ethernet (TFTP) die 
flashapplication updaten kann.

besser wäre allerdings noch aus sicherheitsgründen  das Ur-programm im 
flash zu behalten und als update die neue version in ein anderen 
flashbereich zu bringen.

Flash ist genug da (256kByte) für sogar weit aus mehr als 2 programme

es geht darum möglichst sicher die software zu verändern von einiger 
entfernung ohne menschen hinschicken zu müssen wenn was schief läuft.

habe hier  schon einiges gelesen aber nicht herausbekommen ob soetwas 
praktikabel ist oder eher nicht .
( probleme mit IRQ-vektortabelle, flashen des zweitprogramms, einsprung 
in dieses)

es geht ersteinmal um ein konzept / genaue vorstellungen zu details hab 
ich noch nicht.

::___offtopic____::

bootloader over Ethernet:

lieber ETH-treiber/stack und speicherung der empfangen Programm-daten in 
applikation machen und dann nur noch im bootloader flashen (aus RAM) 
oder parallel (page-weise) empfangen anschließend flashen oder alles im 
bootloader machen ??

von Hmm... (Gast)


Lesenswert?

Hab das bei einer ähnlichen Applikation mal so gesehen, dass der 
Bootloader eine rudimentäre TCP/IP Schnittstelle sowie die Flashroutine 
beinhaltet hat. Der Bootloader war dann auch nicht mehr per Ethernet 
änderbar. Der Bootloader hat beim Reset 5s gewartet, falls dann keine 
Anfrage vom Flashtool ankam wurde die Applikation gestartet.

Einzige Anforderung an die Applikation war halt, dass man IMMER einen 
Reset z.b. per Watchdog auslösen können muss. Die IP-Adresse des Boards 
war solange der Bootloader aktiv war statisch. Wenn du mehrere Boards im 
gleichen Subnetz betreiben willst, kannst du ja z.B. per DIP-Schalter 
einige Bits der IP-Adresse konfigurierbar machen.

von Martin L. (Gast)


Lesenswert?

Redboot kann das und noch einiges mehr...
Und von ecoscentric gibt ess auch noch ein explizizes Flashtool was dann 
aber Geld kostet.

Viele Grüße,
 Martin L.

von haube (Gast)


Lesenswert?

erstmal danke ..

ich werd dann mal anfangen irgendwas in die bootlosderSection zu 
schreiben und zu testen .


muss ich da was beachten, bin ich irgendwie eigschränkt  ?


also die Interruptvektortabelle verschieben  und dann müsste ich ja 
quasi wie in einer normalen applikation programmieren können, oder?


__


und sowas wie springen zwischen bootloadercode und applicationcode ist 
nicht möglich oder ??  also ich mein wenn dann immer nur zu den 
startadressen oder ?

sonst könnte man ja neue Porgrammdaten empfangen (im RAM puffern) in 
Bootloader springen und den puffer schreiben ins flash  und dann wieder 
zurück in die applikation weitere daten empfangen  usw...

geht nicht so , oder ?

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.