P3ndz3l3k napisał(a):
A w takim pliku binarnym te same dane jw. Będą ułożone tak?:
0000 1111 1111 0000 1000 0110 0110 1110
I teraz pytanie w takim razie jaki jest układ czy jest jakiś standard bo przecież są ci Indianie
Motorola ma inaczej i Intel ma inaczej.
Czy dane zawsze zaczynają się on najmłodszego adresu do najstarszego?
Troszkę może sam sobie tworzysz problem w głowie myśląc o tym pliku binarnym. O jakich ty tu mówisz indianach czy motorolach, albo uintach16 czy 32 ?

co to ma za znaczenie? No jakie ?
Zrozum plik to plik, to tak jak worek do którego wrzucasz kartofle

Jak masz pamięć flasch to przecież masz po kolei adresy od 0 do iluś tam ... Tu nie ma się w ogóle nawet nad czym zastanawiać

Wrzucasz do pliku po kolei bajty i nawet nie wiem po co ty rozpisujesz je sobie bitowo ? jakie to ma znaczenie? Po prostu pierwszy bajt w pliku to pierwszy bajt we Flasch , drugi bajt w pliku to drugi bajt we Flasch ................ i ostatni bajt w pliku to ostatni bajt we Flash

P3ndz3l3k napisał(a):
I jeszcze kwestia tego czy na końcu tego pliku jest jakiś znacznik końca?
eeeeś

a po co jakiś znacznik ? Znacznik to by był potrzebny jakbyś w pliku miał zapisanych co najmniej dwa wsady ciurkiem albo więcej - ale kto tak robi ? i po co? No ostatni bajt w pliku to ostatni kartofel w worku

więcej kartofli nie ma - więc po co znacznik?

Toż kończy się plik i koniec - nie ma więcej w nim bajtów.
P3ndz3l3k napisał(a):
Widzisz Mirku ty co jakiś czas w poradnikach wspominasz o komunikacji binarnej a tak naprawdę jak dla mnie powinien powstać jakiś odrębny poradnik jak się posługiwać takimi plikami właśnie jak one wyglądają wewnątrz. Można by także pokazać zalety i wady w porównaniu do .hex.
Tak jak pisałem wyżej - to mam nadzieję, że teraz już do końca zrozumiałeś co to jest zapis binarny w pliku

mówiłem oczywiście o zapisie binarnym jakiegoś wsadu z FLASH a nie ogólnie o plikach binarnych.
Poza tym nie ma żadnych zalet czy wad plików BIN i HEX ... Różnica jest w zapisie i odczycie takich plików a zawsze i tak na końcu wrzucane są do procka bajty do FLASH dokładnie tak samo jak są ułożone w BIN. Natomiast taki avrdude zanim wyśle bajty do procka do Flasch z pliku HEX to najpierw musi go zdekodować z tego sposobu jaki widziałeś na wikipedii. Krótko mówiąc plik HEX zawsze zajmuje dużo więcej miejsca na dysku niż BIN.
P3ndz3l3k napisał(a):
Jak w locie konwertować np. takie pliki .hex na tablicę w mikrokontrolerze.
Nikt tego nie robi w mikrokontrolerze panie kochany

to robi się już na PC i podałem ci wyżej przykład żebyś lepiej jakby zrozumiał w czym rzecz. W naszym przypadku robi to AVRDUDE, albo mój program MkBootloader itp

P3ndz3l3k napisał(a):
Pamiętam z twoich poradników i z forum, że nie zalecasz używania komunikacji binarnej, lepiej dane przed wysłaniem przekonwertować na ASCII bo później w procku łatwiej jest je obrobić.
Panie kochany - panie kochany - właśnie może dlatego, że troszkę mieszasz pojęcia to stąd te pytania - ale dobrze - o to CHODZI! Warto zrozumieć pewne zagadnienia do końca a zatem
PRZEDE WSZYSTKIM jak mówię w poradnikach o komunikacji binarnej i ASCII to proszę - zrozum i zapamiętaj że chodzi tu zawsze o komunikację za pomocą różnych magistral jak UART/RS232/I2C/ SPI itp ..... Chodzi o transfer danych, różnych ilości danych ....
A ty sobie włączyłeś w to nagle pliki BIN i HEX które rozpatrujemy jako wsady do procków i są one w mega prosty sposób obsługiwane przez różnego rodzaju oprogramowanie na PC a nie w prockach. Tzn plik BIN prościej się obsługuje bo programowo np taki MkBootloader bierze sobie po kolei bajty od początku do końca pliku, a w przypadku HEX musi sobie najpierw rozkodować zapis HEX żeby mieć po kolei wartości tych bajtów do wrzucenia do procka

P3ndz3l3k napisał(a):
Jest sporo opisów na stronach obcojęzycznych no i polskich, jednak nawet te polskie opisy są mało zrozumiałe w porównaniu do twojego sposobu przekazywania wiedzy.
Przykładowo twój poradnik o maskowaniu bitów był rewelacyjny jak i wszystkie inne poradniki.
Dziękuję - ale zobacz że tu to już chodzi bardziej o programowanie na PC i przyznam że troszkę tych tematów już liznąłem w poradnikach o Delphi

wprawdzie pokazywałem tylko prostą obsługę plików tekstowych (ASCII) właśnie

ale tu tak samo - łatwiej się obsługuje na PC pliki tekstowe niż binarne jak chodzi o manipulacje na tych plikach czyli ich zapis/odczyt czy przeszukiwanie plików.
Oczywiście z plikami też możemy mieć do czynienia na prockach - no ale to np wtedy gdy korzystamy z karty pamięci SD ... choć nie tylko, bo co za problem, przesłać jakiś plik z PC i zapisać go w pamięci RAM czy FLASCH procka - np jakąś grafikę do wyświetlacza czy dowolne inne rzeczy.
P3ndz3l3k napisał(a):
I o ile wykorzystanie pliku .hex który jest jakimś standardem nie jest problemem to już pliki binarne nie wiadomo za bardzo jak traktować bo chyba nie jest to ustandaryzowane albo się mylę.
Mam nadzieję, że po moim opisie już wiesz że tu nie ma żadnych standardów dla takich wsadów bo są niepotrzebne po prostu

przypominam hasłowo "bajty w pliku są jak kartofle w worku" tyle że bajty są ułożone po kolei

i to wszystko - tu w ogóle ale to w ogóle nie ma się nad czym zastanawiać.
P3ndz3l3k napisał(a):
Po odczytaniu zawartości pamięci takiego EEPROM-a można zapisać w pliku np. bin jednak nie wiadomo jak są te dane ułożone, prawdopodobnie zależnie od autora programu.
Nie - są ułożone ZAWSZE tak samo czyli pierwszy bajt wsadu to pierwszy bajt w pamięci, drugi bajt wsadu BIN to drugi bajt pamięci i tak dalej aż do ostatniego - no mam nadzieję, że teraz to WIDZISZ już

P3ndz3l3k napisał(a):
nając życie temat tego pliku jest banalnie prosty i po prostu dane są zapisane po kolei bajt po bajcie nieistotne czy jest to Motorola czy Intel.
jaaaaaa

no to po co ja się tyle rozpisałem a ty po co zadałeś tyle pytań odnośnie BIN skoro wiesz jak jest

P3ndz3l3k napisał(a):
Finalnie w zależności od tego jeśli potrzebujemy jakoś zinterpretować te dane z takiego pliku musimy wiedzieć dla jakiego systemu są one przeznaczone czyli właśnie Motorola czy Intel.
Nie w przypadku BIN nie jest ważny żaden system - żadna motorola czy intel - pamiętaj kartofle - worek

Na dnie worka masz adresy zerowe na górze worka końcowe adresy pamięci flash
