Forum: PC-Programmierung Bootloader Frontend SW


von Torben (Gast)


Lesenswert?

Hallo,

für mein STM32 Projekt hab ich den Bootloader von ST für die RS232 
Schnittstelle auf meine Bedürfnisse angepasst und jetzt stürze ich mich 
auf auf die Consolen Applikation für den PC. Ich möchte danach den RS232 
Bootloader auf USB CDC (Virtual Comport) abändern und mir viel nun auf, 
dass der Virtuelle Comport nicht immer vorhanden ist.

Der BL arbeitet momentan nach diesen Ablauf:

Der uC wartet nach einsteckern des USB Kabels 3 Sekunden auf ein Start 
ASCII zeichen, wenn kein Start Ascii kommt, dann wird geprüft ob eine 
Main APP geschrieben ist und dann angesrpungen. Wenn innerhalb von 3 
Sekunden das Start Ascii Byte gesendet wird, dann springt der BL die 
Funktion zum update an und nach erfolgreichen flashen wird ein reset 
ausgeführt.

PC Consolen Applikation:

STM32_BL.exe -com_port -cpu_type -flash_file startet das Programmm mit 
den angegebenen parametern. 20 Sekunden lang wird das Start ASCII 
zeichen gesendet, damit der Benutzer genug zeit hat das STM32 an den PC 
anzuschliessen. Sollte sich der PC mit dem STM32 synchronsiert haben, 
wird der Filer Transfer prozess gestartet.

Meine Überlegnung war folgende:

STM32_BL.exe -com_port -cpu_type -flash_file startet das Programmm mit 
den angegebenen parametern. Der COM_Port wird versucht zu oeffen bis ein 
Timeout von 1 Minute oder manueller Abbruch erfolgt. Sollte der Comport 
sich oeffnen lassen, dann wird 20 Sekunden das Sync Byte gesendet usw.

Ist die Überlegung richtig oder sollte es anderes gelöst werden?

von Ralf (Gast)


Lesenswert?

> Ich möchte danach den RS232 Bootloader auf USB CDC (Virtual Comport)
> abändern und mir viel nun auf, dass der Virtuelle Comport nicht immer
> vorhanden ist.
Was heisst das? Du hast bereits CDC implementiert und es funktioniert 
nicht richtig?
Der COM-Port muss immer auftauchen.

> Meine Überlegnung war folgende:
> ...
> Ist die Überlegung richtig oder sollte es anderes gelöst werden?
Ich würde mir in der Programmiersprache meiner Wahl folgendes Programm 
schreiben (Device noch nicht eingesteckt):
- Programm wird gestartet und liest alle aktuell vorhandenen COM-Ports 
aus
- Aufforderung an den User das Device einzustecken, währenddessen wird 
kontinuierlich geprüft, ob ein weiterer COM-Port hinzukam
- Wenn ein neuer COM-Port erkannt wurde, wird das nötige Initialisieren 
des Bootloaders vorgenommen und die Firmware geladen, indem du dann das 
Flash-Programm mit dem passenden COM-Port aufrufst
- Benachrichtung an den User und fertig

Ralf

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.