Sobre o projeto
TinyUSB é uma pilha USB Host/Device de código aberto e multiplataforma para sistemas embarcados. Ela foi projetada para segurança de memória (sem alocação dinâmica) e segurança de threads (todas as interrupções são adiadas para funções de tarefa fora da ISR), com ênfase em portabilidade, pequeno footprint e desempenho em tempo real em mais de 50 famílias de MCU.
Os principais recursos incluem operação thread-safe por meio de uma fila central para eventos de ISR, buffers estáticos sem alocação dinâmica, portabilidade entre muitas famílias de MCU e suporte a CDC, HID, MSC, Audio e funcionalidade Host. Funciona com bare metal, FreeRTOS, RT-Thread e Mynewt.
A estrutura do repositório inclui docs, exemplos com sistemas de build make e cmake, BSP de hardware e drivers de MCU, bibliotecas de terceiros, fontes da pilha, testes (unitários, fuzzing, hardware) e ferramentas internas.
A pilha de dispositivo suporta múltiplas configurações via descritores USB dinâmicos, funções de baixo consumo como suspend, resume e remote wakeup, e classes como Audio 1.0/2.0, BTH HCI, CDC, DFU, HID, Printer, MSC com múltiplos LUNs, MIDI, MTP/PTP, redes RNDIS/ECM/NCM, USBTMC, UVC (em desenvolvimento), classes vendor-specific e WebUSB. Drivers de classe personalizados podem ser adicionados via usbd_app_driver_get_cb().
A pilha de host suporta CDC-ACM, serial vendor over USB (FTDI, CP210x, CH34x, PL2303), HID, MSC, MIDI e hubs multi-nível. Drivers de host personalizados podem ser adicionados via usbh_app_driver_get_cb().
Uma pilha de entrega de energia (PD3.0 com USB Type-C) está em estágio muito inicial, apenas para testes e somente em STM32 G4.
Uma camada de abstração de SO envia todos os eventos de ISR para uma fila central processada em contexto fora da ISR, usando semáforos/mutexes para recursos compartilhados. Os SOs suportados incluem No OS, FreeRTOS, RT-Thread e Mynewt.
As CPUs suportadas abrangem muitos fabricantes, incluindo Allwinner, Analog, Artery AT32, Bridgetek, Broadcom, Dialog, Espressif, Geehy, GigaDevice, HPMicro, Infineon, MicroChip, MindMotion, NordicSemi, Nuvoton, NXP, Puya, Raspberry Pi, Renesas, Silabs, Sony, ST STM32, TI, ValentyUSB e WCH, com suporte variado para modos device, host e high-speed.
Ferramentas de desenvolvimento fornecidas gratuitamente incluem IAR Build Tools, JetBrains CLion e o analisador estático PVS-Studio.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.