Witam
Chcę wykorzystać bootloader który minimalnie zmodyfikowałem. Oryginalnie może działać ze wszystkimi mikrokontrolerami które mają nie więcej niż 128kB flasha.
To istotny fragment kodu:
To co odznaczyłem zostało przez mnie dopisane.
Aby ułatwić sprawę przedstawię jak ten bootloader działa. Po włączeniu/zresetowaniu jednokrotnie program sprawdza wszystkie pliki w głównym katalogu karty SD które mają odpowiednią długość. W tym przypadku są one krótsze o 4 lub 8kB od ilości flasha. Nazwa oraz rozszerzenie nie mają żadnego znaczenia. Jeśli taki plik bootloader znajdzie to zaczyna go "mielić" przez CRC. Jeśli wszystko się powiedzie sprawdza czy sygnatura pliku (4 znaki na końcu pliku) są zgodne oraz wersja pliku jest wyższa niż obecnie zapisana i zaczyna flashowanie, po czym uruchamia się wgrany wsad.
Testowałem to na atmedze644 i 1284 i działa bez najmniejszego problemu. Tu jakby coś czytał ale po chwili znowu miga dioda jak by czekało na kartę SD i tak w kółko.
Program do generowania CRC także dołączam. Plik testowy to zwykłe miganie diodą co 1s.
Chcę wykorzystać bootloader który minimalnie zmodyfikowałem. Oryginalnie może działać ze wszystkimi mikrokontrolerami które mają nie więcej niż 128kB flasha.
To istotny fragment kodu:
Kod: C / C++
To co odznaczyłem zostało przez mnie dopisane.
Aby ułatwić sprawę przedstawię jak ten bootloader działa. Po włączeniu/zresetowaniu jednokrotnie program sprawdza wszystkie pliki w głównym katalogu karty SD które mają odpowiednią długość. W tym przypadku są one krótsze o 4 lub 8kB od ilości flasha. Nazwa oraz rozszerzenie nie mają żadnego znaczenia. Jeśli taki plik bootloader znajdzie to zaczyna go "mielić" przez CRC. Jeśli wszystko się powiedzie sprawdza czy sygnatura pliku (4 znaki na końcu pliku) są zgodne oraz wersja pliku jest wyższa niż obecnie zapisana i zaczyna flashowanie, po czym uruchamia się wgrany wsad.
Testowałem to na atmedze644 i 1284 i działa bez najmniejszego problemu. Tu jakby coś czytał ale po chwili znowu miga dioda jak by czekało na kartę SD i tak w kółko.
Program do generowania CRC także dołączam. Plik testowy to zwykłe miganie diodą co 1s.