باعتباره جهاز إنترنت الأشياء الذي يدعم الاتصال عن بعد بالإنترنت، تعد ترقية OTA المحلية أو البعيدة أيضًا وظيفة مهمة لوحدة تحكم برمجة البرنامج النصي، لأنه لا يوجد ضمان بأن المرحل خالٍ تمامًا من الأخطاء، الموجودة في استخدام الأخطاء، إذا لم تكن هناك واجهة ترقية عبر الهواء، فمن الصعب السماح للعملاء بترقية البرامج الثابتة من خلال المنفذ التسلسلي، ولا يمكن ترقية وحدة التحكم إلا مرة أخرى إلى المصنع، والتكلفة مرتفعة، وتأثير كبير.
بالإضافة إلى ذلك، قد يكون لدى العميل بعض الوظائف الشخصية التي لا يمكن تحقيقها من خلال البرمجة الصينية، ويحتاج إلى ترقية البرنامج الثابت لوحدة التحكم لتحقيقها.
يجب حل هذين الموقفين من خلال وظيفة OTA المحلية أو البعيدة.
قضت هذه الأيام بعض الوقت لإكمال هذه الوظيفة، والتي تتلخص الآن على النحو التالي:
(1) يمكن لفلاش ESP8266 تخزين برنامجين ثابتين بالاسم user1.bin إلى user2.bin، ويتم تحديد عناوين البرنامجين الثابتين بواسطة برنامج التمهيد boot.bin المخزن على العنوان 0x0000، وتختلف عناوين التخزين بالنسبة إلى قدرات فلاش مختلفة.
على سبيل المثال، ESP8266-01S بسعة فلاش تبلغ 1 ميجابايت، وعنوان التخزين هو 0x01000 و0x81000 على التوالي، بينما ESP8266-07S بسعة فلاش تبلغ 4 ميجابايت، وعنوان التخزين هو 0x01000 و0x101000 على التوالي.
(2) من خلال قيمة الإرجاع system_upgrade_userbin_check للحصول على البرنامج الحالي الذي يقوم بتشغيل user1.bin أو user2.bin، وترقية البرامج الثابتة، إلى منطقة تخزين البرامج الثابتة الأخرى لكتابة البرنامج الثابت الكامل، على سبيل المثال، إذا تم تخزين التشغيل الحالي في 0x1000 من user1.bin، ثم لمعالجة 0x81000(ESP8266-01S) أو 0x101000(EPS8266-07S) لكتابة البرنامج الثابت user2.bin، بعد الكتابة، ثم من خلال الوظيفة system_upgrade_flag_set(0x02) لإبلاغ SDK بالكتابة بعد اكتماله، يقوم SDK بتعيين معلمات النظام، بحيث يتم تشغيل برنامج ثابت آخر عند بدء تشغيل ESP8266.
3) الممارسة الرسمية الموصى بها هي تنزيل البرنامج الثابت إلى الخادم السحابي إلى الذاكرة عبر بروتوكول http، ولم أستخدم هذا البرنامج، ويرجع ذلك أساسًا إلى اعتبارين، أولاً، ما إذا كان هذا البرنامج قد تم التحقق منه بدقة، وما إذا كان هناك ما يكفي من الاعتبار للتحقق من صحة البيانات لتجنب الترقية إلى الطوب، وأنا أشك في ذلك. ثانيًا، يتطلب هذا البرنامج أن تكون وحدة التحكم قادرة على الاتصال بشبكة خارجية لتنزيل البرامج الثابتة من الخادم، وهو أمر ليس من السهل القيام به.
أستخدم دلفي حاليًا لتطوير مجموعة من برامج ترقية البرامج الثابتة، البرنامج كعميل TCP للاتصال مباشرة بوحدة التحكم، أو الاتصال ببوابة TCP الخاصة بالخادم السحابي ثم نقلها إلى وحدة التحكم، ثم وفقًا لـ 512 بايت لإطار من البيانات لدفع البرنامج الثابت إلى وحدة التحكم.
بعد ذلك يمكن نقل هذه المجموعة من المنطق إلى الخادم، ويمكن للعميل فتح صفحة الويب من خلال المتصفح لدفع البرنامج الثابت إلى وحدة التحكم.
4) تم التحقق من سلامة البيانات بالكامل، الإطار الأول من البيانات للقيام بالمجموع الاختباري crc32، تتم كتابة البرنامج الثابت على الفلاش ثم قراءته للمقارنة مع القيمة المكتوبة، وفي نفس الوقت حساب القيمة crc32، والكمبيوتر العلوي الذي يرسل قيمة crc32 مقارنة ببيانات القراءة والكتابة هي نفسها، وكذلك نفس قيمة crc، ويعتبر أنه تم كتابة إطار البيانات بنجاح؛
في الوقت نفسه، قيمة crc32 لكل إطار من البيانات ثم قم بإجراء قيمة crc32 للحصول على قيمة crc32 الإجمالية، مقارنة بقيمة crc32 الإجمالية التي يرسلها الكمبيوتر المضيف، والقيمة هي نفسها قبل استدعاء الوظيفة system_upgrade_flag_set( 0x02) للسماح لـ SDK بالتبديل إلى البرامج الثابتة للتمهيد.
(5) الكتابة إلى منطقتين مختلفتين من البرامج الثابتة user1.bin، user2.bin ليس هو نفسه، لتطوير RTOS sdk، تحتاج إلى تعديل قيمة التطبيق المتغير Makefile لإنشاء user1.bin، user2 .bin، على التوالي، الكمبيوتر المضيف وفقا لوحدة التحكم للعودة إلى التشغيل الحالي للبرامج الثابتة لمنطقة التخزين، حدد منطقة تخزين أخرى من البرامج الثابتة المرسلة إلى وحدة التحكم. يقوم الكمبيوتر المضيف بتحديد البرنامج الثابت في منطقة التخزين الأخرى وفقًا لمنطقة تخزين البرنامج الثابت قيد التشغيل حاليًا والذي يتم إرجاعه بواسطة وحدة التحكم.
إذا تم استخدام نفس البرنامج الثابت في منطقتي التخزين، فلن يتمكن ESP8266 من البدء بشكل طبيعي.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3