इस प्रोजेक्ट के बारे में

TinyUSB एम्बेडेड सिस्टम के लिए एक ओपन-सोर्स क्रॉस-प्लेटफ़ॉर्म USB होस्ट/डिवाइस स्टैक है। इसे मेमोरी सुरक्षा (कोई डायनामिक आवंटन नहीं) और थ्रेड सुरक्षा (सभी इंटरप्ट non-ISR कार्यों में टाले गए) के लिए डिज़ाइन किया गया है, जो 50+ MCU परिवारों में पोर्टेबिलिटी, छोटे फुटप्रिंट और रियल-टाइम प्रदर्शन पर जोर देता है। मुख्य विशेषताओं में ISR इवेंट्स के लिए केंद्रीय कतार के माध्यम से थ्रेड-सेफ ऑपरेशन, डायनामिक आवंटन के बिना स्टेटिक बफर्स, कई MCU परिवारों में पोर्टेबिलिटी और CDC, HID, MSC, Audio और होस्ट कार्यक्षमता के लिए समर्थन शामिल है। यह बेयर मेटल, FreeRTOS, RT-Thread और Mynewt के साथ काम करता है। रिपॉजिटरी लेआउट में दस्तावेज़, मेक और सीमेक बिल्ड सिस्टम के साथ उदाहरण, हार्डवेयर BSP और MCU ड्राइवर, थर्ड-पार्टी लाइब्रेरी, स्टैक स्रोत, परीक्षण (यूनिट, फ़ज़िंग, हार्डवेयर) और आंतरिक उपकरण शामिल हैं। डिवाइस स्टैक डायनामिक USB डिस्क्रिप्टर के माध्यम से कई कॉन्फ़िगरेशन का समर्थन करता है, जिसमें सस्पेंड, रिज़्यूम और रिमोट वेकअप जैसे लो-पावर फ़ंक्शन और Audio 1.0/2.0, BTH HCI, CDC, DFU, HID, Printer, कई LUNs के साथ MSC, MIDI, MTP/PTP, RNDIS/ECM/NCM नेटवर्किंग, USBTMC, UVC (कार्य प्रगति पर), वेंडर-विशिष्ट क्लासेस और WebUSB जैसी क्लासेस शामिल हैं। usbd_app_driver_get_cb() के माध्यम से कस्टम क्लास ड्राइवर जोड़े जा सकते हैं। होस्ट स्टैक CDC-ACM, USB के माध्यम से वेंडर सीरियल (FTDI, CP210x, CH34x, PL2303), HID, MSC, MIDI और मल्टी-लेवल हब का समर्थन करता है। usbh_app_driver_get_cb() के माध्यम से कस्टम होस्ट ड्राइवर जोड़े जा सकते हैं। एक पावर डिलीवरी स्टैक (USB Type-C के साथ PD3.0) बहुत प्रारंभिक चरण में है, जो केवल परीक्षण के लिए और केवल STM32 G4 पर है। एक OS एब्स्ट्रैक्शन लेयर सभी ISR इवेंट्स को non-ISR संदर्भ में संसाधित केंद्रीय कतार में धकेलता है, जो साझा संसाधनों के लिए सेमाफोर/म्यूटेक्स का उपयोग करता है। समर्थित OS में No OS, FreeRTOS, RT-Thread और Mynewt शामिल हैं। समर्थित CPU में कई निर्माता शामिल हैं जिनमें Allwinner, Analog, Artery AT32, Bridgetek, Broadcom, Dialog, Espressif, Geehy, GigaDevice, HPMicro, Infineon, MicroChip, MindMotion, NordicSemi, Nuvoton, NXP, Puya, Raspberry Pi, Renesas, Silabs, Sony, ST STM32, TI, ValentyUSB और WCH शामिल हैं, जिनमें डिवाइस, होस्ट और हाई-स्पीड मोड के लिए अलग-अलग समर्थन है। निःशुल्क प्रदान किए गए विकास उपकरणों में IAR Build Tools, JetBrains CLion और PVS-Studio स्टेटिक एनालाइज़र शामिल हैं।