
WCH CH56x-आधारित बोर्डों के लिए लाइब्रेरी, जिसमें परीक्षित USB3/USB2/HSPI/SerDes ड्राइवर, लॉगिंग और विलंबित इंटरप्ट शामिल हैं।
यह लाइब्रेरी Hydradancer के साथ बनाई गई थी, जो WCH569 चिप पर आधारित Facedancer USB एमुलेशन लाइब्रेरी के लिए एक नया बैकएंड है।
इस प्रोजेक्ट के लिए विश्वसनीय ड्राइवरों की आवश्यकता थी और WCH उदाहरणों में कई सुविधाएँ अनुपलब्ध थीं या उनका परीक्षण नहीं किया गया था।
यह लाइब्रेरी USB3, USB2, HSPI और SerDes ड्राइवर प्रदान करती है, जिन्हें tests/ में बेंचमार्क/अखंडता परीक्षणों का उपयोग करके परीक्षण किया गया है। यह wch-ch56x-bsp पर आधारित है, लेकिन इसका लक्ष्य एक उच्च-स्तरीय लाइब्रेरी प्रदान करना है। चूंकि Hydradancer एक समय में कई परिधीयों (USB3/HSPI, USB2/HSPI) का उपयोग कर रहा था, hspi_scheduled के साथ इंटरप्ट छूटने से बचने के लिए एक स्टैटिक मेमोरी पूल के साथ एक इंटरप्ट कतार लागू की गई थी। हालांकि इस रिपॉजिटरी के परीक्षण इंटरप्ट हैंडलर के अंदर प्रोसेसिंग करने के लिए पर्याप्त सरल हैं, Hydradancer में इंटरप्ट छूट रहे थे और इंटरप्ट को यूज़र मोड में स्थगित करना आवश्यक था।
CMake-आधारित प्रोजेक्ट में, बस add_subdirectory(path_to_wch-ch56x-lib) का उपयोग करें और wch-ch56x-lib टारगेट से लिंक करें। wch-ch56x-lib वर्तमान में एक INTERFACE टारगेट है, जिसका अर्थ है कि स्रोत/हेडर फ़ाइलें आपके टारगेट के साथ संकलित की जाएंगी, स्वतंत्र रूप से नहीं।
उपलब्ध विकल्प
फर्मवेयर को बनाने और फ्लैश करने के लिए, बिल्ड ट्यूटोरियल देखें।
संकलन विकल्पों पर अधिक जानकारी भी वहाँ मिल सकती है।
यह प्रोजेक्ट एक या दो HydraUSB3 बोर्डों का उपयोग करता है, जो WCH569 RISCV MCU पर आधारित हैं।
wch-ch56x-lib/
| ├─ tests/ # test firmwares to test various parts of the library
| ├─ src/
| | ├─wch-ch56x-lib # the source/header files of the lib
| ├─ tools/
| ├─ docs/ # additional documentation
विभिन्न परीक्षणों और उनका उपयोग कैसे करें, इसके बारे में अधिक जानकारी docs/Testing.md में पाई जा सकती है।
यदि आपको बग मिलते हैं या नई सुविधाएँ सुझानी हैं, तो कृपया मौजूदा issues देखें और यदि आवश्यक हो तो नई issue बनाएँ।
कोड योगदान करने के लिए, यह अनुशंसित है कि मौजूदा issues की जाँच करें और टिप्पणी करके अन्य योगदानकर्ताओं को सूचित करें कि आप किसी चीज़ पर काम कर रहे हैं। इस तरह आप किसी ऐसी सुविधा पर काम करने में अपना समय बर्बाद नहीं करेंगे जिसकी आवश्यकता नहीं थी या जो पहले से काम में थी।
उसके बाद, कृपया एक pull-request बनाएँ और संबंधित issue को लिंक करें।
आपका कोड कोडिंग शैली दिशानिर्देशों का पालन करना चाहिए।