AVR Studio 와 WINAVR 의만남 2009.6.15 1
1. 소개 AVR studio는 Atmel사에서무료로배포하고있는 AVR 통합개발환경입니다. 무료이지만강력하고편리한환경을제공합니다. 시뮬레이션기능, 에뮬레이터와접속하여실제 Target을디버깅할수있는에뮬레이터기능및 ISP 프로그래밍기능관리가가능합니다. 다운로드는 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 에서가능하며, 현재 4.16버전이며계속버전업됩니다. WINAVR은 GCC 컴파일러에서파생된이름인데, AVR 무료 C 컴파일러입니다. avr-gcc( 컴파일러 ), avr-gcc( 컴파일러라이브러리 ), avr-as( 어셈블러 ), avrdude( 프로그래머유틸리티 ), avarice(jtag ICE 인터페이스 ), avr-gdb( 디버거 ), programmers notepad( 에디터 ) 등으로구성됩니다. http://winavr.sourceforge.net/ 가공식홈페이지이며, http://sourceforge.net/projects/winavr/ 에서다운로드받으시면 됩니다. 현재 WinAVR-20090313 버전이네요. 설치를시작하면아래와같이시작되는데한글언어도선택가능합니다. 왼쪽의 Programmers Notepad 가통합개발환경인데상용개발환경에익숙한사람은무언가좀시골스러운맛이납니다. 계속되는예제에서는이환경을사용하지않고 AVR Studio 를사용하겠습니다. 외국웹에서는 WinAVR (pronounced "whenever") 라고발음하라고하는데, 난왜자꾸 WIN AVR로발음되지? 2
2. 사용 AVR Studio와 WINAVR 설치가완료되면, 왼쪽과같이이제 AVR GCC 메뉴가선택될수있습니다. 간단한 LED 구동예제부터시작해봅니다 JTAG 에뮬레이터없이동작시키기위해서 AVR Simulator 를선택하고 가장많이사용하는 ATmega128 를선택합니다. Finish 를눌러마칩니다. 3
예제작성시작처음에는소스내용이비어있네요. 이곳에내용을채우면서예제가시작됩니다. 4
부트로더설치 : ISP 를장만하는것도좀번거로우므로부트로더를심어서 ISP 없이프로그램을다운로드해보도록합니다. http://www.microsyl.com/ 웹에서 Megaload 를설치하여사용합니다. 상세한내용은 AVR 부트로더쉽게사용하기 자료를참조바랍니다. 부트로더를설치하는방법은여러가지가있는데, 여기에서는제가많이사용하는 CodeVisionAVR의프로그래머를이용해보았습니다. MegaLoad 프로그램 플래시에프로그램될파일 부트프로그램 : BOOTLOAD.HEX 사용 (Atmega128, 16MHz, 57600bps 로작업됨 ) 중요한점은이부트프로그램과퓨즈비트가잘설정되어야한다는점입니다. USB 인식포트 ( 컴퓨터마다다름 ) 현재 57600bps로되어있음 ( 변경은가능하지만속도괜찮음 ) 진행상태 사용법 : 매우쉽습니다. HEX 파일지정후, 리세트버튼만한번눌러주면자동진행 5
체리보드회로도 : http://cafe.naver.com/arduinostory.cafe 네이버카페매니저인나그네님이제작한체리보드원본회로를보기좋게다시배치해보았음. 6
체리보드회로도 7
체리보드회로도 8
체리보드회로도 9
체리보드외형 체리보드세트구성도 체리보드 + LCD(16 문자 2 줄 ) + 5V,2A 어댑터 + 리모콘 + USB 케이블 BOX 에포장 체리보드앞면 체리보드뒷면 ( 시계칩용배터리부착 ) 10
체리보드부품구성 체리보드는아두이노스토리카페매니저로부터공급받았으며, 기초예제는카페의자료를활용하였습니다. http://cafe.naver.com/arduinostory.cafe 의 AVR 강좌부참조하시기바라며, 친절한워리님및다름분들이질문에대답해줄것입니다. 이제카페활동도좀해보시기를.. 11
예제구성예제구성 : ex01_led 부터순차진행하시면됩니다. 예제에관한상세내용은 http://cafe.naver.com/arduinostory.cafe 참조바랍니다. 삼성리모콘 참조 : 대부분예제는카페의예제내용이며, 제공되는삼성리모콘동작예제는 Ex09a_ir_ss 예가추가되었는데, Lead code 타이밍에차이만있습니다. 12
예제 1 따라해보기첫번째예제에대해서설명해드립니다. 1. 프로그램설치 AVR Studio 설치 : http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 card asp?tool 에서프로그램을다운로드하여설치합니다. WINAVR를 http://sourceforge.net/projects/winavr에서다운로드하여설치합니다. MegaLoad는 http://www.microsyl.com/ 에서다운로드설치합니다. 작업중부트프로그램이손상되면리얼시스 (www.realsys.co.kr ) 해당제품자료실에서다운로드하여설치합니다. 2. AVR Studio 를실행하여예제를불러옵니다. 프로젝트불러오기 새로운프로젝트생성의경우 AVR GCC 를선택하고, 프로젝트이름지정 프로그램빌드 ( 실행 HEX 생성 ) 동작 13
3. AVR Studio 프로젝트옵션설정확인 : 옵션이제대로설정되어있지않은경우, LCD 등이제대로표시되지않는경우가있습니다. Device, Frequency, Optimization 등을적절히설정합니다. 최적화를너무사용하는경우에지연루틴등이사라져서제대로동작되지않는경우가있으므로약간의시행착오를거칠수있습니다. The current levels of optimization are: -O0 No optimization. This is the same as not specifying any optimization. -01 Optimize. Reduces code size and execution time without performing any optimizations that take a great deal of compilation time. -O2 Optimize even more. avr-gcc performs almost all optimizations that don't involve a space-time tradeoff. -O3 Optimize yet more. This level performs all optimizations at -O2 along with -finline-functions and -frename-registers. -Os Optimize for size. Enables all -O2 optimizations that don't increase code size. It also performs further optimizations designed to reduce code size. For more information on optimization, see the 'man' pages for avr-gcc. 14
4. 원하는동작을하도록프로그램소스를수정한후빌드동작을실행합니다. Build 동작 진행상태표시에러가발생하는경우에원인을제거하여에러가발생하지않도록합니다. 15
5. MegaLoad 를실행하여생성된 HEX 파일을불러옵니다.. HEX 파일지정 리세트버튼을눌러주면, 자동으로프로그램쓰고나서자동으로실행됩니다. 통신포트와 bps 를제대로설정해줍니다. 물론 USB 케이블이제대로연결되어있어야합니다. 16