Cześć,
Pracuję nad bootloaderem, który umożliwi zaprogramowanie procesora plikiem z serwera.
Plik pobieram i tnę na kawałki (dowolnej wielkości, aktualnie 128 bajtów) z pomocą modułu SIM868 (póki co w osobnym projekcie).
Uruchomiłem projekt bootloadera optiboot w Microchip Studio 7. Były jakieś dziwne problemy, ale udało się wgrać program bootloadera do procesora. Musiałem każdą solucję ręcznie przeładowywać aby można było skompilować projekt, ponadto był błąd (a w zasadzie 3 takie same dla różnych procesorów dotyczące baudcheck więc zakomentowałem te linie w pliku make:
Zmieniłem pin diody, która po zaprogramowaniu procesora szczęśliwie mruga w koło (3 mrugnięcia, chwila pauzy i tak w nieskończoność).
Ustawiłem fusebity (aktualnie BOOTSZ zgodnie z rozmiarem, po integracji obu w/w programów zmienię na 2024 słowa, gdyż sama obsługa pobierania plików przez HTTP GET zajmuje mi 3kB i nie mam pomysłu na zmniejszenie jej rozmiaru - nie potrafię):
Mam pytanie, czy przypadkiem dioda nie powinna inaczej się zachowywać? Tzn mrugnąć zadaną ilość razy (wg opisu na stronie 3, choć zmieniałem tą ilość w programie to nadal miga 3 razy) a potem czekać na rozkazy/ dane na porcie?
Czym mogę wysłać testowo flash do optiboot'a? Pewnie przez samo środowisko Arduino a to raczej odpada, może przez opcje "Send File" w br@y++ terminal (tylko, że się program wysypuje). Docelowo to serwer będzie wysyłał plik ale muszę po pierwsze wiedzieć jak ten plik wysłać i jakie polecenia dołożyć. Wątpię by pliki, np chaucer16k.ino wysyłające po prostu dane bez żadnych rozkazów ani innych operacji służyły do ładowania flasha, mylę się?
Dodano po 17 [minuty]:
Doczytałem, wychodzi na to, że za pomocą avrdude (stk500) powinno udać się zaprogramować procesor, sprawdzę niedługo. Tylko co z tą diodą, wygląda jakby program w kółko się resetował.
Pracuję nad bootloaderem, który umożliwi zaprogramowanie procesora plikiem z serwera.
Plik pobieram i tnę na kawałki (dowolnej wielkości, aktualnie 128 bajtów) z pomocą modułu SIM868 (póki co w osobnym projekcie).
Uruchomiłem projekt bootloadera optiboot w Microchip Studio 7. Były jakieś dziwne problemy, ale udało się wgrać program bootloadera do procesora. Musiałem każdą solucję ręcznie przeładowywać aby można było skompilować projekt, ponadto był błąd (a w zasadzie 3 takie same dla różnych procesorów dotyczące baudcheck więc zakomentowałem te linie w pliku make:
Kod: C / C++
Zmieniłem pin diody, która po zaprogramowaniu procesora szczęśliwie mruga w koło (3 mrugnięcia, chwila pauzy i tak w nieskończoność).
Ustawiłem fusebity (aktualnie BOOTSZ zgodnie z rozmiarem, po integracji obu w/w programów zmienię na 2024 słowa, gdyż sama obsługa pobierania plików przez HTTP GET zajmuje mi 3kB i nie mam pomysłu na zmniejszenie jej rozmiaru - nie potrafię):
Mam pytanie, czy przypadkiem dioda nie powinna inaczej się zachowywać? Tzn mrugnąć zadaną ilość razy (wg opisu na stronie 3, choć zmieniałem tą ilość w programie to nadal miga 3 razy) a potem czekać na rozkazy/ dane na porcie?
Czym mogę wysłać testowo flash do optiboot'a? Pewnie przez samo środowisko Arduino a to raczej odpada, może przez opcje "Send File" w br@y++ terminal (tylko, że się program wysypuje). Docelowo to serwer będzie wysyłał plik ale muszę po pierwsze wiedzieć jak ten plik wysłać i jakie polecenia dołożyć. Wątpię by pliki, np chaucer16k.ino wysyłające po prostu dane bez żadnych rozkazów ani innych operacji służyły do ładowania flasha, mylę się?
Dodano po 17 [minuty]:
Doczytałem, wychodzi na to, że za pomocą avrdude (stk500) powinno udać się zaprogramować procesor, sprawdzę niedługo. Tylko co z tą diodą, wygląda jakby program w kółko się resetował.
