Microcontroller și bootloader
Deci, în cuvinte simple, bootloader - un program special, care se află în memoria microcontroler și poate reprograma singur. Să vedem modul în care programul se realizează, în general, pentru o mai bună înțelegere a procesului, cusute în microcontroler, și în cazul în care acesta se află.
Pare să fie clar aranjate, dar întrebarea este - de ce este necesar ca toate?
Să ne uităm la un exemplu rapid pentru o mai bună înțelegere. Să presupunem că am creat un bootloader (bootloader - exact același loc de muncă standard la fel ca orice alt program pentru microcontroler), care pune în aplicare interacțiunea cu un card de memorie externă, uita la harta fișierul program, și dacă este găsit, scrie programul în locația de memorie dorită.
Un digresiune mic din tema principală ... Să-ți explic ce vreau să spun aici prin „fișier de program“.
Toate acestea, desigur, foarte interesant, dar nu este încă clar de ce avem nevoie de toate aceste dificultăți ....
Cu aceasta, de fapt, este simplu - aici, de exemplu, prima situație - există un număr foarte mare de dispozitive de pe muncitorii din fabrică tighelite fiecărui controler (de exemplu, folosind ST-Link) pe fiecare bord bootloader. care atunci când este conectat la un card flash (în slotul de pre-determinată) este în căutarea pentru ea și fișierul firmware-ului este de programare. Programul principal, desigur, de asemenea, pot fi cusute împreună cu bootloader'om prin ST-Link. Dar subtilitate aici este că bootloader'a proiect rămâne mereu același și nu trebuie să-l reflash, dar versiunea de bază a programului poate fi actualizat o grămadă de ori în procesul de dispozitive de testare. Și aici este mult mai ușor o dată pentru a conecta ST-Link și încărcătorul de boot flash, și, ulterior, pur și simplu pentru a arunca de pe o nouă versiune a programului principal pe unitatea flash și stick-l în dispozitivul finit, care se va aprinde intermitent bootloader. mult de o sută de ori pentru a rula de la o carte la alta, stick ST-Link, în timp ce trecerea unui laptop cu ST-Link Utility ... După cum se poate vedea, avantajul este evident încărcător 😉
A doua situație este mai bună decât arată. Aparatul deja a produs și a vândut o grămadă de copii ale utilizatorilor. Cât de bun nu a fost versiunea finală a programului nimeni nu este sigur de erori neașteptate în timpul funcționării. Și aici este persoana care cumpără dispozitivul, pur și simplu nu se poate lua în afară și de lipire pentru a efectua re-programare printr-un programator. Adică, o actualizare de program este pur și simplu nerealist. Este destul de un alt lucru, în cazul în care producătorii au furnizat un bootloader built-in. Utilizatorul poate da peste cap fara probleme pe un card de memorie sau o unitate flash pentru a conecta binar descărcat și stick-ul hartă / de memorie la aparat. Producătorul poate încărca o nouă versiune a firmware-ului de pe site-ul dvs. =) Aceasta este, de fapt a acoperit o mulțime de oportunități - un producător de dispozitiv poate elibera cu ușurință un dispozitiv pe piață cu un firmware de bază, care pune în aplicare toate funcțiile necesare, dar nu conține nici un obiect grafic frumos sau conectivitate PC-ul (în funcție de ce tip de dispozitiv). Producătorii nu au nevoie pentru a puzzle peste, pentru a elibera prima dată când un firmware perfect, care va fi vandut absolut tot ce se poate, pentru că el știe că bootloader încorporat fără probleme în viitor va ajuta utilizatorul să faceți upgrade programului.
În general, beneficiile și aplicațiile încărcător pot vorbi foarte mult timp ...;) În plus față de aceste caracteristici actualizarea firmware-ului, folosind un card de unitate flash sau de memorie, bootloader poate utiliza oricare dintre interfețele de date, cum ar fi SPI, I2C sau USART.
În general, așa cum ne-am ocupat de partea teoretică, dedicată utilizării bootloader'a. dar să discutăm un alt punct în acest articol - și anume hardware-STM32 microcontrolere încărcător.
Avem deja STM32 bootloader. ingineri ST care au fost plasate într-o zonă de memorie special desemnată a microcontrolerului (System Memory). Eliminați nu poate fi acolo, și nici un motiv =) Pentru a intra regulatorul în modul bootloader ar trebui să prezinte anumite semnale BOOT0 BOOT1 și picioare. După aceea, USART microcontroler este gata să ia noul firmware. Pentru a face acest lucru, conectați cartela la PC, descărcați un softinkoy special de la ST - Flash Loader Demonstrator și încărcați-l fișierul firmware.
Eu, sincer, încărcător hardware preferă să nu folosească din mai multe motive. În primul rând, firmware-ul nu este criptat, este adesea considerată inacceptabilă pentru dispozitive comerciale. Dacă am folosi propriul bootloader. Eu pot face cu bin-fișier orice doriți, de exemplu, pentru a schimba anumite bytes locuri. Dacă fișierul ajunge în mâinile competitorilor, aceasta nu va funcționa, de îndată ce bootloader meu știe cum să decripta binar. Atunci când se utilizează botloader'a hardware-ul este imposibil - Flash Loader Demonstrator ia bin-fișier în forma sa inițială, adică, toți biții nu este criptat. În al doilea rând, utilizatorul va trebui să conectați cartela de la PC-ul și de a descărca software-ul suplimentar să lumineze intermitent dispozitivul, și nu este foarte bun. Cu atât mai ușor este de a utiliza aparatul, cu atât mai bine 😉 Dar există plusuri hardware bootloader'a - aceasta nu ia memorie flash. Când utilizați aplicația bootloader pentru a păstra în vedere faptul că atât încărcătorul și programul principal trebuie să se încadreze în memorie flash. Cu hardware-ul bootloader'om nici o astfel de problemă - este situat într-o zonă specială de memorie utilizată ca programator nu se poate.
Să ne pe această astăzi și se va termina, nu rata un articol dedicat punerea în practică a încărcătorului!