Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan fungsi OTA untuk ESPith SDK x(pengawal boleh atur cara skrip)

Bagaimana untuk melaksanakan fungsi OTA untuk ESPith SDK x(pengawal boleh atur cara skrip)

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-17 18:14:25911semak imbas

Sebagai peranti Internet of Things yang menyokong sambungan jauh ke Internet, naik taraf OTA setempat atau jauh juga merupakan fungsi penting pengawal pengaturcaraan skrip, kerana tiada jaminan bahawa geganti benar-benar bebas daripada pepijat, yang terdapat dalam penggunaan pepijat, jika tidak ada antara muka naik taraf OTA, sukar untuk membenarkan pelanggan menaik taraf firmware melalui port bersiri, pengawal hanya boleh dinaik taraf kembali ke kilang, kosnya tinggi, kesannya besar.

Selain itu, pelanggan mungkin mempunyai beberapa fungsi diperibadikan yang tidak boleh dicapai melalui pengaturcaraan Cina, dan perlu meningkatkan perisian tegar pengawal untuk mencapainya.

Dua situasi ini perlu diselesaikan melalui fungsi OTA setempat atau jauh.

Hari-hari ini meluangkan sedikit masa untuk melengkapkan fungsi ini, kini diringkaskan seperti berikut:
(1) FLASH ESP8266 boleh menyimpan dua perisian tegar dengan nama user1.bin kepada user2.bin, dan alamat kedua-dua perisian tegar ditentukan oleh program but boot.bin yang disimpan di alamat 0x0000, dan alamat storan adalah berbeza untuk kapasiti denyar yang berbeza.
Contohnya, ESP8266-01S dengan kapasiti Flash 1Mbyte, alamat storan masing-masing ialah 0x01000 dan 0x81000, manakala ESP8266-07S dengan kapasiti FLASH 4Mbyte, alamat storan masing-masing ialah 0x01000 dan 0x101000.

(2) melalui fungsi system_upgrade_userbin_check nilai pulangan untuk mendapatkan program semasa sedang menjalankan user1.bin atau user2.bin, naik taraf perisian tegar, ke kawasan storan perisian tegar lain untuk menulis perisian tegar yang lengkap, contohnya, jika larian semasa disimpan dalam 0x1000 user1.bin, kemudian ke alamat 0x81000(ESP8266-01S) atau 0x101000(EPS8266-07S) untuk menulis firmware user2.bin, selepas menulis, dan kemudian melalui fungsi system_upgrade_flag_set(0x02) untuk memaklumkan SDK tulis selesai, SDK menetapkan parameter sistem, supaya apabila permulaan ESP8266 but ke perisian tegar lain.

3) Amalan rasmi yang disyorkan ialah memuat turun perisian tegar ke pelayan awan ke memori melalui protokol http, saya tidak menggunakan program ini, terutamanya kerana dua pertimbangan, pertama, sama ada program ini telah disahkan dengan teliti, dan sama ada terdapat pertimbangan yang mencukupi untuk pengesahan data untuk mengelakkan peningkatan kepada bata, saya meraguinya. Kedua, program ini memerlukan pengawal untuk dapat menyambung ke rangkaian luaran untuk memuat turun perisian tegar daripada pelayan, yang tidak mudah dilakukan.

Saya sedang menggunakan delphi untuk membangunkan satu set perisian peningkatan perisian tegar, perisian sebagai klien TCP untuk menyambung terus kepada pengawal, atau menyambung ke get laluan TCP pelayan awan dan kemudian dipindahkan ke pengawal, dan kemudian mengikut 512 bait untuk bingkai data untuk menolak perisian tegar ke pengawal.

Seterusnya set logik ini boleh dialihkan ke pelayan, pelanggan boleh membuka halaman web melalui penyemak imbas untuk menolak perisian tegar ke pengawal.

4) Integriti data disahkan sepenuhnya, bingkai pertama data untuk melakukan crc32 checksum, perisian tegar ditulis pada denyar dan kemudian dibaca untuk membandingkan dengan nilai bertulis, dan pada masa yang sama mengira nilai daripada crc32, dan komputer atas untuk menghantar nilai crc32 berbanding dengan data baca dan tulis adalah sama, dan juga nilai crc yang sama, ia dianggap bahawa bingkai data ditulis dengan jayanya;
Pada masa yang sama, nilai crc32 setiap bingkai data dan kemudian melakukan nilai crc32, untuk mendapatkan jumlah nilai crc32, berbanding dengan jumlah nilai crc32 yang dihantar oleh komputer hos, nilainya adalah sama sebelum memanggil fungsi system_upgrade_flag_set( 0x02) untuk membenarkan SDK bertukar kepada perisian tegar but.

(5) Tulis kepada dua kawasan perisian tegar yang berbeza bagi pengguna1.bin perisian tegar, pengguna2.bin tidak sama, untuk pembangunan RTOS sdk, anda perlu mengubah suai nilai APP pembolehubah Makefile untuk menjana pengguna1.bin, pengguna2 .bin, masing-masing, komputer hos mengikut pengawal untuk kembali ke jalan semasa firmware kawasan storan, pilih kawasan storan lain perisian tegar yang dihantar kepada pengawal. Komputer hos memilih perisian tegar dalam kawasan storan lain mengikut kawasan storan perisian tegar yang sedang berjalan yang dikembalikan oleh pengawal.

Jika perisian tegar yang sama digunakan dalam kedua-dua kawasan storan, ESP8266 tidak akan dapat dimulakan seperti biasa.

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

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

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi OTA untuk ESPith SDK x(pengawal boleh atur cara skrip). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn