इंटरनेट ऑफ थिंग्स डिवाइस के रूप में जो इंटरनेट से रिमोट कनेक्शन का समर्थन करता है, स्थानीय या रिमोट ओटीए अपग्रेड भी स्क्रिप्ट प्रोग्रामिंग कंट्रोलर का एक महत्वपूर्ण कार्य है, क्योंकि इस बात की कोई गारंटी नहीं है कि रिले पूरी तरह से बग से मुक्त है, जो इसमें पाया जाता है। बग का उपयोग, यदि कोई ओटीए अपग्रेड इंटरफ़ेस नहीं है, तो ग्राहकों को सीरियल पोर्ट के माध्यम से फर्मवेयर को अपग्रेड करने की अनुमति देना मुश्किल है, नियंत्रक को केवल कारखाने में वापस अपग्रेड किया जा सकता है, लागत अधिक है, बड़े का प्रभाव। &&&]
इसके अलावा, ग्राहक के पास कुछ वैयक्तिकृत कार्य हो सकते हैं जिन्हें चीनी प्रोग्रामिंग के माध्यम से हासिल नहीं किया जा सकता है, और उन्हें प्राप्त करने के लिए नियंत्रक फर्मवेयर को अपग्रेड करने की आवश्यकता है।इन दो स्थितियों को स्थानीय या दूरस्थ ओटीए फ़ंक्शन के माध्यम से हल करने की आवश्यकता है।
इन दिनों इस कार्य को पूरा करने में थोड़ा समय व्यतीत हुआ, अब संक्षेप में इस प्रकार है:
(1) ESP8266 का FLASH दो फ़र्मवेयर को user1.bin से user2.bin नाम से संग्रहीत कर सकता है, और दो फ़र्मवेयर के पते 0x0000 पते पर संग्रहीत बूट प्रोग्राम Boot.bin द्वारा निर्धारित किए जाते हैं, और भंडारण पते अलग-अलग होते हैं विभिन्न फ़्लैश क्षमताएँ।
उदाहरण के लिए, 1Mbyte की फ्लैश क्षमता के साथ ESP8266-01S, भंडारण पता क्रमशः 0x01000 और 0x81000 है, जबकि 4Mbyte की फ्लैश क्षमता के साथ ESP8266-07S, भंडारण पता क्रमशः 0x01000 और 0x101000 है।
3) आधिकारिक अनुशंसित अभ्यास http प्रोटोकॉल के माध्यम से फर्मवेयर को क्लाउड सर्वर पर मेमोरी में डाउनलोड करना है, मैंने इस प्रोग्राम का उपयोग नहीं किया, मुख्य रूप से दो कारणों से, पहला, क्या इस प्रोग्राम को सख्ती से सत्यापित किया गया है, और क्या ईंट में अपग्रेड करने से बचने के लिए डेटा सत्यापन पर पर्याप्त विचार किया गया है, मुझे इसमें संदेह है। दूसरे, इस प्रोग्राम के लिए सर्वर से फर्मवेयर डाउनलोड करने के लिए नियंत्रक को बाहरी नेटवर्क से कनेक्ट करने में सक्षम होना आवश्यक है, जो करना आसान नहीं है।
मैं वर्तमान में फर्मवेयर अपग्रेड सॉफ़्टवेयर का एक सेट विकसित करने के लिए डेल्फ़ी का उपयोग कर रहा हूं, सॉफ़्टवेयर को टीसीपी क्लाइंट के रूप में सीधे नियंत्रक से कनेक्ट करने के लिए, या क्लाउड सर्वर के टीसीपी गेटवे से कनेक्ट करने और फिर नियंत्रक में स्थानांतरित करने के लिए, और फिर उसके अनुसार फ़र्मवेयर को नियंत्रक तक पहुँचाने के लिए डेटा के एक फ़्रेम के लिए 512 बाइट्स।
इसके बाद तर्क के इस सेट को सर्वर पर पोर्ट किया जा सकता है, ग्राहक फ़र्मवेयर को नियंत्रक तक पहुंचाने के लिए ब्राउज़र के माध्यम से वेब पेज खोल सकता है।
4) डेटा की अखंडता पूरी तरह से सत्यापित है, सीआरसी32 चेकसम करने के लिए डेटा का पहला फ्रेम, फर्मवेयर को फ्लैश पर लिखा जाता है और फिर लिखित मूल्य के साथ तुलना करने के लिए पढ़ा जाता है, और उसी समय मूल्य की गणना की जाती है सीआरसी32 का, और पढ़ने और लिखने वाले डेटा की तुलना में सीआरसी32 का मान भेजने के लिए ऊपरी कंप्यूटर समान है, और सीआरसी का मान भी समान है, यह माना जाता है कि डेटा का फ्रेम सफलतापूर्वक लिखा गया है;
उसी समय, डेटा के प्रत्येक फ्रेम का crc32 मान और फिर आगे crc32 मान करें, कुल crc32 मान प्राप्त करने के लिए, होस्ट कंप्यूटर द्वारा भेजे गए कुल crc32 मान की तुलना में, फ़ंक्शन system_upgrade_flag_set( को कॉल करने से पहले मान समान होता है 0x02) SDK को बूट फ़र्मवेयर पर स्विच करने की अनुमति देने के लिए।
यदि दोनों भंडारण क्षेत्रों में एक ही फर्मवेयर का उपयोग किया जाता है, तो ESP8266 सामान्य रूप से प्रारंभ नहीं हो पाएगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3