"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > ईएसपीआईथ एसडीके एक्स (स्क्रिप्ट प्रोग्रामयोग्य नियंत्रक) के लिए ओटीए फ़ंक्शन को कैसे कार्यान्वित करें

ईएसपीआईथ एसडीके एक्स (स्क्रिप्ट प्रोग्रामयोग्य नियंत्रक) के लिए ओटीए फ़ंक्शन को कैसे कार्यान्वित करें

2024-11-01 को प्रकाशित
ब्राउज़ करें:263

इंटरनेट ऑफ थिंग्स डिवाइस के रूप में जो इंटरनेट से रिमोट कनेक्शन का समर्थन करता है, स्थानीय या रिमोट ओटीए अपग्रेड भी स्क्रिप्ट प्रोग्रामिंग कंट्रोलर का एक महत्वपूर्ण कार्य है, क्योंकि इस बात की कोई गारंटी नहीं है कि रिले पूरी तरह से बग से मुक्त है, जो इसमें पाया जाता है। बग का उपयोग, यदि कोई ओटीए अपग्रेड इंटरफ़ेस नहीं है, तो ग्राहकों को सीरियल पोर्ट के माध्यम से फर्मवेयर को अपग्रेड करने की अनुमति देना मुश्किल है, नियंत्रक को केवल कारखाने में वापस अपग्रेड किया जा सकता है, लागत अधिक है, बड़े का प्रभाव। &&&]

इसके अलावा, ग्राहक के पास कुछ वैयक्तिकृत कार्य हो सकते हैं जिन्हें चीनी प्रोग्रामिंग के माध्यम से हासिल नहीं किया जा सकता है, और उन्हें प्राप्त करने के लिए नियंत्रक फर्मवेयर को अपग्रेड करने की आवश्यकता है।

इन दो स्थितियों को स्थानीय या दूरस्थ ओटीए फ़ंक्शन के माध्यम से हल करने की आवश्यकता है।

इन दिनों इस कार्य को पूरा करने में थोड़ा समय व्यतीत हुआ, अब संक्षेप में इस प्रकार है:

(1) ESP8266 का FLASH दो फ़र्मवेयर को user1.bin से user2.bin नाम से संग्रहीत कर सकता है, और दो फ़र्मवेयर के पते 0x0000 पते पर संग्रहीत बूट प्रोग्राम Boot.bin द्वारा निर्धारित किए जाते हैं, और भंडारण पते अलग-अलग होते हैं विभिन्न फ़्लैश क्षमताएँ।
उदाहरण के लिए, 1Mbyte की फ्लैश क्षमता के साथ ESP8266-01S, भंडारण पता क्रमशः 0x01000 और 0x81000 है, जबकि 4Mbyte की फ्लैश क्षमता के साथ ESP8266-07S, भंडारण पता क्रमशः 0x01000 और 0x101000 है।

(2) फ़ंक्शन system_upgrade_userbin_check रिटर्न मान के माध्यम से वर्तमान प्रोग्राम प्राप्त करने के लिए user1.bin या user2.bin, फ़र्मवेयर अपग्रेड चला रहा है, संपूर्ण फ़र्मवेयर लिखने के लिए किसी अन्य फ़र्मवेयर संग्रहण क्षेत्र में, उदाहरण के लिए, यदि वर्तमान रन संग्रहीत है user1.bin के 0x1000 में, फिर 0x81000(ESP8266-01S) या 0x101000(EPS8266-07S) को संबोधित करने के लिए फर्मवेयर user2.bin को लिखने के बाद, और फिर फ़ंक्शन system_upgrade_flag_set(0x02) के माध्यम से SDK लिखने को सूचित करें पूर्ण होने पर, SDK सिस्टम पैरामीटर सेट करता है, ताकि जब ESP8266 स्टार्टअप किसी अन्य फ़र्मवेयर पर बूट हो।

3) आधिकारिक अनुशंसित अभ्यास http प्रोटोकॉल के माध्यम से फर्मवेयर को क्लाउड सर्वर पर मेमोरी में डाउनलोड करना है, मैंने इस प्रोग्राम का उपयोग नहीं किया, मुख्य रूप से दो कारणों से, पहला, क्या इस प्रोग्राम को सख्ती से सत्यापित किया गया है, और क्या ईंट में अपग्रेड करने से बचने के लिए डेटा सत्यापन पर पर्याप्त विचार किया गया है, मुझे इसमें संदेह है। दूसरे, इस प्रोग्राम के लिए सर्वर से फर्मवेयर डाउनलोड करने के लिए नियंत्रक को बाहरी नेटवर्क से कनेक्ट करने में सक्षम होना आवश्यक है, जो करना आसान नहीं है।

मैं वर्तमान में फर्मवेयर अपग्रेड सॉफ़्टवेयर का एक सेट विकसित करने के लिए डेल्फ़ी का उपयोग कर रहा हूं, सॉफ़्टवेयर को टीसीपी क्लाइंट के रूप में सीधे नियंत्रक से कनेक्ट करने के लिए, या क्लाउड सर्वर के टीसीपी गेटवे से कनेक्ट करने और फिर नियंत्रक में स्थानांतरित करने के लिए, और फिर उसके अनुसार फ़र्मवेयर को नियंत्रक तक पहुँचाने के लिए डेटा के एक फ़्रेम के लिए 512 बाइट्स।

इसके बाद तर्क के इस सेट को सर्वर पर पोर्ट किया जा सकता है, ग्राहक फ़र्मवेयर को नियंत्रक तक पहुंचाने के लिए ब्राउज़र के माध्यम से वेब पेज खोल सकता है।

4) डेटा की अखंडता पूरी तरह से सत्यापित है, सीआरसी32 चेकसम करने के लिए डेटा का पहला फ्रेम, फर्मवेयर को फ्लैश पर लिखा जाता है और फिर लिखित मूल्य के साथ तुलना करने के लिए पढ़ा जाता है, और उसी समय मूल्य की गणना की जाती है सीआरसी32 का, और पढ़ने और लिखने वाले डेटा की तुलना में सीआरसी32 का मान भेजने के लिए ऊपरी कंप्यूटर समान है, और सीआरसी का मान भी समान है, यह माना जाता है कि डेटा का फ्रेम सफलतापूर्वक लिखा गया है;

उसी समय, डेटा के प्रत्येक फ्रेम का crc32 मान और फिर आगे crc32 मान करें, कुल crc32 मान प्राप्त करने के लिए, होस्ट कंप्यूटर द्वारा भेजे गए कुल crc32 मान की तुलना में, फ़ंक्शन system_upgrade_flag_set( को कॉल करने से पहले मान समान होता है 0x02) SDK को बूट फ़र्मवेयर पर स्विच करने की अनुमति देने के लिए।

(5) फ़र्मवेयर के दो अलग-अलग फ़र्मवेयर क्षेत्रों में लिखें user1.bin, user2.bin समान नहीं है, RTOS sdk विकास के लिए, आपको user1.bin, user2 उत्पन्न करने के लिए मेकफ़ाइल वेरिएबल APP के मान को संशोधित करने की आवश्यकता है .bin, क्रमशः, भंडारण क्षेत्र के फर्मवेयर के वर्तमान रन पर लौटने के लिए नियंत्रक के अनुसार होस्ट कंप्यूटर, नियंत्रक को भेजे गए फर्मवेयर के दूसरे भंडारण क्षेत्र का चयन करें। होस्ट कंप्यूटर नियंत्रक द्वारा लौटाए गए वर्तमान में चल रहे फर्मवेयर के भंडारण क्षेत्र के अनुसार अन्य भंडारण क्षेत्र में फर्मवेयर का चयन करता है।

यदि दोनों भंडारण क्षेत्रों में एक ही फर्मवेयर का उपयोग किया जाता है, तो ESP8266 सामान्य रूप से प्रारंभ नहीं हो पाएगा।

How to implement OTA function for ESPith SDK x(script programmable controller)

How to implement OTA function for ESPith SDK x(script programmable controller)

विज्ञप्ति वक्तव्य इस लेख को इस पर पुन: प्रस्तुत किया गया है: https://dev.to/zhangzhuyue/how-to-implement-ota-function-for-esp8266-with-sdk-2xxscramm- प्रोग्राम-कॉन्ट्रोलर- A60 यदि कोई उल्लंघन है, तो कृपया इसे पूरा करने के लिए अध्ययन करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3