
Bibliothek für WCH CH56x-basierte Boards mit getesteten USB3/USB2/HSPI/SerDes Treibern, Logging und verzögerten Interrupts
Diese Bibliothek wurde zusammen mit Hydradancer entwickelt, einem neuen Backend für die Facedancer-USB-Emulationsbibliothek basierend auf dem WCH569-Chip.
Zuverlässige Treiber waren für dieses Projekt erforderlich und viele Funktionen fehlten in den WCH-Beispielen oder waren ungetestet.
Diese Bibliothek bietet USB3-, USB2-, HSPI- und SerDes-Treiber, die mit den Benchmark-/Integritätstests in tests/ getestet wurden. Sie basiert auf wch-ch56x-bsp, hat aber das Ziel, eine Bibliothek auf höherer Ebene bereitzustellen. Da Hydradancer mehrere Peripheriegeräte gleichzeitig verwendete (USB3/HSPI, USB2/HSPI), wurde eine Interrupt-Warteschlange implementiert, um fehlende Interrupts bei Verwendung von hspi_scheduled zu vermeiden, zusammen mit einem statischen Speicherpool. Während die Tests in diesem Repository einfach genug sind, um die Verarbeitung innerhalb der Interrupt-Handler durchzuführen, verlor Hydradancer Interrupts, und das Verschieben von Interrupts in den Benutzermodus war erforderlich.
In einem CMake-basierten Projekt verwenden Sie einfach add_subdirectory(pfad/zu/wch-ch56x-lib) und verlinken auf das Ziel wch-ch56x-lib. wch-ch56x-lib ist derzeit ein INTERFACE-Ziel, was bedeutet, dass die Quell-/Header-Dateien mit Ihrem Ziel kompiliert werden, nicht unabhängig.
Verfügbare Optionen
Zum Erstellen und Flashen der Firmware siehe das Build-Tutorial.
Weitere Informationen zu Kompilierungsoptionen finden Sie ebenfalls dort.
Dieses Projekt verwendet ein oder zwei HydraUSB3-Boards, die auf dem WCH569 RISCV-MCU basieren.
wch-ch56x-lib/
| ├─ tests/ # Test-Firmwares zum Testen verschiedener Teile der Bibliothek
| ├─ src/
| | ├─wch-ch56x-lib # die Quell-/Header-Dateien der Bibliothek
| ├─ tools/
| ├─ docs/ # zusätzliche Dokumentation
Weitere Informationen zu den verschiedenen Tests und deren Verwendung finden Sie in docs/Testing.md
Wenn Sie auf Fehler stoßen oder neue Funktionen vorschlagen möchten, überprüfen Sie bitte die vorhandenen Issues und erstellen Sie bei Bedarf ein neues Issue.
Um Code beizutragen, wird empfohlen, vorhandene Issues zu überprüfen und die anderen Mitwirkenden durch einen Kommentar zu informieren, dass Sie an etwas arbeiten. Auf diese Weise verschwenden Sie keine Zeit mit einer Funktion, die nicht benötigt wurde oder bereits in Arbeit ist.
Erstellen Sie danach bitte einen Pull-Request und verlinken Sie das zugehörige Issue.
Ihr Code sollte den Codierungsrichtlinien folgen.