A fost publicată versiunea deschisă a stivei USB TinyUSB 0.19

Versiunea 0.19 a proiectului TinyUSB este disponibilă, dezvoltând o stivă USB multiplatformă pentru sisteme încorporate. Stiva USB oferă componente pentru gazde USB (USB Host) și pentru dispozitive conectabile (USB Device). Codul proiectului este scris în limbajul C și este distribuit sub licența MIT.

Pentru a îmbunătăți securitatea, TinyUSB nu utilizează operațiuni de alocare dinamică a memoriei. Este suportat utilizarea în aplicații multi-thread. Pentru a asigura o funcționare sigură multi-thread, toate evenimentele legate de apariția întreruperilor nu sunt prelucrate imediat la primirea ISR (Interrupt Service Request), ci sunt plasate într-o coadă, care este analizată și procesată în contextul execuției aplicației și nu în cel al handler-ului de întreruperi. La accesarea resurselor partajate, cum ar fi FIFO CDC (Communication Device Class), se folosesc semafoare și mutex-uri.

Stiva este abstractizată de sistemul de operare și poate fi utilizată ca un component autonom, nelegat de funcționalitatea sistemelor de operare. Sunt disponibile module pentru integrarea TinyUSB cu sistemele de operare FreeRTOS, RT-Thread și Apache Mynewt. Se susțin opțiuni de reducere a consumului de energie, cum ar fi trecerea în modul de repaus și trezirea la activitate. Există o implementare inițială a protocolului PD 3.0 (Power Delivery) pentru gestionarea transmiterii energiei prin USB Type-C.

A fost publicată versiunea deschisă a stivei USB TinyUSB 0.19

TinyUSB permite adăugarea suportului pentru propriile clase de dispozitive USB și gazde fără a modifica stiva USB. Printre clasele de dispozitive deja suportate în TinyUSB se numără:

  • UAC2 — Audio Class 2.0;
  • BTH HCI — Bluetooth Host Controller Interface;
  • CDC — Communication Device Class;
  • DFU — Device Firmware Update;
  • HID — Human Interface Device (tastatură, mouse, gamepad);
  • MSC — Mass Storage Class (inclusiv unități cu mai multe dispozitive logice);
  • MIDI — Musical Instrument Digital Interface;
  • MTP/PTP — Media Transfer Protocol;
  • RNDIS, ECM (Ethernet Control Model) și NCM (Network Control Model) — interacțiune de rețea prin USB;
  • USBTMC — Test and Measurement Class;
  • UVC — Video class 1.5;
  • WebUSB.

Clasele de gazde USB suportate:

  • HID — Human Interface Device;
  • MSC — Mass Storage Class;
  • CDC-ACM — Communication Device Class;
  • FTDI, CP210x, CH34x, PL2303 — transmiterea seriilor de porturi prin USB;
  • USB Hub.

În noua versiune, API-ul pentru dispozitive și gazde a fost extins. În implementarea gazdei USB, a fost adăugat suport pentru dispozitive cu multiple configurații. Suportul a fost adăugat pentru microcontrolere și plăci:

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

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster