오디오 쿠키는 작고 재미있는 오디오 툴들을 제작합니다



OS-X에서 AVR 개발환경 세팅하기

  1. CrossPack-AVR 다운로드

    OS-X에 AVR 개발환경을 갖추기 위한 필수 도구들을 설치한다.
    크로스 팩에 관한 자세한 설명은 사이트 참조~

    Cross Pack으로 이동

  2. CrossPack-AVR 설치와 확인

    이미 설치가 되어있는지 확인해 본다.

    • 터미널 프로그램에서 avrdude 를 실행해 본다.
    • avrdude의 사용법이 나타나면 설치가 이미 설치가 되어 있는 경우다.
    • 그런 명령이 없다고 나타나면 /usr/local 폴더를 살펴본다.
    • /usr/local 혹은 /usr/local/bin 에 Cross-Pack 또는 avrdude 가 없다면 설치가 되어 있지 않은 것이다.

    설치하기

    • Cross-Pack 다운로드 받은 것은 DMZ 파일이니까 실행하면 가상 디스크가 하나 열린다.
    • 들어있는 설치 파일을 실행하여 설치한다.
    • OS-X 10.7 이상 부터는 애플에서 다운로드 받은 것이 아니면 설치 하지 않는다는 메세지를 보인다.
    • Ctrl 키를 누른 채로 클릭해서(우클릭과 같다) “열기”로 실행시키면 설치가 가능하다.
    • 설치 후, 별다른 아이콘이 설치되거나 하지는 않는다. 대부분 커맨드 라인에서 동작하기 때문이다.
    • 위에 설명한 “이미 설치된 항목 확인”을 해본다.
    • 명령 줄에서 실행은 되지 않고 /usr/local 폴더에 Cross-Pack이 보인다면 환경변수를 설정해 주어야 한다.
    • 커맨드 라인에서 "export" 하면 현재의 PATH 상태를 볼 수 있다.
    • PATH 목록에 CrossPack-AVR 이 있는지 확인한다. 없다면 넣어줘야 한다.

    OS X 에 환경변수 추가하기

    • 터미널 명령어 입력 모드에서 실행한다.
    • 				$ cd ~
      				$ ls -la
      			
    • 이렇게 하면 자신의 홈 디렉토리 파일 목록이 나타난다.
    • 여기서 .profile 혹은 .bash_profile 파일이 있는지 확인한다.
    • 있으면 그 파일을 열어서 편집하고 없으면 새로 만든다.
    • 				$ vi .profile
      			
    • .profile 혹은 .bash_profile 안에 다음과 같은 내용을 첨가한다.
    • 				export PATH=$PATH:/usr/local/CrossPack-AVR
      			
    • 다시 부팅을 하거나 커맨드 라인에서 "export PATH=$PATH:/usr/local/CrossPack-AVR"을 실행한다.
    • 물론 화면에서 바뀌는 것은 없다. 하지만 이제 부터는 커맨드 라인에서 avrdude 를 실행하면 메세지가 나타난다.
    • 여기까지 하면 CrossPack-AVR은 제대로 설치된 것이다.
  3. 개발환경 세팅

    프로그래머 이름과 포트 확인

    • AVR 개발을 위한 프로그래머가 어떤 종류인지, 어떤 이름으로 OS-X에 연결되는지를 알아야 한다.
    • 보통은 STK500 이나 그런 비슷한 이름들이 있다.
    • 내가 사용한 것은 AVRISP 라는 이름인데, STK500 호환기종인지 대체로 STK500 이라 선택하면 잘 동작한다.
    • 그리고 이 프로그래머는 USB로 연결하는 프로그래머지만, 실제로는 USB를 시리얼 포트로 사용해 통신하는 프로그래머다.
    • 맥에서는 이 USB 프로그래머가 연결되면 어떤 디바이스로 인식하는지 알아야 한다.
    • /dev 폴더의 목록을 들여다 보면 tty.SLAB_USBtoUART 라는 이름으로 나타났다.
    • 프로그래머를 꽂지 않았을때 없는 이름이 꽂고 나서 나타나면 그 것이 장치의 이름이다.

    샘플 프로젝트 생성하기

    • 샘플 프로젝트를 만들고 확인해 보자.
    • 샘플 프로젝트로 LED를 깜빡이는 프로그램을 작성한다.
    • 여기 예는 ATmega8, 내장 클럭, PD7에 출력하는 것으로 회로를 구성했다.
    • 				$ cd ~
      				$ cd Desktop
      				$ avr-project Demo
      				$ ls -l
      			
    • 여기까지 하면 데스크탑에 Demo 폴더가 생기고, 그 안에 기본적인 프로젝트 파일들이 생성되어 있다.
    • Demo 폴더의 firmware 폴더에 들어가면 실제 작업할 파일들이 보인다.
    • 이제 Makefile을 수정해야 한다.
  4. Makefile 수정하고 샘플 프로젝트 테스트하기

    Makefile 수정하기

    Makefile을 열고 편집한다. 내 경우에는 다음 한 줄만 수정했다. 원본 내용은...

    			#PROGRAMMER = #-c stk500v2 -P avrdoper     <== 이것을 다음 줄로 고쳤다.
    			PROGRAMMER = -c stk500v2 -P /dev/tty.SLAB_USBtoUART
    		

    그래서 정리한 최종은 다음과 같다. 보다시피 나중에 퓨즈비트도 바꿀 수 있고 뭐 셋업과 관련된 것은 모두 여기서 수정한다.

    			DEVICE     = atmega8
    			CLOCK      = 8000000
    			PROGRAMMER = -c stk500v2 -P /dev/tty.SLAB_USBtoUART
    			OBJECTS    = main.o
    			FUSES      = -U hfuse:w:0xd9:m -U lfuse:w:0x24:m
    		

    메인 프로그램 작성

    main.c 파일을 열고 다음과 같이 수정한다. (인클루드 문장의 꺽쇠 괄호 안에 있는 띄어쓰기는 없앤다)

    			#include < avr/io.h >
    			#include < util/delay.h >
    			
    			int main(void)
    			{
    				DDRD = 1 << 7;
    				for(;;) {
    					PORTD ^= 1 << 7;
    					_delay_ms(500);
    				}
    				return 0;
    			}
    		

    컴파일과 롬 라이팅

    • main.c 작성이 끝나면 다음과 같은 순서로 컴파일 하고, 롬 라이팅을 한다.
    • 한 단계라도 에러가 발견되면 에러를 해결하고 다음 단계로 가야 한다.
    • 첫 단계는 클리닝. 첫 번째 컴파일에서는 할 필요 없지만, 습관적으로 컴파일 전에 실행하는 것으로 하자.
    • 					프로젝트 컴파일로 생긴 파일들 삭제
      					$ make clean
      			
    • 다음 단계는 실제 컴파일 하기. 여기서 에러가 발생하지 않으면 롬 라이팅 할 HEX 파일이 만들어진다.
    • 					컴파일 하기
      					$ make
      			
    • 다음 단계는 롬 라이팅 단계. 프로그래머 이름과 OS-X에 연결된 포트 설정이 제대로 되었다면 잘 진행된다.
    • 					$ make flash
      					$ make fuse
      			
    • 참고로, 이 두가지(flash와 fuse)가 어떤 차이가 있는지 모르겠지만, 둘 중 하나만 해도 라이팅이 잘 되었음~
    • 어떤 에러 메세지를 만날지 모르지만... ㅎㅎ 잘 처리 하시길~ 나는 성공했음~ (무책임한 말투)
BOOK | AVR
최종수정 2014.02.18 17:49:05