
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를 기반으로 하는 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에서 확인할 수 있습니다.
버그를 발견하거나 새로운 기능을 제안하려면 기존 이슈를 확인한 후, 필요한 경우 새 이슈를 생성해 주세요.
코드 기여를 하려면 기존 이슈를 확인하고, 댓글을 통해 다른 기여자들에게 작업 중인 내용을 알리는 것이 좋습니다. 이렇게 하면 필요하지 않거나 이미 진행 중인 기능을 개발하는 데 시간을 낭비하지 않을 수 있습니다.
그런 다음 풀 리퀘스트를 생성하고 관련 이슈를 링크해 주세요.
코드는 코딩 스타일 가이드라인을 따라야 합니다.