প্রকল্প সম্পর্কে

TinyUSB একটি ওপেন-সোর্স ক্রস-প্ল্যাটফর্ম USB হোস্ট/ডিভাইস স্ট্যাক যা এমবেডেড সিস্টেমের জন্য। এটি মেমরি সুরক্ষা (কোনো ডায়নামিক অ্যালোকেশন নেই) এবং থ্রেড সুরক্ষার (সব ইন্টারাপ্ট নন-ISR টাস্ক ফাংশনে স্থগিত) জন্য ডিজাইন করা হয়েছে, যা ৫০+ MCU পরিবার জুড়ে পোর্টেবিলিটি, ছোট ফুটপ্রিন্ট এবং রিয়েল-টাইম পারফরম্যান্সের উপর জোর দেয়। মূল বৈশিষ্ট্যগুলির মধ্যে রয়েছে ISR ইভেন্টগুলির জন্য একটি কেন্দ্রীয় কিউর মাধ্যমে থ্রেড-নিরাপদ অপারেশন, কোনো ডায়নামিক অ্যালোকেশন ছাড়াই স্ট্যাটিক বাফার, অনেক MCU পরিবার জুড়ে পোর্টেবিলিটি, এবং CDC, HID, MSC, Audio এবং হোস্ট কার্যকারিতার জন্য সমর্থন। এটি বেয়ার মেটাল, FreeRTOS, RT-Thread এবং Mynewt-এর সাথে কাজ করে। রিপোজিটরি লেআউটে docs, make এবং cmake বিল্ড সিস্টেম সহ উদাহরণ, হার্ডওয়্যার BSP এবং MCU ড্রাইভার, থার্ড-পার্টি লাইব্রেরি, স্ট্যাক সোর্স, টেস্ট (ইউনিট, ফাজিং, হার্ডওয়্যার) এবং অভ্যন্তরীণ টুল অন্তর্ভুক্ত রয়েছে। ডিভাইস স্ট্যাক ডায়নামিক USB ডেসক্রিপ্টরের মাধ্যমে একাধিক কনফিগারেশন সমর্থন করে, সাসপেন্ড, রিজিউম এবং রিমোট ওয়েকআপের মতো লো-পাওয়ার ফাংশন এবং Audio 1.0/2.0, BTH HCI, CDC, DFU, HID, Printer, একাধিক LUN সহ 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 ইভেন্টকে একটি কেন্দ্রীয় কিউতে ঠেলে দেয় যা নন-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 স্ট্যাটিক অ্যানালাইজার।