Am Wochenende habe ich dann doch endlich mit ChibiOS/RT herumgespielt. Das Zielsystem dafür war ein Dev-Board von Waveshare mit einem STM32F103, das Open103R. Die Boardconfig für ChibiOS hängt an, für den Fall das jemand das Ding gebrauchen kann. Einziger Stolperstein dabei: Auf dem Open103R ist die USB-Enable-Leitung (Oder genauer: Der Pullup in der D+ Leitung) über einen Jumper geführt. Das führt dazu das bei einem Board-Reset USB nicht sauber neu enumeriert wird. Dafür sind in der board.h die beiden Makros usb_lld_connect_bus und usb_lld_disconnect_bus definiert, die den GPIO PA8 ansteuern. Auf dem Board muss man dann denn Jumper entfernen und eine Strippe von PA8 auf den Stift 1 (der beim JTAG-Anschluss) stecken. Dann kann man vor dem usbStart ein usbDisconnectBus, Sleep und usbConnectBus durchführen damit der PC neu enumeriert. Als Sleep benutze ich 1000ms, Linux kommt damit problemlos klar. Bei Windoof weiss ichs nicht, da ist das USB-Subsystem gerne mal zickig (bis hin zum Totalabsturz).

Dazu gibts auch noch ein "Hello World", das eigentlich nur zwei Dinge macht: ChibiOS initialisieren, eine Command-Shell auf dem USB1 (als Serial-Over-USB) starten, und die 4 LEDs als Lauflicht tickern lassen.

Dateien dazu gibts im Repository

Next Post Previous Post