
Biblioteca para placas baseadas em WCH CH56x com drivers USB3/USB2/HSPI/SerDes testados, registro e interrupções adiadas
Esta biblioteca foi construída em conjunto com o Hydradancer, um novo backend para a biblioteca de emulação USB Facedancer baseada no chip WCH569.
Drivers confiáveis eram necessários para este projeto e muitos recursos estavam faltando nos exemplos da WCH ou não testados.
Esta biblioteca fornece drivers USB3, USB2, HSPI e SerDes que foram testados usando os testes de benchmark/integridade em tests/. É baseada em wch-ch56x-bsp mas seu objetivo é fornecer uma biblioteca de nível mais alto.
Como o Hydradancer estava usando vários periféricos ao mesmo tempo (USB3/HSPI, USB2/HSPI), uma fila de interrupções foi implementada para evitar perder interrupções para uso com hspi_scheduled juntamente com um pool de memória estática.
Embora os testes neste repositório sejam simples o suficiente para fazer o processamento dentro dos manipuladores de interrupção, o Hydradancer estava perdendo interrupções e foi necessário adiar interrupções para o modo de usuário.
Em um projeto baseado em CMake, simplesmente use add_subdirectory(path_to_wch-ch56x-lib) e vincule ao alvo wch-ch56x-lib. wch-ch56x-lib é atualmente um alvo INTERFACE, o que significa que os arquivos de código-fonte/cabeçalho serão compilados com o seu alvo, não independentemente.
Opções disponíveis
Para compilar e carregar o firmware, veja o tutorial de compilação.
Mais informações sobre opções de compilação também podem ser encontradas lá.
Este projeto usa uma ou duas placas HydraUSB3, que são baseadas no WCH569 RISCV MCU.
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
Mais informações sobre os diferentes testes e como usá-los podem ser encontradas em docs/Testing.md
Se você encontrar bugs ou quiser sugerir novos recursos, por favor verifique as issues existentes e crie uma nova issue se necessário.
Para contribuir com código, é recomendável verificar as issues existentes e informar os outros contribuidores que você está trabalhando em algo comentando. Dessa forma, você não perderá tempo trabalhando em um recurso que não era necessário ou já estava em andamento.
Depois disso, por favor crie um pull-request e vincule a issue relacionada.
Seu código deve seguir as diretrizes de estilo de codificação.