
WCH CH56xベースのボード向けライブラリ。テスト済みのUSB3/USB2/HSPI/SerDesドライバ、ロギング、遅延割り込みを備えています。
このライブラリは、WCH569 チップをベースとする Facedancer USB エミュレーションライブラリの新しいバックエンドである Hydradancer と並行して構築されました。
このプロジェクトには信頼性の高いドライバが必要であり、WCH のサンプルには多くの機能が欠落していたか、未テストのままでした。
このライブラリは、tests/ 内のベンチマーク/整合性テストを使用してテストされた USB3、USB2、HSPI、および SerDes ドライバを提供します。wch-ch56x-bsp をベースにしていますが、より高水準のライブラリを提供することを目的としています。Hydradancer は複数のペリフェラルを同時に使用していたため (USB3/HSPI、USB2/HSPI)、hspi_scheduled と共に使用する際に割り込みを失わないように、静的メモリプールとともに割り込みキューが実装されました。このリポジトリのテストは割り込みハンドラ内で処理を行うのに十分単純ですが、Hydradancer では割り込みが失われる問題があり、割り込みをユーザーモードに延期する必要がありました。
CMake ベースのプロジェクトでは、add_subdirectory(path_to_wch-ch56x-lib) を使用して wch-ch56x-lib ターゲットにリンクするだけです。wch-ch56x-lib は現在 INTERFACE ターゲットであり、ソース/ヘッダファイルは独立してコンパイルされるのではなく、ターゲットと一緒にコンパイルされることを意味します。
利用可能なオプション
ファームウェアをビルドして書き込むには、ビルドチュートリアル を参照してください。
コンパイルオプションの詳細もそこに記載されています。
このプロジェクトは、WCH569 RISCV MCU をベースとする 1 台または 2 台の HydraUSB3 ボードを使用します。
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
さまざまなテストとその使用方法の詳細は、docs/Testing.md にあります。
バグに遭遇した場合や新機能を提案したい場合は、既存の issue を確認し、必要に応じて新しい issue を作成してください。
コードに貢献するには、既存の issue を確認し、コメントして他のコントリビューターに作業中の内容を知らせることをお勧めします。これにより、不要な機能や既に進行中の機能に時間を費やすことを避けられます。
その後、プルリクエストを作成し、関連する issue をリンクしてください。
コードは コーディングスタイル のガイドラインに従う必要があります。