Pubblicato il framework USB open source TinyUSB 0.19

È disponibile la versione 0.19 del progetto TinyUSB, che sviluppa uno stack USB multipiattaforma per sistemi embedded. Sono forniti componenti dello stack USB sia per host USB (USB Host) che per dispositivi collegati (USB Device). Il codice del progetto è scritto in linguaggio C ed è distribuito sotto licenza MIT.

Per migliorare la sicurezza, in TinyUSB non vengono utilizzate operazioni di allocazione dinamica della memoria. È supportato l'uso in applicazioni multithread. Per un funzionamento multithread sicuro, tutti gli eventi legati all'innesco di interrupt non vengono gestiti immediatamente al ricevimento della ISR (Interrupt Service Request), ma vengono posti in una coda che viene elaborata nel contesto dell'esecuzione dell'applicazione, e non del gestore di interrupt. L'accesso alle risorse condivise, come FIFO CDC (Communication Device Class), utilizza semaphore e mutex.

Lo stack è astratto dal sistema operativo e può essere utilizzato come componente autonomo, non legato alle funzionalità dei sistemi operativi. Sono disponibili moduli per integrare TinyUSB con i sistemi operativi FreeRTOS, RT-Thread e Apache Mynewt. Sono supportate funzioni di riduzione del consumo energetico, come la modalità sleep e il risveglio in caso di attività. È disponibile un'implementazione iniziale del protocollo PD 3.0 (Power Delivery) per gestire la trasmissione di energia tramite USB Type-C.

Pubblicato il framework USB open source TinyUSB 0.19

TinyUSB consente di aggiungere supporto per classi di dispositivi USB e host personalizzati senza modificare lo stack USB. Tra le classi di dispositivi già supportate in TinyUSB ci sono:

  • UAC2 — Audio Class 2.0;
  • BTH HCI — Bluetooth Host Controller Interface;
  • CDC — Communication Device Class;
  • DFU — Device Firmware Update;
  • HID — Human Interface Device (tastiera, mouse, gamepad);
  • MSC — Mass Storage Class (inclusi dispositivi con più unità logiche);
  • MIDI — Musical Instrument Digital Interface;
  • MTP/PTP — Media Transfer Protocol;
  • RNDIS, ECM (Ethernet Control Model) e NCM (Network Control Model) — interazione di rete tramite USB;
  • USBTMC — Test and Measurement Class;
  • UVC — Video class 1.5;
  • WebUSB.

Classi di USB host supportate:

  • HID — Human Interface Device;
  • MSC — Mass Storage Class;
  • CDC-ACM — Communication Device Class;
  • FTDI, CP210x, CH34x, PL2303 — inoltramento della porta seriale tramite USB;
  • Hub USB.

Nella nuova versione, l'API per dispositivi e host è stata ampliata. Nell'implementazione dell'host USB è stata aggiunta la supporto per dispositivi con più configurazioni. È stato aggiunto il supporto per microcontrollori e schede:

  • ESP32-H4, ESP32-C5, ESP32-C61;
  • STM32U0, STM32WBA, STM32N6;
  • AT32F405, AT32F403A, AT32F415, AT32F423;
  • CH32V305 e CH32V20x (host USB);
  • MCXA156 SDK 2.16 e FRDM-MCXA156.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster