Cześć,
Pisząc bootloader dla procesora mega328pb niemal wszyscy jednogłośnie sugerowali aby pobierać pliki *.bin z serwera zamiast *.hex. Ten drugi, czyli hex pobieram poprawnie, wysyłam kawałkami przez port szeregowy do procesora, niestety napotkałem problem w czasie pobierania pliku *.bin. Oczywiście przełączyłem terminal (bry terminal) na tryb hex zamiast ascii by zobaczyć co moduł GSM mi wysyła/ co pobrał z serwera ale wygląda jakby był jakiś problem (pomijając kwestię samego czasu pobierania pliku z serwera czy jego wysyłania kawałkami do terminala z mega opóźnieniami, całość potrafi się wysypać). Doczytałem, że powonieniem w tym celu użyć kodowania base64. A właściwie o co dokładniej chodzi? Mam na serwerze umieścić plik bin zakodowany do base64 a potem co dalej, zdekodować go w tym malutkim programie bootloadera? Dokumentacja SIM868 jedynie wspomina o pobieraniu pliku hex/bin w kontekście FTP (a ja chcę prosto użyć HTTP GET, co już działa dla pliku hex) lub w kontekście SMTP/ email a nic nie mówi o HTTP.
Czego tutaj nie rozumiem? Przecież plik bin to zwykły obraz pamięci jak leci od początku do końca, a skoro procesor jest 8bitowy to znaczy, że każdy znak jest z zakresu bajta (0-0xFF) więc w czym jest problem z pobraniem tego pliku przez HTTP metodą GET? A może to są słowa czyli bitów?
Generalnie stanąłem na rozdrożu, szukać rozwiązania z plikiem *.bin czy poberać jednak *.hex i dekodować go w bootloaderze. Idąc drugą drogą pomyślałem, że można by po stronie serwera wywalić z pliku intel hex wszelkie dane inne poza surowymi danymi (":10010000",....DANE_16_bajtow,CRC") a dalej odebrać przez sim8xx i zapisać kolejen strony pamięci. Czy to dobre rozwiązanie? Czuję, że nie dlatego poszukuję jednak rozwiązania z plikiem bin + http/get.
Pozdrawiam
Karol
Pisząc bootloader dla procesora mega328pb niemal wszyscy jednogłośnie sugerowali aby pobierać pliki *.bin z serwera zamiast *.hex. Ten drugi, czyli hex pobieram poprawnie, wysyłam kawałkami przez port szeregowy do procesora, niestety napotkałem problem w czasie pobierania pliku *.bin. Oczywiście przełączyłem terminal (bry terminal) na tryb hex zamiast ascii by zobaczyć co moduł GSM mi wysyła/ co pobrał z serwera ale wygląda jakby był jakiś problem (pomijając kwestię samego czasu pobierania pliku z serwera czy jego wysyłania kawałkami do terminala z mega opóźnieniami, całość potrafi się wysypać). Doczytałem, że powonieniem w tym celu użyć kodowania base64. A właściwie o co dokładniej chodzi? Mam na serwerze umieścić plik bin zakodowany do base64 a potem co dalej, zdekodować go w tym malutkim programie bootloadera? Dokumentacja SIM868 jedynie wspomina o pobieraniu pliku hex/bin w kontekście FTP (a ja chcę prosto użyć HTTP GET, co już działa dla pliku hex) lub w kontekście SMTP/ email a nic nie mówi o HTTP.
Czego tutaj nie rozumiem? Przecież plik bin to zwykły obraz pamięci jak leci od początku do końca, a skoro procesor jest 8bitowy to znaczy, że każdy znak jest z zakresu bajta (0-0xFF) więc w czym jest problem z pobraniem tego pliku przez HTTP metodą GET? A może to są słowa czyli bitów?
Generalnie stanąłem na rozdrożu, szukać rozwiązania z plikiem *.bin czy poberać jednak *.hex i dekodować go w bootloaderze. Idąc drugą drogą pomyślałem, że można by po stronie serwera wywalić z pliku intel hex wszelkie dane inne poza surowymi danymi (":10010000",....DANE_16_bajtow,CRC") a dalej odebrać przez sim8xx i zapisać kolejen strony pamięci. Czy to dobre rozwiązanie? Czuję, że nie dlatego poszukuję jednak rozwiązania z plikiem bin + http/get.
Pozdrawiam
Karol