
Libreria per board basate su WCH CH56x con driver USB3/USB2/HSPI/SerDes testati, logging e interrupt differiti
Questa libreria è stata sviluppata insieme a Hydradancer, un nuovo backend per la libreria di emulazione USB Facedancer basato sul chip WCH569.
Per questo progetto erano necessari driver affidabili e molte funzionalità erano assenti negli esempi WCH o non testate.
Questa libreria fornisce driver USB3, USB2, HSPI e SerDes che sono stati testati utilizzando i test benchmark/integrità in tests/. Si basa su wch-ch56x-bsp ma il suo obiettivo è quello di fornire una libreria di livello superiore. Poiché Hydradancer utilizzava diverse periferiche contemporaneamente (USB3/HSPI, USB2/HSPI), è stata implementata una coda di interrupt per evitare di perdere interrupt quando si usa hspi_scheduled, insieme a un pool di memoria statico. Sebbene i test in questo repository siano abbastanza semplici da eseguire l'elaborazione all'interno degli handler degli interrupt, Hydradancer perdeva interrupt ed è stato necessario rimandare gli interrupt alla modalità utente.
In un progetto basato su CMake, basta usare add_subdirectory(path_to_wch-ch56x-lib) e collegarsi al target wch-ch56x-lib. wch-ch56x-lib è attualmente un target INTERFACE, il che significa che i file sorgente/intestazione verranno compilati insieme al tuo target, non in modo indipendente.
Opzioni disponibili
Per compilare e flashare il firmware, consulta il tutorial di compilazione.
Ulteriori informazioni sulle opzioni di compilazione sono disponibili anche lì.
Questo progetto utilizza una o due schede HydraUSB3, basate sul microcontrollore WCH569 RISCV.
wch-ch56x-lib/
| ├─ tests/ # test firmwares to test various parts of the library
| ├─ src/
| | ├─wch-ch56x-lib # the source/header files of the lib
| ├─ tools/
| ├─ docs/ # additional documentation
Maggiori informazioni sui diversi test e su come utilizzarli sono disponibili in docs/Testing.md
Se incontri bug o vuoi suggerire nuove funzionalità, controlla le issue esistenti e creane una nuova se necessario.
Per contribuire con codice, si consiglia di controllare le issue esistenti e di informare gli altri contributori che stai lavorando a qualcosa commentando. In questo modo non perderai tempo lavorando su una funzionalità che non era necessaria o che era già in lavorazione.
Dopodiché, crea una pull-request e collega la issue correlata.
Il tuo codice dovrebbe seguire le linee guida dello stile di codifica.