Gast
#3334346
Hi, bin gerade dabei mir einen Bootloader für meinen LPC1758 Prozessor zu schreiben, der die Applikation laden und über USB updaten kann. Momentan interessiert mich vor allem der Firmware-Update Vorgang über USB. Wie überträgt man die Daten am Besten vom Rechner auf den LPC - über ein HID Interface oder mittels DFU (device firmware upgrade)? Falls DFU eine gute Möglichkeit darstellt, benötigt man für diesen einen eigenen Treiber unter Windows, Linux oder Macintosh oder werden diese Treiber bereits mit dem OS mitgeliefert? Der Updatevorgang soll über eine entsprechende Rechnerapplikation vom Endanwender durchgeführt werden können; diese möchte ich gern in Qt programmieren, so dass ich sie für alle OS erzeugen kann. Von meiner IDE erhalte ich den Sourcecode u. a. als Hex-File. Dieses beinhaltet ja den Code, der im Flash vom LPC gespeichert werden muss. Um sicherstellen zu können, dass beim Updateprozess auch die richtige Datei ausgewählt worden ist, wollte ich gerne in diesem Hexfile noch eine Prüfsumme sowie ein Codewort integrieren. Mit welcher Software kann man das ohne viel Aufwand hinzufügen, sowie eine Prüfsumme bilden? Bis jetzt hab ich nur einen Hexeditor. Ein Programm welches mir die Prüfsumme eines Hexfiles direkt angibt, wäre super. Bei den meisten anderen USB-Produkten erhält man im Normalfall ein .exe oder .bin File für den Updateprozess und kein .hex File. Welche Schritte sind zusätzlich im µController notwendig, damit man aus einem .exe oder .bin File wieder den eigentlichen Code fürs Flash erhält? Sollte während des Updatevorgangs ein Stromausfall etc. passieren, so dass zwar der Bootloader geladen werden kann aber nicht die Applikation, sollte diese auch nicht gestartet werden. Dies wollte ich über eine Variable erreichen, die im Bootloadercode bei jedem Start aus einem externen Eeprom ausgelesen wird. Diese gibt an, ob die Applikation erfolgreich gespeichert worden ist, ein Updateprozess im Gange ist bzw. keine bootbare Applikation existiert. Ist das ein guter Ansatz oder gibt es bessere? Welche Punkte sind bei einem Update der Applikation noch zu berücksichtigen? Hatte noch vor, nach dem kompletten Schreibvorgang vom RAM ins Flash einen Verify durchzuführen anhand der Prüfsumme die ebenfalls mit übertragen worden ist. Gruß Lars