Aktyw Forum

Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.

Sprawdź punkty Zarejestruj się

Little i Big Endian w AVR-GCC i Ride C oraz Keli C

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:
Little i Big Endian w AVR-GCC i Ride C oraz Keli C

Postautor: Sławek5 » 30 sty 2006, o 06:59

Witam.
Chcę Was prosić o wytłumaczenie takiej dla mnie niejasności: reprezentacja liczb uint i ulong w pamięci RAM mikroprocesora.
Chodzi mi o kompilatory RIDE C i KEIL C to dla 8051 a dla AVR - AVR-GCC, jaki zapis one używają little-endian, czy big-endian.
A może możecie jakoś obrazowo mi to wytłumaczyć. Jeżeli mam zmienną ulong 4bajtową to jak ta zmienna jest lokowana w pamięci gdzie się znajduje jej LSB oraz MSB.
Wiem, że może to śmieszne pytanie ale ostatnio strasznie sie zamieszałem z tym i i narodziło mi się tyle niejasności że w ońcu nie wiem o co chodzi, może sposób łopatlogiczny z Waszej strony mi pomoże.

Z góry dzięki za wyrozumiałość.

Guru
-
-
Posty:250
Rejestracja:30 cze 2003, o 13:26
Lokalizacja:Kraków

Postautor: Guru » 30 sty 2006, o 08:34

Tak więc w konwencji big-endian najbardziej znaczący bajt ma najmniejszy adres
czyli np. liczba uint 0xce34 zostanie zapisana w pamięci jako:
adres zawartość
00 CE
01 34

liczba ulong 0xde45ca21 zostanie zapisana jako:
adres zawartość
00 de
01 54
02 ca
03 21

w systemach little-endian jest odwrotnie
poczytaj sobie http://pl.wikipedia.org/wiki/Little_endian
Ostatnio zmieniony 30 sty 2006, o 10:25 przez Guru, łącznie zmieniany 1 raz.

Sławek5
-
-
Posty:485
Rejestracja:15 sie 2003, o 16:40
Lokalizacja:Szczecin
Kontaktowanie:

Postautor: Sławek5 » 30 sty 2006, o 10:17

A wiesz może którą z tych stosuje Ride C, Keil C dla 8051 oraz AVR-GCC. nie mogę znaleść informacji o tym.

Guru
-
-
Posty:250
Rejestracja:30 cze 2003, o 13:26
Lokalizacja:Kraków

Postautor: Guru » 30 sty 2006, o 10:24

Teraz nie mogę sprawdzić, ale wydaje mi się że little-endian

Jurek Szczesiul
-
-
Posty:175
Rejestracja:10 paź 2003, o 20:44
Lokalizacja:Białystok
Kontaktowanie:

Postautor: Jurek Szczesiul » 30 sty 2006, o 11:00

Teraz nie mogę sprawdzić, ale wydaje mi się że little-endian
Cześć, avr-gcc na pewno little endian, w tych innych nie wiem.

Pozdrowienia Jurek S.

BTW do Slawek - sprawdź najlepiej w generowanym kodzie asm jak jest
zrealizowana np. instrukcja przypisania wartości takiej wielobajtowej
zmiennej - od razu zobaczysz jak to kompilator ustawia

misq82
-
-
Posty:3
Rejestracja:11 paź 2003, o 10:53
Kontaktowanie:

Postautor: misq82 » 30 sty 2006, o 12:08

Witam,

Jezeli chodzi o kompilator Keil'a to zalezy to od jego wersji. Teraz nie pamietam ale musisz sprawdzic to w pdf'ie od Keil'a (uruchamiany wprost z kompilatora). Tam wszystko jest wytlumaczone.

Pozdrawiam,
misq82

Wróć do „PLD/FPGA i inne zagadnienia techniki cyfrowej”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości