michal123
Vytvořené odpovědi
-
AutorPříspěvky
-
michal123Účastník
Je mi tedy jasné, že resetuji procesor a pak ho začnu programovat, ale stále se v těch příkazech nějak nevyznám.
Prošel jsem výše zmíněné odkazy ale nekokážu si podle toho ani předsatvit jak by měl vypadat funkční výsledek.
Nevím jaké příkazy použít bylo by prosím možné odkázat na nějaký příklad? takový kde by bylo nejlépe Serial.write(„prikaz1“) a seznam rpikazu tak jak se pouzivaji.
Chtěl jsem odposlechnout stávající komunikaci při programování za prevodnikem z usb ale k tomu mi nyní jedno arduino chybí, takže budu muset počkat.
Doufám, že mi to brzy dojde a naprogramování se podaří.michal123Účastníkkdyž zvolím možnost z aktualizačního procesuru posílat data přes uart, následují nejspíš tyto kroky?:
restart procesoru
čekání 20ms
poslání „řídícího slova“ kde najít jak má vypadat?
nahrání bit nebo hex kódu, nebo jende stranky?
poslani dalsiho slova s dalsi strankou nebo restart?nepodařilo se mi najít přesný postup
michal123ÚčastníkDosud jsem používal pouze arduino, přemýšlím o atmel studiu (mám snad už nějaké základy assembleru a c++ tak by to snad mohlo jít), rád bych to vyřešil pro Arduino.
Zde je hezký článek o tom jak bootloader funguje a i ukázka velice jednoduchého kódu: Bootloader AVR
Ano, tenhle článek jsem četl už asi před týdnem, a rozhodně mi osvětlil některé časti. Výhdami jsem mylsel to jestli (případně proč) bootloader umi i něco více než arduino program. Chapu to tak ze kdyz bych psal v atmelstudiu tak bootloader bude umet stejne veci jako kod, ale nejsem si jist jeslti to tak opravdu je a jeslti když bych psal v arduinu budou na všechno příkazy.
Poté si můžete projít i bootloader který je v arduinu zde: Arduino bootloader
Děkuji, tohle jsem hledal, ale bohůžel se stalo to co je nejspíš pravděpodobné, že mi ten kód moc neříká (a studovat hotřeba týden když se mu chci vyhnout se mi moc nechce)
Budu trošku tipovat …
Zezačítku jsem tohle co jsete psal moc nechaápal, už to ale čtu poněkolikáté a žačalo to dávat smysl, takže tomu rozumím tak, že kód který je zapsaán v nejaké paměti nemůže tu stejnou paměť přepsat, ptotože by došlo k chybě. Lze zavolat funkci která by byla nějakým způsobem uložena do paměti pro bootloader? a tím moha přepsat stávající hlavní program? (tuším, že to pravděpodonmě nebude jednduché takže odpověď bude NE)
Jak může vypadat aktualizační procesor? Ještě jsem nezkoušel dostat aeduino na procesor menší než atmega328, a když už bych ho tam dal, tak by bylo zbytečné ho nevyužívat i jinak než jen jako aktualizační.
Lze použít pro arduino jako aktualizační procesor třeba nějaký levný jak attiny10 ? možná s extermním paměťovým čipem?
Myslím, že když zvládnu naprogramovat jeden druhým, tak i druhý prvním. To snad nebude problémAno, metoda přes UART nebo SPI se mi zdá snažší (snad i zabere méně paměti) a myslím, že ni moje znalosti stačit mohou (i když jsem se ještě nepodíval na ArduinoISP)
Ještě se tedy pokouším zhodnotit kterou metodou se vydám, jeslti ISP nebo UART (který se mi zatím zdá méně náročný na počet pinů)Raději bych se tedy bootloaderu vyhnul, ale měl bych k němu ještě otázku. Je je nějaký funkční rozdíl mezi původním 2kb bootloaderem a menším optiboot bootloaderem?
michal123ÚčastníkDěkuji, je to pro mě velkým přínosem, i když je tam spousta věcí co ještě neznám.
michal123Účastníkaktuálně používám atmega328p
1)takovýto modul nemám, ale jestli to dobře chápu tak se to blíží možnosti 3)
2)jakou výhodu má bootloader oproti programu za běhu nebo například přerušení?
jak se píše vlastní bootloader?
proč to nejde tak, že za běku se vyvolá například přerušení, vyprázdní se ram, do ní nenahraje požadovaný kód a pak nenaprogramuje do příslušné paměti?
3)ano i o této možnosti jsem přemýšlel ale uní zase nevím jak umožnit přeprogramovávání dvou procesorů za běhu (pak samozřejmě restart) nebo úpravy bootloaderu
mohl by jste mě prosím odkázat na nějaký pochopitelný kód?
Děkuji, tyto odpovědi se mi moc líbí, jen nevím jak je realizovat (ani jednu) -
AutorPříspěvky