forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Otázky týkající se bootloaderu

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Programátory
 
palak1
Nováček
Nováček


Založen: 28.3.2017
Příspěvky: 2

PříspěvekZaslal: 28 březen 2017, 18:34    Předmět: Otázky týkající se bootloaderu Citovat

Dobrý den,
chtěl bych si vyrobit malé kapesní hodinky. Všechno naostro bez vyzkoušení na nepájivém poli (teď nemám jinou možnost), a tak předpokládám, že moje ATMega32 v smd provedení bude potřebovat přeprogramovat znovu a znovu. Logická chyba tam určitě někde bude. Protože naprogramovat takto miniaturní čip je pro mě docela problém (stačí že to budu muset dělat nejméně jednou), a také protože do pouzdra na tyto hodinky se nevejde konektor na programování, zjistil jsem si, že mám použít "jakýsi" bootloader, a nejlépe bych tam dal mikro usb konektor na programování.

Četl jsem si dost, počínaje datasheetem, ale pořád nerozumím o co se vlastně jedná, nebo jak si ho naprogramovat či sehnat nějaký jiný který tam nahraju? A co vlastně potom, musím mít nějaký speciální program, který mi bude nahrávat .hex soubor, nebo to už vždycky jen pošlu do usb "normálně" a můj dosavadní program na nahrávání "eXtreme Burner - AVR" s tim nebude mít problém? Kam připojím datové vývody USB kabelu? Budu od nahrání už jen nahrávat na část paměti pro bootloader který si ji nahraje do zbytku sám?

Takovéto projekty často nedělám, a kdykoliv, kdy jsem něco potřeboval, sehnal jsem nespočet návodů na youtube. I kdyby po kouskách, vždycky to šlo složit dohromady a udělat z toho výsledek. Avšak u bootloaderu skoro nic. Každý ho jen nahrává do Arduina a ani nevim odkud ho berou (či jak si sehnat "svůj" pro usb programování) a nastaví pár pojistek (těm jako jediným rozumím). Nic víc, nikdo nemá stejné otázky jako já, nikdo na ně neodpovídá. Něco mi musí unikat.

Samozřejmě základy o bootloaderu jsem si přečetl, takže zhruba vím o co se jedná, ale výše zmíněné otázky stále trvají. Nepřišel jsem se sem vylít a šup sem odpovědi, ale spíš jen poprosit, jestli nemáte užitečné zdroje k výše zmíněným otázkám, popřípadě nějaké tutoriály (pár jsem jich taky prošel).

Děkuji za přečtení a případné komentáře.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Balů
Profesionál
Profesionál


Založen: 29.10.2012
Příspěvky: 708

PříspěvekZaslal: 28 březen 2017, 21:32    Předmět: Citovat

Bootloader není nic jiného, než program, který umí přenést data odněkud do programové paměti mcu. Záměrně píšu odněkud, protože zdroj dat může být v podstatě cokoliv. Pojistky se přenastavují proto, že pro bootloader je vyhrazená paměť na konci paměťového prostoru procesoru a spouští se vždy po zapnutí mcu. Na základě nějakých podmínek (ty si opět volíš sám) buď spustí vlastní program nebo zůstane čekat na příjem dat. Většinou se používá UART, protože je to nejjednodušší, jak nasypat program do mcu. USB rozhraní bys musel implementovat do ATmega32 softwarově a na to by Ti pravděpodobně paměť vyhrazená pro bootloader nestačila. Do bootloaderu se sypou většinou BIN a ne HEX soubory, protože HEX soubory bys musel v mcu ještě překládat do BIN a to by se opět nemuselo do paměti pro bootloader vejít. Na webu samozřejmě existuje spousta bootloaderů připravená pro všeobecné použití. I Arduino není nic jiného, než AVR s nahraným bootloaderem pro UART komunikaci s prostředím. A pochopitelně, potřebuješ vědět, jakým protokolem spolu komunikují. To pochopitelně potřebuješ u všech bootloaderů.

Podmínky, za jakých se (ne)spustí hlavní program a komunikační protokol a rozhraní si samozřejmě určuješ sám pouze v případě, že si bootloader programuješ sám. Jinak se musíš přizpůsobit tomu, co si stáhneš.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
DragonSoul
Profesionál
Profesionál


Založen: 4.3.2010
Příspěvky: 503
Bydliště: Praha

PříspěvekZaslal: 29 březen 2017, 7:30    Předmět: Citovat

Pokud chceš nahrávat přes USB, příklad třeba zde http://www.fischl.de/avrusbboot/ , asi 5 sekund na googlu. Nezkoušel jsem. Bootloader je program, který musíš nahrát klasicky přes extreme burner a ISP jednou, potom to půjde přes to USB. Pro nahrávání přes USB už není potřeba žádný programátor, pouze program, který to pošle do uC (prakticky každý terminál). Program přeložíš ve svém prostředí (Atmel Studio, Eclipse atd) a výsledný soubor tam nahraješ. Ve výše uvedeném příkladě musíš přehodit jumper aby se spustil bootloader a po nahrání ho přehodíš zpět. Booloader výše uvedený yabírá 1k paměti, což se vleze skoro všude.
_________________
Hodne se ucim (delam hodne chyb).
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
palak1
Nováček
Nováček


Založen: 28.3.2017
Příspěvky: 2

PříspěvekZaslal: 29 březen 2017, 8:09    Předmět: Citovat

Děkuji vám moc Embarassed Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Programátory Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2017 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)