ESP32 पर जंग के साथ काम करना


19

मैं एक गेटवे डिवाइस बनाना चाहूंगा जो ESP32 का उपयोग करेगा। यह सेंसर के मॉडबस टीसीपी पोर्ट से कनेक्ट होना चाहिए। इस उद्देश्य के लिए, मैं मोडबस रस्ट कार्यान्वयन का उपयोग करना चाहूंगा, जो पहले से मौजूद है। लेकिन इस बारे में बहुत कम जानकारी है कि मुझे ESP32 पर चलने वाला रस्ट कोड कैसे मिल सकता है।

क्या कोई इस विषय पर कुछ प्रकाश डाल सकता है?


जवाबों:


12

जंग एलएलवीएम टूलचैन का उपयोग करता है , जो एलएलवीएम के मध्यवर्ती प्रतिनिधित्व (आईआर) को मंच-विशिष्ट कोड में संकलित करने के लिए उपयोग किए जाने वाले कार्यक्रमों का एक सेट है । प्रक्रिया इस तरह से थोड़ा काम करती है:

Rust Code -> Rust Compiler -> LLVM IR -> Back-end -> Platform-specific code
             (Front-end)

वर्तमान में, ESP32 द्वारा उपयोग किए जाने वाले Xtensa आर्किटेक्चर के लिए कोई बैकेंड नहीं है । यह, दुर्भाग्य से, इसका मतलब है कि आप ESP32 के लिए रस्ट कोड संकलित नहीं कर सकते हैं । आपने अपने प्रश्न में इंस्टॉल कहा था , लेकिन मुझे लगता है कि आपका मतलब यह नहीं था - बल्कि, आप ESP32 पर रस्ट कोड चलाना चाहते हैं, न कि वहां रस्ट कंपाइलर स्थापित करें।

यदि आप वास्तव में जंग का उपयोग करने के लिए बेताब हैं, तो आप सिद्धांत रूप में, एलएलवीएम सी बैकएंड का उपयोग कर सकते हैं, जो एलएलवीएम आईआर -> सी को परिवर्तित करता है, फिर एस्प्रेसिफ द्वारा प्रदान किए गए टूलचैन का उपयोग ईएसपी 32 मशीन कोड को संकलित करने के लिए करें। हालांकि, यह मुश्किल होगा , और यह भी काम नहीं कर सकता है। आपको बुलेट को काटने और इस मामले में सी का उपयोग करने में बहुत आसान लगेगा, जो एक शर्म की बात है, क्योंकि रस्ट एक महान भाषा है, लेकिन इसका एम्बेडेड समर्थन सी के रूप में फिलहाल उतना अच्छा नहीं है।


क्या आप किसी अन्य हार्डवेयर बोर्ड के बारे में जानते हैं जो जंग का समर्थन करते हैं? हां, जैसा आपने कहा कि मैं सिर्फ डिवाइस पर रस्ट प्रोग्राम चलाना चाहता हूं और मुझे निश्चित रूप से वहां कंपाइलर नहीं चाहिए!
स्पार्क

@sparkr समर्थित प्लेटफॉर्म और आर्किटेक्चर की सूची, जो रुस्ट का समर्थन करता है , यहां उपलब्ध है ; उन प्लेटफार्मों में से ज्यादातर x86, x86-64 या विभिन्न एआरएम आर्किटेक्चर हैं। मैं कल्पना करता हूं कि आप जो चाहते हैं, वे सभी कहीं अधिक सक्षम (और महंगे) हैं, इसलिए यह वास्तव में रस्ट के साथ आपके विकल्पों को सीमित करता है। विशेष रूप से, हालांकि, TI MSP430 को 'टियर 3' समर्थित डिवाइस के रूप में सूचीबद्ध किया गया है, इसलिए जंग सिर्फ काम के बारे में हो सकती है । हालांकि व्यक्तिगत अनुभव से बात नहीं कर सकते, क्योंकि मैं एम्बेडेड अनुप्रयोगों के लिए जंग का उपयोग नहीं किया है।
Aurora0001

अब एक समुदाय का समर्थन किया गया है, जो कि सिन्धु का समर्थन करता है, जो कि Xtensa arch mabez.dev/blog/posts/esp32-rust
Tim McNamara

13

Xtensa ने हाल ही में एक आधिकारिक ESP32 / एस्प्रेसिफ LLVM बैकएंड और क्लैंग फ्रंट एंड जारी किया है। उनकी घोषणा यहां देखें: https://esp32.com/viewtopic.php?p=38466 Repos: https://github.com/espressif/llvm-xtensa & https://github.com/espressif/clang-xtensa As जंग एलएलवीएम पर आधारित है, इस नए ईएसपी 32 एलएलवीएम बैकएंड को ईएसपी 32 के लिए रस्ट सपोर्ट बनाने में मदद करनी चाहिए। घोषणा भी इस भविष्य के समर्थन पर संकेत देती है।


अरे, IoT.SE में आपका स्वागत है! मैं आपको इसे और अधिक पूर्ण बनाने के लिए इस उत्तर को संपादित करने के लिए प्रोत्साहित करूंगा । जैसा कि यह खड़ा है, यह मूल रूप से न्यूनतम स्पष्टीकरण के साथ लिंक की एक श्रृंखला है, और एक पूर्ण उत्तर की तुलना में एक टिप्पणी की तरह दिखता है। केवल संदर्भ के लिए लिंक के साथ, अधिक विस्तार से उत्तर की व्याख्या करना बेहतर होगा। धन्यवाद!
अनाम 2

8

अरोरा 0001 ने कहा, आप वर्तमान में (या पुराने ESP8266) ESP32 पर जंग नहीं चला सकते।

एक बहुत ही समान चिप है, RTL8710, जो उन स्थितियों में उपयोग के लिए अनुशंसित है जहाँ आप ESP32 का उपयोग करेंगे, लेकिन वासना का उपयोग करना चाहते हैं।

यहाँ एक वेबसाइट है जहाँ कोई अपने सेटअप के माध्यम से चलता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.