Sari la conținut

Totul despre "bootloader" ?!


Postări Recomandate

Am cautat pe net diverse informatii despre folosirea unui mic program in memoria flash a unui MCU Atmega, care poate ajuta la protectia datelor scrise ulterior in MCU. Spre exemplu, cu un asemenea minisoft denumit bootloader se poate realiza pe PC o interfata (un alt soft) cu ajutorul caruia sa scrie un program intr-un alt limbaj de programare ca ulterior sa-l incarcam in MCU? Sau, ce anume se poate face cu acest bootloader? Am citit ca platforma Arduino are asa ceva. De ce?

 

intreb lucrurile astea pentru ca altfel inteleg de la cineva care imi explica in lb romana treburile astea.

 

cu stima,

dan 

Link spre post
Distribuie pe alte site-uri

Nu e vorba despre protectia datelor, asta se poate realiza activand un fusebit. Bootloader-ul este un soft care practic pune uC-ul sa se autoprogrameze folosind un canal de comunicatii implementat (USB, COM, ETHERNET, etc.). De asemena poate ajuta la debug-ul unui program. Bootloaderul ruleaza doar in uC si de obicei vine cu platforma de dezvoltare (ex. Arduino). Dupa teste, programul se pune direct in controler folosind un programator extern, asta pentru ca bootloaderul ocupa si el memorie si introduce unele intarzieri in pornirea softului propriuzis.

Link spre post
Distribuie pe alte site-uri

Booloader-ul are simpla functie de a incarca programul executabil dintr- un tip de memorie in altul (de obicei de pe un mediu extern, disk, memory card, NAS etc) in locul unde se va executa, RAM sau Flash, Cache etc. Dupa incarcare preda controlul executiei codului proaspat incarcat.

Unele boot-loadere fac mai mute lucruri, programeaza interfete, accepta parmetrii care pot controla incarcare si executia si parmetrii pentru programarea interfetelor (adrese IP, baud rate etc.)

In cazul microcontrolerelor bootloader-ul are si functia de a programa memoria flash (destinatie)  nefiind nevoie de un programator. Unele microcontolere au bootloader din fabricatie in memorie ROM

unul din bootloader-ele mai populare de la Arduino e "optiboot" care e facut dupa unul mai vechi facut de atmel pentru o placa a lor de dezvoltare (stk500) - avrdude (un program de PC pentru a trimite fisierul hex in formatul acceptat de bootloader) stie sa comunice cu optiboot.

RR

Editat de roadrunner
Link spre post
Distribuie pe alte site-uri

Multumesc pentru raspunsuri.

 

Am inteles ca transfera programul de pe memoria unui card in flash-u MCU dar nu am inteles cum stie bootloader-ul sa seteze fusebiti ?

Eu din ce am inteles, pe card se scrie fisierul hex. Cardul se conecteaza la MCU printr-o conexiune uzuala iar apoi, bootloader-ul din MCU vede hex-ul si il scrie in flash-ul MCU dar cum seteaza fusebiti? Trebuie sa-i setez tot eu prin interfata ISP inainte de a scrie MCU-ul. Sau treaba asta cu bootloader-ul e buna numai in cazul in care vreau sa actualizez flash-ul MCU !!!!!!

 

Cu stima,

dan 

Editat de dan_e
Link spre post
Distribuie pe alte site-uri

fuse biti sunt setati cand "arzi" bootloader-ul, mai mult protejezi (setand corect fuse-biti) regiunea de flash in care e scris bottloader-ul (ca sa nu poate fi sters de el insusi in caz ca receptioneaza un hex gresit)

ai nevoie de un programator sau ISP numai odata la inceput dupa care poti acualiza softul folosindu-te de bootloader.

RR

  • Like 1
Link spre post
Distribuie pe alte site-uri

Acum am inteles care e treaba.

 

Exista bootloadere universale sau trebuiesc personalizate? Si daca sunt universale, de unde le pot descarca ? Cat la suta din memoria flash MCU ocupa un bootloader ?

Link spre post
Distribuie pe alte site-uri

nu exista booloadere universale pentru ca depind de hardware, in general ocupa 1K-2K la microcontrolere mici (mici adica cu falsh 8K-256K) dar si unele mai maride exemplu 16K-128K  la procesoarele ARM care incarca soft-ul (sau OS-ul) in RAM si-l ruleaza acolo. Un exemplu de bootloader mai mare si popular este U-boot (folosit la ARM, MIPS, PowerPC, Atom, Quark)

RR

 

PS - la procesoarele mai mari de cele mai multe ori sunt doua booloadere unul primar (fsbl - firt stage boot loader) care se ocupa de setarea procesorului, clock-uri, intreruperi, interfete) urmat de un bootloader secundar de obicei U-boot. Practic FSBL e dependent de arhitectura hardware iar U-boot e independent (u-boot lucreaza cu interete standard deja pregatite de catre FSBL)

Editat de roadrunner
Link spre post
Distribuie pe alte site-uri

la atmel pe website sunt cateva AN (aplication note) care vorbesc despre bootloadere (presupun ca la fel si la MIcrochip) - in directorul ..\Arduino\hardware\arduino\avr\bootloaders\ sunt cateva bootloadere diferite si compatibile cu IDE-ul de la arduino (si cu avrdude)

Succes la citit,

RR

Link spre post
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    Nici un utilizator înregistrat nu vede această pagină.



×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock