Публикуван е отворен USB стек TinyUSB 0.19.

Достъпен е проектът TinyUSB 0.19, който развива кросплатформен USB стек за вградени системи. Предоставят се компоненти на USB стека за USB хостове (USB Host) и за свързани устройства (USB Device). Проектният код е написан на езика C и се разпространява под MIT лиценз.

За повишаване на сигурността в TinyUSB не се прилагат операции за динамично разпределение на памет. Поддържа се употреба в многопоточни приложения. За безопасна работа в многопоточно представяне, всички събития, свързани с възникване на прекъсвания, не се обработват веднага при получаване на ISR (Interrupt Service Request), а се поставят в опашка, която се разглежда и обработва в контекста на изпълняваното приложение, а не на обработчика на прекъсванията. При достъп до споделени ресурси, като FIFO CDC (Communication Device Class), се използват семафори и мютекси.

Стекът е абстрахиран от операционната система и може да се използва като самостоятелен компонент, независим от функционалността на операционните системи. В същото време са налични модули за интеграция на TinyUSB с ОС FreeRTOS, RT-Thread и Apache Mynewt. Поддържат се възможности за намаляване на енергопотреблението, като преход в спящ режим и събуждане при поява на активност. Налична е първоначална реализация на протокола PD 3.0 (Power Delivery) за управление на предаването на електрическа енергия през USB Type-C.

Публикуван е отворен USB стек TinyUSB 0.19.

TinyUSB позволява добавяне на поддръжка на собствени класове USB устройства и хостове без модификация на USB стека. Сред вече поддържаните в TinyUSB класове устройства са:

  • UAC2 — Audio Class 2.0;
  • BTH HCI — Bluetooth Host Controller Interface;
  • CDC — Communication Device Class;
  • DFU — Device Firmware Update;
  • HID — Human Interface Device (клавиатура, мишка, геймпад);
  • MSC — Mass Storage Class (включително устройства с много логически устройства);
  • MIDI — Musical Instrument Digital Interface;
  • MTP/PTP — Media Transfer Protocol;
  • RNDIS, ECM (Ethernet Control Model) и NCM (Network Control Model) — мрежово взаимодействие през USB;
  • USBTMC — Test and Measurement Class;
  • UVC — Video class 1.5;
  • WebUSB.

Поддържаните класове USB хостове са:

  • HID — Human Interface Device;
  • MSC — Mass Storage Class;
  • CDC-ACM — Communication Device Class;
  • FTDI, CP210x, CH34x, PL2303 — пренос на последователен порт през USB;
  • USB Hub.

В новия ъпдейт е разширен API за устройства и хостове. В реализацията на USB хост е добавена поддръжка на устройства с множество конфигурации. Добавена е поддръжка на микроконтролери и платформи:

  • ESP32-H4, ESP32-C5, ESP32-C61;
  • STM32U0, STM32WBA, STM32N6;
  • AT32F405, AT32F403A, AT32F415, AT32F423;
  • CH32V305 и CH32V20x (USB хост);
  • MCXA156 SDK 2.16 и FRDM-MCXA156.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster