
Bibliothèque pour les cartes basées sur WCH CH56x avec des pilotes USB3/USB2/HSPI/SerDes testés, logging et interruptions différées
Cette bibliothèque a été construite en parallèle de Hydradancer, un nouveau backend pour la bibliothèque d'émulation USB Facedancer basée sur la puce WCH569.
Des pilotes fiables étaient nécessaires pour ce projet et de nombreuses fonctionnalités manquaient dans les exemples WCH ou n'étaient pas testées.
Cette bibliothèque fournit des pilotes USB3, USB2, HSPI et SerDes qui ont été testés à l'aide des tests de performance/intégrité dans tests/. Elle est basée sur wch-ch56x-bsp mais son objectif est de fournir une bibliothèque de plus haut niveau. Comme Hydradancer utilisait plusieurs périphériques à la fois (USB3/HSPI, USB2/HSPI), une file d'attente d'interruptions a été implémentée pour éviter de manquer des interruptions lors de l'utilisation de hspi_scheduled avec un pool de mémoire statique. Bien que les tests de ce dépôt soient suffisamment simples pour effectuer le traitement à l'intérieur des gestionnaires d'interruptions, Hydradancer manquait des interruptions et il était nécessaire de différer les interruptions vers le mode utilisateur.
Dans un projet basé sur CMake, utilisez simplement add_subdirectory(path_to_wch-ch56x-lib) et liez la cible wch-ch56x-lib. wch-ch56x-lib est actuellement une cible INTERFACE, ce qui signifie que les fichiers source/en-tête seront compilés avec votre cible, pas indépendamment.
Options disponibles
Pour construire et flasher le firmware, voir le tutoriel de construction.
Plus d'informations sur les options de compilation peuvent également y être trouvées.
Ce projet utilise une ou deux cartes HydraUSB3, qui sont basées sur le microcontrôleur RISCV WCH569.
wch-ch56x-lib/
| ├─ tests/ # firmwares de test pour tester diverses parties de la bibliothèque
| ├─ src/
| | ├─wch-ch56x-lib # les fichiers source/en-tête de la bibliothèque
| ├─ tools/
| ├─ docs/ # documentation supplémentaire
Plus d'informations sur les différents tests et comment les utiliser peuvent être trouvées dans docs/Testing.md
Si vous rencontrez des bugs ou souhaitez suggérer de nouvelles fonctionnalités, veuillez vérifier les issues existantes et créer une nouvelle issue si nécessaire.
Pour contribuer du code, il est recommandé de vérifier les issues existantes et d'informer les autres contributeurs que vous travaillez sur quelque chose en commentant. Ainsi, vous ne perdrez pas de temps à travailler sur une fonctionnalité qui n'était pas nécessaire ou déjà en cours.
Après cela, veuillez créer une pull-request et lier l'issue correspondante.
Votre code doit suivre les directives du style de codage.