<서론>
아두이노 1.0을 바탕으로 윈도우 OS 이클립스에서 아두이노 (AVR) 코딩할 수 있는 환경을 구축하는 방법을 알아보고자 한다.
<본론>
1. 가장 먼저 “아두이노 개발툴(pde)”를 설치한다.
나는 1.0 버전으로 설치했다.
2. make
mingw 에서 나온 윈도우용 make 유틸리티를 설치한다.
나는 5.1.5 버전을 사용중이다.
http://sourceforge.net/projects/mingw/files/OldFiles/MinGW%205.1.4/MinGW-5.1.4.exe/download
custom 지정을 잘한다. make을 반드시 설치 목록에 넣어줘야 한다.
설치된 mingw/bin 디렉토리를 path에 추가한다.
mingw32-make.exe 파일을 make.exe 파일로 하나 복사해서 사용한다.
정상적으로 동작하는지 확인한다.
make 유틸리티가 윈도우 path에 등록되어 있지 않으면 이클립스상에서 컴파일은 되지 않는다.
**** Build of configuration 328P_16MHz for project arduino-test **** make all Error: Cannot run program "make" (in directory "G:\android\workspace\arduino-test\328P_16MHz"): CreateProcess error=2, ??d?? Æ???; ?; ¼? ¾ø **** Build Finished **** |
3. avr Eclipse 플러그인을 설치한다.
http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download 를 참조한다.
플러그인 update 주소는 다음과 같다.
http://avr-eclipse.sourceforge.net/updatesite
(출처 : http://avr-eclipse.sourceforge.net/wiki/index.php/Plugin_Download)
4. Preferneces 설정의 AVR Path를 변경
체인툴의 path를 설정해야 한다.
path source는 custom으로 하고 설치된 아두이노의 디렉토리를 지정한다.
위치 지정은 다음과 같다.
AVG-GCC : hardware\tools\avr\bin
GNU make : hardware\tools\avr\utils\bin
AVR Header Files : hardware\tools\avr\avr\include
AVRDude : hardware\tools\avr\bin
c/c++ / build item에서 Build all configuration in each project를 check on 한다.
5. 프로젝트 환경
먼저 c++ 프로젝트를 생성한다.
소스 디렉토리를 생성한다.
프로젝트의 properties를 설정한다. 내 꺼는 arduino uno이다. MCU type은 Atmgega328P , clock은 16000000로 지정한다.
Properties 중 c/c++ build 설정의 “Manage Configuration” 설정을 선택한다.
아래와 같은 팝업창에서 “New”버튼을 선택한다.
328P_16MHz 라는 이름으로 새로운 설정을 추가한다.
OK 버튼을 누르면, 아까 봤던 팝업창이 뜨는데 Set Avice 버튼을 선택한다. 나머지 설정은 다 지운다.
AVR tab를 선택하고, 항목에서 Enable시킨다.
C/C++ Build –> Settings 설정에서 Configuration 설정에서 328P_16MHz를 선택한다.
Settings 아이템의 Additional Tools in Toolchain에서 아래 두 옵션만 check on 한다. (우선은 컴파일하고 바이너리 이미지까지만 만드는 것까지이다.)
”Generate HEX file for flash memroy”, “Print Size”,
Tool Settings 밑의 AVR Compiler /Debugging을 선택하고, 정보를 확인한다.
AVR Compiler의 Optimization 설정을 다음과 같이 수정한다.
-Os, 체크박스를 모두 off, "-ffunction-sections -fdata-sections”을 optimization flag로 설정한다.
C/C++ Build/Settings 탭의 Tool Settings/AVR Compiler/Language Standard 화면의 옵션을 모두 check off 한다.
AVR Compiler의 Directories 설정의 플러스 아이콘을 선택한다.
AVR Compiler 의 Directories에 아래 디렉토리를 추가한다. header 파일과 구현 파일들이다.
"G:\Arduino-package\arduino-1.0\hardware\arduino\cores\arduino" : 아두이노 h 및 cpp
"G:\Arduino-package\arduino-1.0\hardware\arduino\variants\standard" : pins_arduino.h
AVR Compiler 처럼 AVR C++ Compiler 부분도 똑같이 수정해야 한다. (사실 cpp로 동작하기 때문에 c++ compiler 설정을 더 잘해야 한다.)
AVR C++ Compiler/Debugging 설정을 잘 되었는지 확인한다.
Optimization 설정도 똑같이 한다.
Language Standard도 똑같이 설정한다.
Directories도 동일하게 설정한다.
6. 링커 설정
AVR C++ Linker에서 다음과 같이 설정한다.
Command는 avr-gcc,
Command line pattern은 “ ${COMMAND} -s -Os ${OUTPUT_FLAG}${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} -lm ${FLAGS}”으로 지정한다. (복사하면서 유니코드가 들어갈 수 있어 빌드 실패가 일어날 수 있음)
그리고, Library 설정은 특별히 하지 않는다.
7. 아두이노 디렉토리를 import한다.
Import/Filesystem 을 이용해서 Include된 디렉토리를 참조하게 한다. 이 파일들로 인해서 컴파일 시 참조가 되게 한다.
8. 컴파일
main.cpp 파일에 있는 setup(), loop()를 주석을 제거하거나 exmple 소스 하나를 구현해본다.
#include <Arduino.h>
void loop() { int main(void) #if defined(USBCON) |
잘 생각해보면, 아두이노 개발 툴 에서 setup(), loop()를 구현한 코드에서 main.cpp 와 링킹하면서 바이너리가 만들어지는 모델이라는 점을 쉽게 이해할 수 있다.
컴파일을 하려면 툴바에 있는 망치를 선택한다.
컴파일하면, 다음과 같이 잘 되는지 확인가능 하다. 빌드 과정을 보면서 지금까지 셋팅한 정보로 컴파일되는지 확인한다.
make all Program: 20130 bytes (61.4% Full) Data: 544 bytes (26.6% Full)
**** Build Finished **** |
Navigator 또는 Project Explorer로 보면, 아래와 같이 make 파일과 hex, elf 파일이 생성되는지 확인할 수 있다.
이제는 이미지 업로드하는 작업을 한다.
'아두이노' 카테고리의 다른 글
아두이노(arduino)와 연동하는 tmp36 (온도센서) (1) | 2012.01.10 |
---|---|
이클립스(eclipse)에서 avr 코딩해서 아두이노(arduino) 로 이미지 업로드하기 #2 (0) | 2012.01.04 |
avrdude 실행 파일과 avrdude.conf 파일 (0) | 2011.12.30 |
아두이 개발 툴 없이 아두이노(Arduino) 소스 컴파일 해보기 (1) | 2011.12.30 |
아두이노 (arduino) 개발 툴 1.0 소스 분석 (0) | 2011.12.29 |