Plik hex zawiera dane szesnastkowe, intel hex poza tym zawiera dane zgodnie ze standardem:
-znacznik rozpoczynający ":"
- liczba bajtów (dla AVR GCC zwykle widać tam 16 bajtów czyli liczbę "10" hex)
- adres, zwykle widać jak każda kolejna linia jest o 16 bajtów "dalej" umieszczona w pamięci
- dane (czyli te zwykle 16 bajtów). W polu danych widać od razu wszelkie kody ascii znaków używanych w programie no i całą masę pozostałych danych
- CRC
Natomiast z tego co powszechnie się czyta, plik binarny to bezpośredni obraz pamięci jak leci, baj po bajcie. No OK, czyli programator używając pliku HEX musi konwertować wszelkie odebrane bajty danych do postaci binarnej? No a czym zatem jest plik hex? Przecież mają dane szesnastkowe wprawiony programista niemal w locie konwertuje obie połówki (po 4 bity) do postaci binarnej wiec w czym rzecz?
Jak można porównać dwa pliki binarne? W czym je wyświetlić? Jeśli plik otwieram w programie np do programatora CH341 to widzę w zasadzie te same dane jakie widać w wersji hex tego samego pliku odpalonego w notepadzie++
Być może gdzieś się zakręciłem i odpaliłem nie te pliki co trzeba ale wydawało mi się, ze plik bin przekonwertowany https://iamkate.com/code/binary-file-viewer/ miał inną końcówkę niż plik hex (oba z tego samego projektu z AS7).
Jak fizycznie wyglądają dane pliku binarnego? Przecież gdyby to był system dwójkowy (bin) to były by w pliku same zera i jedynki, prawda?
Czego tu nie rozumiem? Chcę napisać bootloader, który pobierze sobie plik z firmware z serwera. Plik HEX pobieram a z plikiem bin mam "dziwne" problemy ale może po prostu czegoś banalnego nie rozumiem.
-znacznik rozpoczynający ":"
- liczba bajtów (dla AVR GCC zwykle widać tam 16 bajtów czyli liczbę "10" hex)
- adres, zwykle widać jak każda kolejna linia jest o 16 bajtów "dalej" umieszczona w pamięci
- dane (czyli te zwykle 16 bajtów). W polu danych widać od razu wszelkie kody ascii znaków używanych w programie no i całą masę pozostałych danych
- CRC
Natomiast z tego co powszechnie się czyta, plik binarny to bezpośredni obraz pamięci jak leci, baj po bajcie. No OK, czyli programator używając pliku HEX musi konwertować wszelkie odebrane bajty danych do postaci binarnej? No a czym zatem jest plik hex? Przecież mają dane szesnastkowe wprawiony programista niemal w locie konwertuje obie połówki (po 4 bity) do postaci binarnej wiec w czym rzecz?
Jak można porównać dwa pliki binarne? W czym je wyświetlić? Jeśli plik otwieram w programie np do programatora CH341 to widzę w zasadzie te same dane jakie widać w wersji hex tego samego pliku odpalonego w notepadzie++
Być może gdzieś się zakręciłem i odpaliłem nie te pliki co trzeba ale wydawało mi się, ze plik bin przekonwertowany https://iamkate.com/code/binary-file-viewer/ miał inną końcówkę niż plik hex (oba z tego samego projektu z AS7).
Jak fizycznie wyglądają dane pliku binarnego? Przecież gdyby to był system dwójkowy (bin) to były by w pliku same zera i jedynki, prawda?
Czego tu nie rozumiem? Chcę napisać bootloader, który pobierze sobie plik z firmware z serwera. Plik HEX pobieram a z plikiem bin mam "dziwne" problemy ale może po prostu czegoś banalnego nie rozumiem.