2009. 4. 24. 17:50
[ATmega1128] ATmega128은 Little endian일까 Big endian일까
2009. 4. 24. 17:50 in 공부합시다/임베디드
이를 확인하기 위해 다음과 같은 프로그램을 작성하였다.
소스 코드를 보면 2바이트 int형 데이터를 선언하고(atmega128에서 int형은 2바이트),
1바이트 포인터로 주소값을 저장하였다.
만약, Big endian이라면 0x12가 먼저 출력되고 3초뒤에 0x34가 출력될테고,
Little endian이라면 0x34가 먼저 출력되고 3초뒤에 0x12가 출력될 것 이다.
키트를 연결시킨후 hex파일을 전송 시켜보았다.
여기서 켜지는 것이 0이고, 불이 들어오지 않은 것이 1이다.
위의 사진에서 00110100으로 출력되고 3초뒤의 모습인 아래 사진에서 00010010으로 출력되는 것을 알 수 있다.
즉, 0x34 -> 3초뒤 ->0x12로 출력되는 것이다.
따라서, 0x1234가 34, 12 의 순으로 역순으로 저장되어있기 때문에 Little endian방식으로 메모리에 저장하는 것을 알 수 있다.
소스 코드를 보면 2바이트 int형 데이터를 선언하고(atmega128에서 int형은 2바이트),
1바이트 포인터로 주소값을 저장하였다.
만약, Big endian이라면 0x12가 먼저 출력되고 3초뒤에 0x34가 출력될테고,
Little endian이라면 0x34가 먼저 출력되고 3초뒤에 0x12가 출력될 것 이다.
키트를 연결시킨후 hex파일을 전송 시켜보았다.
여기서 켜지는 것이 0이고, 불이 들어오지 않은 것이 1이다.
위의 사진에서 00110100으로 출력되고 3초뒤의 모습인 아래 사진에서 00010010으로 출력되는 것을 알 수 있다.
즉, 0x34 -> 3초뒤 ->0x12로 출력되는 것이다.
따라서, 0x1234가 34, 12 의 순으로 역순으로 저장되어있기 때문에 Little endian방식으로 메모리에 저장하는 것을 알 수 있다.
'공부합시다 > 임베디드' 카테고리의 다른 글
[프로그램] cygwin 설치법 (0) | 2009.05.26 |
---|---|
[ATmega128] RS232 시리얼 통신 관련 레지스터 정리 (0) | 2009.04.28 |
Volatile 한정자 (0) | 2009.04.23 |
[AVR] DDRA, PORTA를 찾아보자. (1) | 2009.04.23 |
[DK-128] LED 순차적으로 점멸하기 (0) | 2009.04.22 |