ATmega128의 소개
ATmega128이란 1984년에 창립된 미국의 ATMEL상에서 1997년에 처음 발표한 8비트 제어용 마이크로 프로세서로서 이는 Alf-Egil Bogen과 Vergard Wollan의 진보된 RISC기술을 기반으로 설계되었다고 하여 이것들의 첫 글자를 따서 AVR이라고 명명된 것으로 알려져 있으며, 혹자는 Advanced Virtual RISC의 약어라고 말하기도 한다.
AVR은 프로그램 메모리와 데이터 메모리를 액세스하기 위한 버스를 독립적으로 사용하는 하버드 구조와 파이프라인 처리방식을 기반으로하는 RISC기술을 적용하여 매우 높은 성늘을 발휘한다. 또한 AVR은 이를 ATMEL사의 장점인 플래쉬 메모리 기술과 접목시켜 칩 내에 프로그램 코드용 플래쉬 메모리를 내장하고 여기에 사용자 프로그램을 쉽게 다운로드 할수 있는 ISP방식을 적용하였다. 이러한 장점들 때문에 AVR은 가장 늦게 출시되었음에도 불구하고 그 당시 이미 시장을 상당부분 지배하고 있던 8051시리즈와 PIC시리즈 마이크로 컨트롤러를 능가하는 인기를 단시간내에 얻게 되었다.
ATmega128의 내부구조
1.상태 레지스터
ALU가 가장 최근에 실행한 산술연산 명령의 결과의 상태를 표시하는 레지스터
인터럽트 실행 시 자동으로 PUSH/POP이 되지 않기 때문에 소프트웨어로 처리해야 한다.
2.범용 레지스터 파일
ATmega128은 Register to Register구조로 되어 있으며 누산기가 없으며 32개의 8비트 범용레지스터 R0~R31을 가지고 있다. 32개의 레지스터는 기본적으로 사칙연산 수행이 가능하고 즉치데이터를 사용하는 일부 연산명령은 R16~R31에서만 수행한다.
3. X,Y,Z 레지스터
32개의 범용레지스터 중 R26~R31은 각각 2개씩 합쳐 3쌍의 16비트 레지스터인 X,Y,Z 레지스터로 사용될 수 있다. 주로…(생략)
4.스택포인터
5.Ram Page Z Select Register
6.명령어 실행시간
|
단순히 코드를 쓰고 파일로 저장하는 역할만 하면 되지만 편의성을 위한 다양한 기능들이 있다.
개인적으로 편한 툴을 골라서 사용하면 되며 실제로 다양한 툴들이 나와 있다.
컴파일러는 한마디로 번역기라고 할 수 있는데. 프로그래밍 언어를 번역하여 최종적으로 마이컴에서 구동 가능한 파일로 만드는 것이다. 프리프로세서나 링커 등이 다른 구성으로 되어 있으나 모두 컴파일러라는 하나의 툴로 생각하면 편하다.
에디터와 컴파일러 이외에도 디버거나 다운로더 등등의 툴들이 있으나 IAR, KEIL 등등 지금은 대부분이 통합되어 제공되고 있다. 대부분의 통합 환경은 상용 툴이라서 돈을 지불해야 사용할 수 있으나, 무료로 사용할 수 있는 환경이 제공되고 있다.
Atmel에서는 AVR STUDIO라는 컴파일러를 제공하고 있으나 어셈블리어만을 지원한다.
하지만 GCC라는 무료 C 컴파일러를 이용하여 WinAVR라는 것이 만들어졌고 (AVR을 위한 툴체인) AVR STUDIO에 WinAVR의 GCC컴파일러를 사용할 수 있도록 설정하여 통합 환경을 꾸밀 수 있다. AVR STUDIO는 기본적으로 에디터를 가지고 있고 ISP를 위한 툴을 포함하고 있으니 기본적인 환경은 모두 갖추고 있는 셈이다.
참고자료 (인터넷 및 책)
인터넷
http://smeffect.tistory.com/34
http://toygift7.tistory.com/118
http://cafe.naver.com/8051avr/89
http://blog.naver.com/jbivanleeRedirect=Log&logNo=4xxxxxxxxxxx