Mikrokreditlar uchun bootloaderning maqsadi nima?

Mening tushunishimdan, umumiy mikrokontrolder (masalan, AVR, PIC) uchun, odatda, uning flesh xotirasini dasturlashning ikkita usuli mavjud.

  1. Dasturchilarni ishlatish: In-Circuit Serial Programming (yoki ba'zi bir variant?)
  2. tashqi qurilma bilan bog'laydigan, natijada microcontroller o'z xotirasini o'chirishga ruxsat beruvchi bootloaderning ba'zi shakli.

Albatta, bootloaderni ishlatish uchun juda yaxshi sabab bo'lishi kerak, aks holda uning joriy keng tarqalgan ishlatilishi juda g'alati bo'lar edi. Men hali to'liq tushunmaganman.

Dasturchi qimmatmi? Ammo keyin Programcılar sifatida ishlashi mumkin Arduinos (ATmega mikroişlemcisi) mavjud. Bir qo'shimcha yukning narxi bir bootloaderdan foydalanishni kafolatlaydimi? Agar men xato qilmasam, eng so'nggi Arduinos FTDI chipini butunlay qutqarib, uni ATMga protsessori bilan almashtirib, USB-ni ketma-ket interfeysga aylantiradi. Masalan, dasturchi vazifasini ushbu ICda integratsiya qilish mumkinmi?

Yoki, misol uchun, Pic microcontroller'ini olaylik. JDM dasturchi deb nomlangan narsani ko'rdim. Agar shunday bo'lsa, deyarli hech qanday faol tarkibiy qismlarga ega bo'lmasa,

  1. Nima uchun bootloaderni ishlatish kerak?
  2. nisbatan murakkabroq PICkit (mustahkamlik tashqari) maqsad nima? Xatolarni tuzatish qobiliyati?
10
Ba'zi javoblarni bu erda "qimmat" ga kiritish uchun: ba'zi MCU'lar uchun (AVR, STM8/32, ...) dasturchilar arzon. Siz $ 15 yoki undan kamroq AVR dasturchisini olishingiz mumkin. Biroq, boshqa MCU oilalari uchun (masalan, Kinetis) dasturchilar 100 dollardan yuqori bo'lishi mumkin va ko'p ARM oilalarini dasturga keltiradigan dasturchi/disk raskadrovchilar $ 500 bo'lishi mumkin. Ammo boshqalar aytganidek, bu asosan qulaylik, uzoqdan yangilanish va tashqi apparatni yo'q qilishdir.
qo'shib qo'ydi muallif Tachyons, manba
qo'shib qo'ydi muallif jdv, manba
tashqi xotiradan ichki xotiraga apparat yoki yuk kodini o'rnatish uchun
qo'shib qo'ydi muallif Alex, manba

6 javoblar

Bootloaderning asosiy vazifasi - standart dasturiy ta'minotni standart uskuna interfeysidan tashqari interfeyslarni yangilash imkonini berishdir. Masalan, bu ilovaning o'z maqsadlari uchun foydalanadigan aloqa kanallari orqali yangilanishlarni ta'minlaydi, ya'ni masofadan turib tizimda jismoniy aralashuvni talab qilmasdan uzoqdagi tizim yangilanishlarini amalga oshirishingiz mumkin.

Bu qobiliyatga ega bo'lganingizdan so'ng, nol qo'shimcha qo'shimcha qurilmaga ega bo'lishingiz kerak, bu esa uni eng kam qayta ishlash narxiga aylantiradi va shuning uchun Arduino kabi sevimli mashg'ulot tizimlaridan foydalaniladi. Bundan tashqari, marketingni blokirovka qilishning oz miqdori ham mavjud, chunki hozir siz AVR chipslarini o'zingizning dasturlashtirilgan bootloader bilan sotib olishingiz kerak.

16
qo'shib qo'ydi

Ba'zi bir stsenariylarda yuklashni yuklovchi juda katta qiymat kiritmaydi. Sizda bir nechta taxtalar mavjud bo'lsa, albatta dasturchini biriktirishingiz va kodni yana yamashingiz mumkin. Agar siz bir nechta taxtalar bilan ishqiboz bo'lsangiz yoki siz hatto kichik ishlab chiqarishga ega bo'lsangiz, buni shu tarzda qilishingiz mumkin.

Bootloaderlar dasturchilarni jismonan bog'lab turgan stsenariylarda ko'proq mantiqqa egadirlar. Masalan, allaqachon tarqatilgan tayyor mahsulotlar ushbu senariylardan biridir

Odatda elektron mahsulotingiz bo'lsa, siz "disk raskadrovka" yoki "dasturlash" portiga ta'sir o'tkazmaysiz. Mahsulotingizda faqat chekilgan, yoki ketma-ket yoki RS485, yoki JON yoki simsiz yoqishingiz mumkin.

Bundan tashqari, agar sizda bir necha o'nlab yoki yuzlab sotilgan yoki joylashtirilgan bo'lsa va sizning dasturiy ta'minotingiz yangilansa nima bo'ladi?

Dasturxonni ochish, dasturiy ta'minotni qo'shish, mahsulot ishini yopish va hokazolarni ochish o'rniga, bitta dasturiy ta'minotni qo'shish uchun mavjud mahsulotning mavjud interfeyslaridan foydalanishingiz mumkin.

Masalan, chekilgan yoki simsiz har qanday turdagi "bog'langan" qurilmalar mavjud bo'lganda ham yaxshi bo'ladi. Agar siz simsiz modulni mahsulotingizga kirsangiz, ushbu simsiz aloqani kodni yangilash uchun foydalanasiz, shu bilan bir vaqtning o'zida bir nechta qurilmalarni yangilab, ularga tegmasdan.

Agar sizning qurilmangiz internetga ulangan bo'lsa, u tushning xususiyatiga aylanadi. Shunday qilib, siz telefoningiz yangilanishlarini olgani kabi, har bir narsaning dasturiy ta'minotini bir marta bosish bilan yangilashingiz mumkin.

Bir sevimli mashg'ulot uchun, ehtimol, bootloader foydalanish juda mantiqqa ega emas, lekin aslida sotadigan qurilmalar sotadigan biznes nuqtai nazaridan u vaqtni tejashni ta'minlaydi, chunki u vaqtni tejaydi, jarayonga juda qulay bo'ladi va foydalanuvchilaringiz sizning Siz dasturchilarni faqat dasturiy ta'minot yangilanishlari uchun sotishingiz shart emas (yoki ularni dasturchilarni boshqa usulda xarid qilishni xohlaysiz). Agar sizning qurilmalaringiz bir xil funktsional bo'lsa-da, lekin turli xil mikrokontroller bilan bo'lsa nima bo'ladi? to'g'ri dasturchini jo'natish yoki sotish uchun kimga ega ekanligini aniqlash kerak bo'ladi, u bir dahshatga tushadi!

Instead of this you just put a USB port on it and everything gets hidden from the user, everybody knows how to connect a USB to the PC, copy one file to it and attach it to another device, but no normal user knows what the heck is a P&E debugger, a PICKit or a Segger J-Link.

Afsuski, bu biroz chalkashlik bo'lsa, ingliz mening tilim emas, balki tahrir qilish - bu tartibsizlik, lekin umid qilamanki, siz bu fikrni qabul qilasiz.

Cheers !!

9
qo'shib qo'ydi
Yaxshi javob, ehtimol, biroz muloyim. Sizning ingliz tilingiz yaxshi (hech bo'lmaganda mening mahalliy bo'lmagan nuqtai nazarimdan).
qo'shib qo'ydi muallif Rev1.0, manba
Ingliz tili global tijorat uchun standart til bo'lib, mahalliylardan ko'ra ko'proq ona tili bo'lmagan kishilarga o'xshaydi. Shunday qilib, "to'g'ri" ingliz tilini aniqlash qiyinroq bo'ladi. Amerika Qo'shma Shtatlaridagi Kanzas shtatidagi mahalliy ma'ruzachi sifatida sizni tushunishimda hech qanday muammo yo'q edi.
qo'shib qo'ydi muallif AaronD, manba

Bootloaderning asosiy maqsadi:

  • dasturni saqlash/tarmoqdan olish va uni yuklash.

Jarayon birligiga yaqinda tezkor saqlash juda cheklangan bo'lishi mumkin va siz ishlashni istagan dastur kartadan farqli bo'lishi mumkin yoki siz dasturdagi dasturni o'zgartirishni xohlashingiz mumkin. Bootloader sizning maxsus dasturiy ta'minotingizni qaerda saqlanadigan joydan yuklab olishni va uni qayta ishlash birligiga etkazishni biladigan keng tarqalgan dastur hisoblanadi.

Murakkab bootloaderlar quyidagilarni bajarishi mumkin:

  • o'zini sinab ko'rish
  • tarmoqdan yuklash
  • qo'shimcha dasturiy ta'minotni o'rnatish
  • ...
1
qo'shib qo'ydi
OP o'laroq, flesh-asosidagi mikrokontrolderlarda topilgan bootloaderlar xususida so'raydi. Bootloaderlarga nisbatan umumiy ma'noda bu javob biroz tashvishsiz mavzuga aylanadi.
qo'shib qo'ydi muallif GSerg, manba

Barcha boshqa buyuk javoblardan tashqari, hech bo'lmaganda, tijorat mahsulotlari uchun yana bitta sabab bor: ishlab chiqarish dasturiy ta'minotidan so'ng ko'pchilik fişlarda ularni o'qishdan himoya qilish imkoniyati mavjud.

MCUdan biriga ko'ra, ushbu o'qishdan himoyalangan variant aslida apparat dasturlash aloqasini o'chirib qo'yishi mumkin (SWD yoki JTAG kabi). Bajarilgan yuklovchingiz yo'q bo'lsa, uni qayta programlay olmaysiz.

Keyinchalik bozorda buggy dasturiy ta'minot bilan 10k birlik bilan tugaydi, u asosan bir necha oy kodlash bo'lgan narsa ustidan katta yo'qotishlarni keltirib chiqaradi.

1
qo'shib qo'ydi

Bu dasturchining narxi emas. Savdo sevimli mashg'ulotlariga kirmaydi; bu omil emas, omil emas, odamlar hajmini sotib olganlar, albatta, dasturchilarga yordam berishi mumkin. Sizda bir nechta variant bor:

  1. Bo'limlar qismlarni yetkazib beruvchisi yoki o'rta odam yoki ishlab chiqarish uyingiz tomonidan oldindan dasturlashtirilgan bo'lsin, keyin

  2. Tarmoqqa joylashtirilganidan keyin elektron dasturlashning ba'zi turlari mavjud

Ikkinchi toifadagi sizda qattiq mantiqiy echimlar (AVR chipsida SPI yoki SPI-ish narsa mavjud) ) va yumshoq yechimlarni (bootloader, qismni ishlatadigan qism) amalga oshiradi. Ulardan ba'zilari ham bor.

To'g'ri yechim topishga to'g'ri keladi, agar siz dizaynni bajaradigan bo'lsangiz, uni etarlicha erta ushlab turishingiz yoki mahsulotingiz zaxiraga tushadigan keraksiz qismlardir. Siz dasturiy ta'minot echimlarini hatto silikon postini ham o'zgartirishingiz mumkin; siz hatto kabinetga olishingiz va uni ishga tushirishingiz va qayta dasturlashingiz mumkin. Sizning mahsulotingizda xatolikni tuzatish va/yoki tuzish osonroq bo'lsa, shu hashamat bor. Yumshatadigan yechim, foydalanuvchi uchun kengroq variantlarni ham taklif qilishi mumkin. SPI va I²C va USB va ketma-ket va agar mavjud bo'lsa, har qanday apparat hal etish. Ba'zi holatlarda foydalanuvchining boot-loaderini o'z sabablari bilan yumshoq yechim topishlari mumkin.

Har bir mikrokontrolratorda o'z chirog'ini dasturiy ta'minlovchi dasturiy ta'minot mavjud emas, ammo har qanday foydalanuvchi uchun, agar biror chip sotuvchisi ta'minlangan bo'lsa, foydalanuvchi o'zi taqdim etgan chip sotuvchisidan mustaqil ravishda o'z bootloaderini qilishi mumkin.

ARM Cortex-M va SWD narsalar o'zgarishini ko'rmoqdaman; ba'zi yongalar faqat SWD va zavod parametrlaridan boshqa hech kim yo'q. Men faqatgina Atmelga ega bo'ldim SAM D21 ; ular endi SAM-BA bootloader-ga ega emaslar va ular sizning resurslaringizni foydalanuvchining flesh-xotirasi boshida o'zingizni qo'shishingiz mumkin, va ayrim registrlarni uni himoya qilish uchun saralashingiz mumkin, ammo yo'qotish juda ahamiyatli emas. Buning uchun juda ko'p narsa; siz o'zingiz yoki SWDdan foydalanishingiz mumkin.

Arduino/AVR dunyosiga, hobbilarga qarang. Ular o'zlarining bootloader-lariga ega, va bu bepul interfeysga ega. Bir necha (yoki bir necha o'n ming dollar) dollar uchun ISP dasturchisini olishingiz mumkin. Ammo shunga qaramasdan, ushbu nuqtaga yaqinlashtirilgan mashhur bootloaderlarning o'rniga USB-asosidagi protokollar bilan birga boshqa AVR-kartalarning qanday turlari borligini ko'rib chiqing. Ushbu USB protokollaridan ba'zilari o'zaro faoliyat sotuvchidan foydalanilmoqda.

Kun oxirida, sizning mijozlaringiz buni istasa va/yoki sizning marketing departamentimiz mahsulotimizdan ajratib olish uchun foydalanishi mumkin va u mahsulot yoki foyda sarflamaydi. Nima uchun? G'olib bo'ling.

Bu savolga hech kim javob bera olmaydi; bu hamma fikrga asoslangan. Siz har bir chip sotuvchisiga murojaat qilishingiz va ularni so'rashingiz mumkin, lekin odamlar javob berishga tayyor, ular, ehtimol bu xususiyatni qo'shib qo'ygan yoki uni saqlaydigan millat bilan gaplashmagan yoki hech qachon gaplashmagan. Bu savolga javob yo'q.

0
qo'shib qo'ydi

Faqat sevimli mashg'ulotchilarning nuqtai nazarini berish:

Bu qo'shimcha qurilma yoki past darajali bilim talab qilmaslik uchun hayotni ancha osonlashtiradi. Men foydalanadigan eng katta namunadir, bulut ustida porlash mumkin bo'lgan zarracha fotonasi (filiallar yo'q) edi. Ushbu chipni yoqish uchun kerak bo'lgan yagona narsa:

  • Quvvat manbai
  • WLAN
  • Internetga ulanish
  • Dasturni yozadigan boshqa kompyuter

Bu jarayon ancha arzonlashadi va umuman pro-perspektividan juda oddiy.

0
qo'shib qo'ydi