Mundarija:

Arduino Havoda dasturlash (OTA) - Ameba Arduino: 4 qadam
Arduino Havoda dasturlash (OTA) - Ameba Arduino: 4 qadam

Video: Arduino Havoda dasturlash (OTA) - Ameba Arduino: 4 qadam

Video: Arduino Havoda dasturlash (OTA) - Ameba Arduino: 4 qadam
Video: Робот на Arduino Nano #ардуино #роботы #электроника 2024, Noyabr
Anonim
Arduino Havoda dasturlash (OTA) - Ameba Arduino
Arduino Havoda dasturlash (OTA) - Ameba Arduino

Bozorda ko'plab Wi-Fi mikrokontrolerlari mavjud, ko'pchilik ishlab chiqaruvchilar o'zlarining Wi-Fi mikrokontrollerlarini Arduino IDE yordamida dasturlashni yoqtirishadi. Biroq, Wi-Fi mikrokontrolerining eng yaxshi xususiyatlaridan biri-kodni masofadan va simsiz OTA (Over-The-Air) funktsiyasidan foydalanib dasturlash va yuklash.

Ushbu yo'riqnomada, men sizga Ameba Arduino Wi-Fi mikrokontrolleridagi hamma joyda Arduino IDE yordamida Wi-Fi mikrokontrolleringizda OTA ni qanday o'rnatishni ko'rsataman!

Ta'minotlar

Ameba Arduino x 1

1 -qadam: OTA

OTA
OTA

OTA (Over-The-Air) Internet orqali onlayn yangilanish mexanizmiga ishora qiladi.

Arduino IDE OTA xususiyatini taklif qiladi, u yuqoridagi rasmda ko'rsatilgan jarayonga mos keladi.

(i) Arduino IDE mahalliy tarmoqda Arduino IDEOTA xizmatiga ega qurilmalarni mDNS orqali qidiradi.

(ii) mDNS xizmati Ameba -da ishlayotganligi sababli, Ameba mDNS qidiruviga javob beradi va ulanish uchun maxsus TCP portini ochadi.

(iii) Foydalanuvchi Arduino IDE dasturini ishlab chiqadi. Tugallangach, tarmoq portini tanlang.

(iv) Yuklash -ni bosing. Keyin Arduino IDE OTA tasvirini TCP orqali Ameba -ga yuboradi, Ameba tasvirni ma'lum manzilga saqlaydi va keyingi safar yuklash uchun yuklash variantini o'rnatadi.

Ish oqimi uch qismdan iborat: mDNS, TCP va OTA tasvir jarayoni. MDNS bilan bog'liq tafsilotlar mDNS qo'llanmasida tasvirlangan. TCP soket dasturlash tasvirni uzatishda ishlatiladi va allaqachon OTA API -da taqdim etilgan.

Keyingi bo'limda biz OTA tasvirini qanday qayta ishlashni muhokama qilamiz va Ameba flesh xotirasining joylashuvi va yuklash oqimi haqida ba'zi asosiy bilimlarni joriy qilamiz.

2 -qadam: Ameba Flash xotira tartibi

Ameba flesh xotira tartibi
Ameba flesh xotira tartibi

Ameba RTL8195A flesh xotira hajmi 2 MB, 0x00000000 dan 0x00200000 gacha. Biroq, Ameba RTL8710 flesh -xotirasining hajmi 1MB. Turli xil taxtalardan foydalanish uchun biz flesh -xotira tartibini 1 MB deb hisoblaymiz.

Yuqoridagi rasmda ko'rsatilgandek, Ameba dasturi flesh xotiraning uch qismini egallaydi:

- Yuklash tasviri:

Ya'ni yuklash vositasi. Ameba yuklangach, yuklash tasvirini xotiraga joylashtiradi va ishga tushirishni amalga oshiradi. Bundan tashqari, u bootloaderdan keyin qaerga borishni aniqlaydi. Bootloader tizim ma'lumotlari maydonidagi OTA manzili va qutqaruv piniga qaraydi va keyinchalik qaysi tasvir bajarilishini aniqlaydi. Bootloader oxirida tasvirni xotiraga joylashtiradi va uni bajarishga kirishadi.

- Standart rasm 2:

Ishlab chiquvchi kodi bu qismga joylashtirilgan, manzil 0x0000B000 dan boshlanadi. Dastlabki 16 bayt - bu rasm sarlavhasi, 0x0000B008 ~ 0x0000B00F imzo o'z ichiga oladi, bu tasvirning to'g'riligini tekshirish uchun ishlatiladi. Imzo maydonida yangi tasvirni eski tasvirdan ajratish uchun ikkita haqiqiy qiymat mavjud.

- OTA tasviri:

Bu qismdagi ma'lumotlar ham ishlab chiquvchi kodidir. Odatiy bo'lib, xotiraning bu qismi 0x00080000 dan boshlanadi (o'zgartirish mumkin). OTA tasvir va Default Image 2 o'rtasidagi asosiy farqlar flesh xotira manzili va Signature qiymati.

Koddan tashqari, ba'zi ma'lumotlar bloklari mavjud:

- Tizim ma'lumotlari:

Tizim ma'lumotlar bloki 0x00009000 dan boshlanadi. OTA bilan bog'liq ikkita ma'lumotlar mavjud:

1. OTA manzili: 4 baytli ma'lumotlar 0x00009000 dan boshlanadi. Bu OTA Image manzilini bildiradi. Agar OTA manzilining qiymati noto'g'ri bo'lsa (ya'ni, 0xFFFFFFFF), flesh xotiradagi OTA tasvirini to'g'ri yuklash mumkin emas.

2. Qutqaruv PIN -kodi: 0x00009008 dan boshlab 4 baytli ma'lumotlar, qutqarish pimi har ikkala tasvir ham haqiqiy bo'lganida qaysi tasvirni (standart 2 -rasm yoki OTA tasvir) bajarilishini aniqlash uchun ishlatiladi. Agar tiklash pin qiymati noto'g'ri bo'lsa (ya'ni, 0xFFFFFFFF), yangi tasvir sukut bo'yicha bajariladi.

Dastur Ameba -ga DAP orqali yuklansa, tizim ma'lumotlari o'chiriladi. Ya'ni, OTA manzili o'chiriladi va Ameba OTA tasviri yo'qligini aniqlaydi.

- Kalibrlash ma'lumotlari: periferik kalibrlash ma'lumotlari ushbu blokda joylashtirilgan. Odatda bu ma'lumotlar o'chirilmasligi kerak.

3 -qadam: yuklash oqimi

Yuklash oqimi
Yuklash oqimi

Yuqoridagi rasmdan, Biz quyidagi stsenariylarni muhokama qilamiz: (i) OTA ishlatilmaydi, dasturni yuklash uchun DAP dan foydalaning:

Bunday holda, bootloader standart rasm 2 va OTA manzilining imzosini tekshiradi. OTA manzili o'chirilganligi sababli, bajarish uchun standart rasm 2 tanlanadi.

(ii) OTA tasviri Ameba -ga o'tkaziladi, OTA manzili to'g'ri o'rnatiladi, qutqarish pimi o'rnatilmagan:

Ameba OTA orqali yangilangan tasvirni oldi, standart rasm 2 imzosi eski imzoga o'rnatiladi.

Bootloader standart rasm 2 va OTA manzilining imzosini tekshiradi. U OTA manzili to'g'ri OTA tasvirini topadi. Qayta tiklash pimi o'rnatilmaganligi sababli, u bajariladigan yangi tasvirni (ya'ni OTA tasvirini) tanlaydi.

(iii) OTA tasviri Ameba -ga o'tkaziladi, OTA manzili to'g'ri o'rnatiladi, qutqarish pimi o'rnatiladi:

Ameba OTA orqali yangilangan tasvirni oldi, 2 -rasmning imzosi eski imzoga o'rnatiladi.

Bootloader standart rasm 2 va OTA manzilining imzosini tekshiradi. U OTA manzili to'g'ri OTA tasvirini topadi. Keyin qutqarish pinining qiymatini tekshiring. Agar qutqarish pimi LOW ga ulangan bo'lsa, yangi tasvir (ya'ni OTA tasviri) bajariladi. Agar tiklash PIN -kodi HIGH -ga ulangan bo'lsa, eski tasvir (ya'ni, 2 -rasm) bajariladi.

4 -qadam: Misol

Misol
Misol
Misol
Misol
Misol
Misol
Misol
Misol

OTA xususiyatidan foydalanish uchun DAP dasturiy ta'minotini> 0.7 versiyasiga yangilang (v0.7 qo'shilmagan). Standart DAP dasturiy ta'minoti 0.7 versiyasidir. Iltimos, DAP dasturiy ta'minotini yangilash bo'yicha ko'rsatmalarga amal qiling:

Misolni oching: "Fayl" -> "Misollar" -> "AmebaOTA" -> "ota_basic"

Tarmoqqa ulanish uchun namuna kodiga ssid va parol ma'lumotlarini to'ldiring.

OTA bilan bog'liq ba'zi parametrlar mavjud:

§ MY_VERSION_NUMBER: Birinchi versiyada biz OTA manzilini va qutqarish pinini o'rnatishimiz kerak. Bu safar biz USB orqali yuklaymiz - bu birinchi versiya, biz bu qiymatni o'zgartirishga hojat yo'q.

§ OTA_PORT: Arduino IDE Amebani mDNS orqali topadi. Ameba Arduino IDE -ga OTA tasvirini kutish uchun TCP 5000 portini ochishini aytadi.

§ RECOVERY_PIN: Qayta tiklash uchun ishlatiladigan pinni sozlang. Biz bu erda 18 -pinni ishlatamiz.

Keyin biz Ameba -ga USB yuklash dasturidan foydalanamiz. Asboblar -> Portlar -ni bosing, foydalanish uchun ketma -ket portni tekshiring:

E'tibor bering, Arduino IDE dasturi yuklash va chiqish uchun bitta portdan foydalanadi. OTA -dan foydalanganda jurnalni chiqara olmaydigan vaziyatni oldini olish uchun, biz jurnal xabarini ko'rish uchun ketma -ket monitor o'rniga boshqa ketma -ket port terminalini (masalan, Tera termini yoki macun) ishlatamiz.

Keyin yuklashni bosing va reset tugmasini bosing.

Jurnal xabarida:

1. “===== Rasm 1 kiriting ====” va “Rasm 2 kiriting ====” o'rtasida siz “Flash rasm 2: Addr 0xb000” ni topishingiz mumkin. Bu shuni anglatadiki, Ameba Default Image 2 -dan 0xb000 da yuklashni aniqlaydi.

2. "2 -rasmga kiring ====" dan keyin "Bu 1 -versiya" ni topishingiz mumkin. Bu biz eskizga qo'shadigan jurnal xabari.

3. Ameba AP ga ulangan va "192.168.1.238" IP -manzilini olgandan so'ng, u mDNS -ni faollashtiradi va mijozni kutadi.

Keyin "MY_VERSION_NUMBER" raqamini 2 ga o'zgartiramiz.

"Asboblar" -> "Port" ni bosing, siz "Tarmoq portlari" ro'yxatini ko'rishingiz mumkin. "192.168.1.238 (Ameba RTL8195A) da MyAmeba" ni toping, MyAmeba - bu biz namunaviy kodda o'rnatgan mDNS qurilma nomi va "192.168.1.238" - Ameba IP -si.

Agar Ameba tarmoq portini topa olmasangiz, tasdiqlang:

- Sizning kompyuteringiz va Ameba bir xil mahalliy tarmoqda bo'ladimi?

- Arduino IDE -ni qayta ishga tushirishga harakat qiling.

- Seriya monitoridagi jurnal xabarini tekshiring, Ameba AP ga muvaffaqiyatli ulanganligini tekshiring.

Keyin yuklashni bosing. Bu safar dastur TCP orqali yuklanadi. Jurnal terminalida siz mijozning ulanish ma'lumotlarini ko'rishingiz mumkin.

OTA tasviri muvaffaqiyatli yuklanganida, Ameba qayta ishga tushadi va log jurnalida quyidagi jurnal ko'rsatiladi.

- "===== Rasm 1 kiriting ====" va "Rasm 2 kiriting ====" o'rtasida siz "Flash Image 2: Addr 0x80000" jurnalini ko'rishingiz mumkin. Bu shuni anglatadiki, Ameba 0x80000 da OTA Image -dan yuklashga qaror qiladi.

- "2 -rasmni kiriting ====" dan keyin "Bu 2 -versiya" jurnali biz eskizga qo'shamiz.

OTA tasviri Ameba -ga yuklanganidan keyin oldingi rasmga qaytish uchun, biz eskizda (ya'ni 18 -pin) o'rnatilgan tiklash pinini HIGH (3.3V) ga ulang va reset -ni bosing.

Keyin yuklash paytida standart rasm 2 paydo bo'ladi. E'tibor bering, yuklangan OTA tasviri o'chirilmaydi, qutqarish pinini HIGHdan uzib bo'lgach, OTA tasviri bajariladi.

Biz quyidagi rasmda OTA yordamida rivojlanish oqimini umumlashtiramiz.

Tavsiya: