The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Опубликован открытый USB-стек TinyUSB 0.19

06.10.2025 09:51

Доступен выпуск проекта TinyUSB 0.19, развивающего кроссплатформенный USB-стек для встраиваемых систем. Предоставляются компоненты USB-стека для USB-хостов (USB Host) и для подключаемых устройств (USB Device). Код проекта написан на языке Си и распространяется под лицензией 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.

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.


  1. Главная ссылка к новости (https://github.com/hathach/tin...)
  2. OpenNews: Выпуск Ventoy 1.1.07, инструментария для загрузки произвольных систем с USB-носителей
  3. OpenNews: Intel реализовал поддержку eUSB2V2 для ядра Linux
  4. OpenNews: Уязвимость в подсистеме Linux-ядра USB Gadget, потенциально позволяющая выполнить код
  5. OpenNews: Атака на заблокированный ПК через USB
  6. OpenNews: В USB-драйверах из состава ядра Linux выявлено 15 уязвимостей
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64005-tinyusb
Ключевые слова: tinyusb, usb
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:01, 06/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    А зачем он нужен, если есть usb c?
     
     
  • 2.2, Ananananononon (?), 10:19, 06/10/2025 [^] [^^] [^^^] [ответить]  
  • –5 +/
    когда то....., а в целом пофик
     
  • 2.3, Аноним (3), 10:27, 06/10/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Да вы что? Наикрутейшая штука для STM и Atmel! Вы просто не в курсе, что это и для чего это.
     
     
  • 3.6, Смузихлеб забывший пароль (?), 10:46, 06/10/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Вы просто не в курсе, что это и для чего это.

    это какая-то ужасная тайна, раскрыть которую анон всё-таки не решился ?

     
     
  • 4.7, Аноним (3), 10:58, 06/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какая тайна? Это USB стек. Больше и сказать нечего. Можно сделать любое USB устройство из перечисленных на базе любого из перечисленных микроконтроллеров. Вы вообще интересовались, как та же флэшка устроена? Или мышка?
     
  • 2.5, Neko CWD (?), 10:45, 06/10/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Это ж либа для протокола. При чём тут разъём?
     
  • 2.8, анонимз (?), 11:00, 06/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    USB c это стек? А я думал это порт.
     
     
  • 3.15, pfg21 (ok), 11:46, 06/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    человек и пароход !! (с) Простоквашино.    
    в спецификации есть и описание разъемов и описание программной части обмена данными и много чего еще. доброе утро подован :)
     

  • 1.4, Аноним (4), 10:35, 06/10/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     
  • 1.9, Голдер и Рита (?), 11:12, 06/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    USB здесь,  здесь все, Никита, Стас и Дюша Метёлкин. 🤣
     

  • 1.10, крокодил мимо.. (-), 11:23, 06/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    извините за оффтоп, один вопрос:
    - есть ли софтовые решения (для *nix), что позволяют симулировать добавление и извлечение usb-hub из аппаратной конфигурации? аналог "выдернул - вставил обратно"..

    столкнулся с usb-хабом/концентратором, который не подхватывается "автоматом" при холодном старте, только после физического извлечения и вставки обратно.. не уверен, что даже если подобное решение существует - оно поможет, т.к. дело, скорее всего, в железе хаба..

    спасибо..

    p.s.:
    в виндоус, кмк, можно удалить хаб из конфигурации, сохранить её и потом провести "ре-скан" оборудования, который должен "найти" удалённое (в device mgr).. не пробовал.. но проблемный хаб не цепляется с холодного старта и в вин10..

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру