एम्बेडेड प्रणालीहरूको लागि क्रस-प्लेटफर्म USB स्ट्याक, TinyUSB ०.१९ अब उपलब्ध छ। यसले USB होस्टहरू (USB होस्ट) र USB उपकरणहरू (USB उपकरण) दुवैको लागि USB स्ट्याक कम्पोनेन्टहरू प्रदान गर्दछ। परियोजना कोड C मा लेखिएको छ र MIT लाइसेन्स अन्तर्गत वितरण गरिएको छ।
सुरक्षा बढाउनको लागि, TinyUSB ले गतिशील मेमोरी आवंटन प्रयोग गर्दैन। बहु-थ्रेडेड अनुप्रयोगहरू समर्थित छन्। सुरक्षित बहु-थ्रेडेड सञ्चालन सुनिश्चित गर्न, सबै अवरोध घटनाहरू ISR (अवरोध सेवा अनुरोध) प्राप्त भएपछि तुरुन्तै प्रशोधन गरिँदैनन् तर यसको सट्टा एक क्युमा राखिन्छन्, जुन पार्स गरिएको छ र अनुप्रयोगको सन्दर्भ भित्र प्रशोधन गरिएको छ, अवरोध ह्यान्डलर होइन। CDC (सञ्चार उपकरण वर्ग) FIFO जस्ता साझा स्रोतहरू पहुँच गर्दा सेमाफोर र म्युटेक्सहरू प्रयोग गरिन्छ।
स्ट्याक अपरेटिङ सिस्टमबाट सारांशित गरिएको छ र अपरेटिङ सिस्टम कार्यक्षमताद्वारा अनबाउन्ड, स्ट्यान्डअलोन कम्पोनेन्टको रूपमा प्रयोग गर्न सकिन्छ। FreeRTOS, RT-Thread, र Apache Mynewt सँग TinyUSB एकीकृत गर्न मोड्युलहरू उपलब्ध छन्। स्लीप मोड र गतिविधिमा उठ्ने जस्ता पावर-बचत सुविधाहरू समर्थित छन्। USB टाइप-C मार्फत पावर ट्रान्सफर व्यवस्थापन गर्न PD 3.0 (पावर डेलिभरी) प्रोटोकलको प्रारम्भिक कार्यान्वयन समावेश गरिएको छ।

TinyUSB ले तपाईंलाई USB स्ट्याक परिमार्जन नगरी आफ्नै USB उपकरण र होस्ट कक्षाहरूको लागि समर्थन थप्न अनुमति दिन्छ। TinyUSB द्वारा पहिले नै समर्थित उपकरण कक्षाहरूमा समावेश छन्:
- UAC2 — अडियो कक्षा २.०;
- BTH HCI - ब्लुटुथ होस्ट कन्ट्रोलर इन्टरफेस;
- CDC - सञ्चार उपकरण वर्ग;
- DFU - उपकरण फर्मवेयर अपडेट;
- HID — मानव इन्टरफेस उपकरण (किबोर्ड, माउस, गेमप्याड);
- MSC — मास स्टोरेज क्लास (बहु तार्किक एकाइहरू भएका ड्राइभहरू सहित);
- MIDI - संगीत वाद्ययन्त्र डिजिटल इन्टरफेस;
- MTP/PTP - मिडिया ट्रान्सफर प्रोटोकल;
- RNDIS, ECM (इथरनेट नियन्त्रण मोडेल) र NCM (नेटवर्क नियन्त्रण मोडेल) - USB मार्फत नेटवर्क अन्तरक्रिया;
- USBTMC - परीक्षण र मापन कक्षा;
- UVC — भिडियो कक्षा १.५;
- वेबयुएसबी।
समर्थित USB होस्ट वर्गहरू:
- HID - मानव इन्टरफेस उपकरण;
- MSC — मास स्टोरेज क्लास;
- CDC-ACM - सञ्चार उपकरण वर्ग;
- FTDI, CP210x, CH34x, PL2303 - USB मा सिरियल पोर्ट;
- USB हब।
नयाँ रिलीजले उपकरणहरू र होस्टहरूको लागि 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
