Cytat:Mnie interesuje koncepcja samego bootloadera. Czy jest to wersja mająca jakieś zabezpieczenia przed nieprawidłowym wgraniem firmware - np. suma kontrolna pliku? "BOOTLOADER DOS SD " to wersja obsługująca system plików FAT16?
polecam pobrać darmowego Bascoma lub kupić (wtedy będzie obsługiwał Xmega)
http://www.mcselec.com/ tam są różne działające przykłady na różne procesory
także na RS232 i na DOS-SD - duzo też jest na forum MCS sprawdzonych kodów - czasami trzeba tylko jakis przycisk przepiąć na inny PIN. MOżna zajrzeć do środka pliku i podejrzeć jak jest zrobione.
Cytat:Moim zdaniem ogólnie forma wgrywania nowego firmware za pomocą karty SD jest słuszna dla projektów zamkniętych - producent wypuszcza urządzenie i aby klient mógł sam sobie zaktualizować urządzenie, przesyła mu kartę SD. Oczywiście jest też inne podejście - producent chce maksymalnie odciążyć klienta i robi wszystko, aby aktualizacja odbywała się najprościej - bez udziału innego urządzenia (PC).
a dlaczego zamkniętych ??? - jeśli bootloader "łyka" czyste pliki BIN to jest to jak najbardziej przydatne do "otwartych" projektów. Ja takiego self-bootloadera DOS na kartę SD używam od jakoś dwóch lat w MAX6 a zabawy z kolorowym LCD w wolnych chwilach uskuteczniam od grudnia 2010.
Do zamkniętych projektów mogę użyć bootloadera zabezpieczonego szyfrowaniem AES128 i bliki BIN też generować szyfrowane... AES128....
Flaszowanie karta SD jedna z prostszych metod jakie znam. Wkładasz kartę do PC (WinXP Win7 ) lub do komórki .... i nagrywasz plik...
Cytat: Jednak gdy ktoś decyduję się na tak nowoczesną syntezę to czy nie będzie korzystał z CAT'a?
Bootloader to taki program uruchamiany przed programem właściwym żartem mówiąc coś jak BIOS w komputerze
...a kto powiedział że Bootloader nie może pracować przez RS232 i kartę SD jednocześnie (do wyboru) ??? właśnie takie rozwiązanie mam w
MAX6 (ATMEGA128) - DUALNY bootloaer. Moge lądować program MCS bootloaderem przez RS232 wprost z BASCOMa ... albo karta SD - zależy jaki mam kaprys. :-) Bootloader możey być uruchamiany ręcznie (reset lub pozycja MENU ) ... automatycznie - komenda z RS232 lub linią RTS CTS itp...
Cytat:Poza tym nowoczesne karty SD mają duże pojemności i stwarza to problemy przy ich obsłudze. Mało tego, karty małej pojemności (atrakcyjniejsze z punktu widzenia programisty) stają się porównywalne cenowo z tymi o większej pojemności. Co gorsza karty o tej samej pojemności różnych producentów wcale (w tym akurat zastosowaniu) nie muszą być kompatybilne...Dlatego też, trzeba przeprowadzić testy z udziałem markowych i mniej znanych kart SD o różnych pojemnościach pamięci.
Czy te obawy wynikają z praktyki używania "DOS"-a na procusiach czy ze zwyczajnej ostrożności ? Do tej pory tylko jakieś dziwne chińskie karty nie zawsze dobrze pracowały....
Cytat:Na koniec - czy kolega może się podzielić tymi bootloaderami (ich kodem źródłowym) na forum?
Tego bootloadera nie będe umieszczał źródeł (ponieważ nie mogę gdyż źródła są w SAMPLES w kompilatorze) - dam sprawdzone i przetestowane HEX dedykowane pod odpowiednie piny i okablowanie tego procka.
By wejśc w posiadanie zestawu bootloaderów - na RS232 lub kartę SD wtsraczy pobrać i
zanstalowac BASCOM AVR ( na dole strony) a dodatkowo sa pełne helpy po polsku do pobrania z WWW
Pamięci na program mamy Jeszce 128kb... dla procka XMEGA128A3 .... oby tylko to użyć :-)
Karta ma też inne zastosowania o których pisałem wcześniej.
(23-04-2012 11:45)SP9FKP napisał(a): Sądzę, że nie medium a protokół decyduje o jakości komunikacji (oczywiście w uproszczeniu).
Tak masz rację... a dodatkowo BOOTLOADER to jest inny program w innym obszarze pamięci i może on pracować na jednym z dowolnych portów RS232 :-)
Ja przykładowo mam podłączony na RS232
BLUETOOTH i może pokusze sie o flaszowanie bazprzewodowe... na linku powyżej widać działanie bootloadera. Dodane jest zabezpieczenie przed przypadkowym flaszowaniem - trzeba trzymac PTT przez 5 sekund podczas resetu lub włączania procesora.
Do bootloadera dodałem "debugowanie" czyli informacje diagnostyczne wyrzucane przez RS232 ... ale może jak dodam programowanie przez RS232 to trzeba będzie okroić teksty...
robiłem tez hamskie testy z wyciąganiem karty w trakcie, resetowaniem w trakcie i wyłączaniem... ... startujemy jeszcze raz programowanie i wszystko gra :-)
Ja nikogo przecież nie zmuszę do używania tego typu flaszowania :-)
Jest jeszcze jedna zaleta... jak ktoś nie ma programatora PDI to kolega może mu podesłać wspawany na płytce procek z bootloaderem.
..... EDIT >>>
(23-04-2012 11:40)SP9MRN napisał(a): ...
No tak, ale CAT nie zapewnia na tyle pełnej komunikacji, żeby robić update. ...
By zrobić automatyczne startowanie bootlodera z poziomu sterowania przez RS232 musimy do tego zaprząc jakąś własną "komendę" (lub sekwencję polecenie-odpowiedź-potwierdzenie) ale komenda musi byc taka że się nam ten ciąg znaków nie przytafi przykładowo w normalnym potoku znaków - bo inaczej radio nam się zrestartuje ... i do tego trzeba by napisać własny boot-załadowywacz na PC :-)
Bootloader to taki
mały dedykowany program na końcu procesora który może dobić naprawdę dowolna rzecz :-) jest on uruchamiany w chyba czterech przypadkach
- przy włączeniu - jak na fusach jest ustawiony wektor resetu
- po wciśnieciu przyciska reset
- po zadziałaniu watchdoga
- po skoku bezpośrednim z programu na adres bootloader
obecnie karta SD wisi na tych samych kablach co czytnik ekranu dotykowego...
Dla leniwców można tak napisać bootloader (i program) że:
- włożenie karty + obecność pliku xxx.bin
uruchomi flaszowanie automatycznie - po czym plik zmieni nazwę na OLDxxx.bin
możliwości jest naprawdę dużo