Witam
Widzę że w nowym AVR Studio 5 pojawiło się nowe GCC i nowy pgmspace.h. Pojawiły się nowe definicje zmiennych np prog_int32_t zamiast prog_long.
Potrzebuje liczyć crc32 ciągu więc najbardziej optymalnie było by skorzystać z fast crc32. Metoda ta wymaga tablicy którą najlepiej umieścić w pamięci programu zamiast RAM.
Deklaruję tablicę prog_int32_t tabcrc[]..... i pojawiły się schody:
1: Funkcja pgm_get_far_address(tabcrc) zwraca mi adres gdzie znajduję się najmłodszy bajt z słowa 4 bitowego, czyli jak dana 32 bitowa ma postać 0xAABBCCDD to funkcja pgm_get_far_address zwraca mi adres bajtu "DD" i później trzeba zawartość tablicy składać w całość:
czy da się prościej odczytać tą daną 32 bitową?
Problem 2.
Funkcję liczaczącą CRC32 (zarówno metoda z pętlą jak i tablicą) znalezione na tu
Link jako parametr wymagają podania innego CRC np 0xFFFFFFFF
Czy któś mógłby mi wyjaśnić o co chodzi ponieważ licząc CRC32 ciągu "1234567890AABBCD" ja uzyskuje CRC32:763DE84C to jest zupełnie inne niż to co jest obliczane na
http://www.lammertbies.nl/comm/info/crc-calculation.html
lub
http://www.zorc.breitbandkatze.de/crc.html
Widzę że w nowym AVR Studio 5 pojawiło się nowe GCC i nowy pgmspace.h. Pojawiły się nowe definicje zmiennych np prog_int32_t zamiast prog_long.
Potrzebuje liczyć crc32 ciągu więc najbardziej optymalnie było by skorzystać z fast crc32. Metoda ta wymaga tablicy którą najlepiej umieścić w pamięci programu zamiast RAM.
Deklaruję tablicę prog_int32_t tabcrc[]..... i pojawiły się schody:
1: Funkcja pgm_get_far_address(tabcrc) zwraca mi adres gdzie znajduję się najmłodszy bajt z słowa 4 bitowego, czyli jak dana 32 bitowa ma postać 0xAABBCCDD to funkcja pgm_get_far_address zwraca mi adres bajtu "DD" i później trzeba zawartość tablicy składać w całość:
Kod: C / C++
czy da się prościej odczytać tą daną 32 bitową?
Problem 2.
Funkcję liczaczącą CRC32 (zarówno metoda z pętlą jak i tablicą) znalezione na tu
Link jako parametr wymagają podania innego CRC np 0xFFFFFFFF
Kod: C / C++
Czy któś mógłby mi wyjaśnić o co chodzi ponieważ licząc CRC32 ciągu "1234567890AABBCD" ja uzyskuje CRC32:763DE84C to jest zupełnie inne niż to co jest obliczane na
http://www.lammertbies.nl/comm/info/crc-calculation.html
lub
http://www.zorc.breitbandkatze.de/crc.html