Публикуван е отворен 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 host);
  • MCXA156 SDK 2.16 и FRDM-MCXA156.

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

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