Aktywne Wpisy

noipmezc +7
znacie jakies fajne ciekawostki?

majkel88 +7
Najlepsze argumenty przeciwko braniu hipoteki:
- A CO JAK PRZYJDZIE KRYZYS I STRACISZ PRACE???
- A CO JAK ZACHORUJESZ???
Rozumiem, że na wynajmie w wyżej wymienionych przypadkach pan rentier pozwoli wam mieszkać za darmo i może jeszcze dopłaci? ( ͡° ͜ʖ ͡°)
#nieruchomosci #kredythipoteczny
- A CO JAK PRZYJDZIE KRYZYS I STRACISZ PRACE???
- A CO JAK ZACHORUJESZ???
Rozumiem, że na wynajmie w wyżej wymienionych przypadkach pan rentier pozwoli wam mieszkać za darmo i może jeszcze dopłaci? ( ͡° ͜ʖ ͡°)
#nieruchomosci #kredythipoteczny





Dostaje plik .hex i muszę go przesłać do urządzenia i tu pojawia się problem bo plik nie jest jednolity i ma wcięcia, ogarnąłem już standard w jakim to jest generowane ( Intel Hex - wikipedia ) ale jedna rzecz nie daje mi spokoju, dlaczego są zastosowane takie wcięcia skoro można było by dane dopełnić do poprzednich wierszy. Ktoś potrafi mi powiedzieć dlaczego tak to jest zapisane? takich wcięć jest kilka w całym kodzie hex
Ps. To jest fragment firmware urządzenia.
#arduino #elektronika #majsterkowanie #embedded
@bi-tek: producenci stosuja rozne tricki aby utrudnic wgranie nieautoryzowanego pliku
Choćby ostatni wcięty. 0x04 bajty od adresu 0x0724. Następny wiersz to już 0x10 bajtów od adresu 0x0728. Pełna ciągłość.
@pietryna123: Też to zaobserwowałem po wczytaniu do programu do wgrywania kodu na STM że jest to ciągłe i stąd to pytanie dlaczego tak to jest zapisane.
@a231: no właśnie nie, tam nie ma żadnych dopełnień zerami
@bi-tek: Odwrotnie, jak po danych są zera to ich nie zapisujemy w hexie - bo po co je pisać skoro by default powinno być zero.
@bi-tek: sprawdź po adresach - czy jest ciągłe, tzn czy początkowy adres danej linii + liczba bajtów do zapisania daje ciągłość z początkowym adresem następnej linii. Może nie być, a nawet jak będzie - to każdy fragment to np jakaś skompilowana procedura/funkcja skompilowana z jakieś bibloteki osobno, i zlinkowane po prostu, a optymalizator tak powrzucał - gdy chcesz
https://gcc.gnu.org/onlinedocs/gcc-3.3/gcc/Type-Attributes.html
W tych wierszach masz po prostu mniej danych niż typowo po 16 bajtów. Jest to zgodne ze standardem zapisu.
Ponadto tak jak piszą wyżej - to układa w pamięci linker i można na przykład w AVRach dokleić bootloader na końcu, albo zdefiniować sobie w kodzie własny
@QBA__: Wyrównanie. Na maszynach o magistrali danych np. 32 bity ale mogącej adresować pojedyncze bajty możesz zapisać uint32 i uint8 w tym samym miejscu, jeśli np. mają wartość zero ale z jakiegoś powodu jedno zero powinno być bajtem a nie longiem.