2011년 4월 6일 수요일

LPC17xx를 위한 개발 환경 구성하기

* Java Runtime Environment (Eclipse 를 구동하기 위해서 필요함)

 버전이 1.6.0_01이상인지 확인하자
# jave -version

버전이 낮은 경우 Java Runtime Environment (JRE) 를 다시 설치하자

* CodeSourcery Toolchain

 codesoucery.com에 가서 해당 컴퓨터의 시스템에 알맞은 toolchain을 내려받아 설치하자
기본적으로 설치되는 경로는 C:/Program Files/CodeSourcery/Sourcery G++ Lite 로 되어 있는지 확인하자. 그렇지 않을 경우 해당경로를 기억하여 앞으로 설명할 경로를 변경해서 적용하도록하는 것을 염두해두자.

* C/C++ Eclipse IDE

 Eclipse IDE for C/C++ Deverlopers라는 다운로드 항목을 선택하여 내려받고 설치하자.

* Zylin CDT plugin for Eclipse (Eclipse를 통해서 디버깅을 하기위한 plugin)

Eclipse를 통해서 보드와 통신해가면서 디버깅을 수행하기 위해서 필요한 플러그인이다.
내려받은 Eclipse버전에 따라서 Zylin CDT 플러그인이 없을 경우도 있다.

Eclipse의 Help 메뉴 밑에 버전에 따라 다르겠지만 install New Software라는 항목을 선택하자.


"Available Software Sites"라는 문장을 선택하자.


위의 그림과 같이 선택된 4개의 사이트가 추가 되었는지 확인하고 없다면 추가하도록 하자.
그럼 다시 install New Software 다이얼로그 화면으로 되돌아 가서 Work with라고 이름 붙여진 Edit Box에서 --All Available Sites--라는 항목을 선택하고, 사용가능한 Software 항목들이 나열되는 것을 살펴 볼 수 있다.


다음은 현재 설치된 플러그인 항목들이다.


zylin CDT를 설치하기 위해서 Eclipse Update 주소를 http://www.zylin.com/zylincdt 로 변경해야한다. 바뀐것 같다.

* Wiggler 환경 설치하기 (JTAG을 통한 하드웨어 디비깅 장비)

Wiggler라는 프린터 포트에 연결하는 초기의 하드웨어 디버깅 장비를 사용하기 위한 환경설정이다. 요즘은 프린터 포트가 없는 컴퓨터가 많기 때문에 불필요하게 느껴질 수 있지만, 많은 부분이 다른 디버깅 장비 사용에 필요한 부분과 동일하기 때문에 도움이 될 것이다.

OpenOCD 최신버전을 내려받자.

http://openocd.berlios.de/web/ 사이트에 가면 최신 버전의 OpenOCD에 대한 정보를 얻을 수있다. 그리고 사이트의 우측면에 보면 Getting OpenOCD라는 항목, Repository라는 항목을 참고하면 리눅스 시스템의 경우 GIT를 통해 최신버전을 내려 받을 수 있다.

 Windows 시스템의 경우는 다음 사이트에 가면 친절하게 컴파일해서 올려놓은 것을 내려받을 수 있다. http://www.freddiechopin.info/ > Download > Software > OpenOCD 의 경로로 선택하여 들어가면 최신 OpenOCD를 내려받을 수 있다. 그 이외의 arm을 가지고 개발할 때 유용하게 사용할 수 있는 다른 툴들도 내려받을 수 있다.

 Wiggler를 사용하기 위해선 드라이버가 필요하다. OpenOCD가 설치된 디렉토리 밑의 drivers\giveio.zip\install_giveio.bat를 실행하여 Wiggler에 해당하는 드라이버를 설치하자. 참고로 USB 방식을 사용하는 다른 디버거의 경우 libusb-win32_ft2232_driver-100223.zip 드라이버 파일을 설치하자. 리눅스의 경우는 드라이버설치를 따로 해줄 필요는 없다.

디버거를 사용하기 위한 다른 설정들은 Eclipse 환경설정에서 좀더 자세히 다루도록 하자.

* Flash Magic (ISP를 통해서 Flash를 쓰고 읽을 수 있는 프로그램)

FlashMagic은 NXP사에 제조하는 모든 MCU를 ISP방식으로 프로그래밍할 수 있도록 해주는 프로그램이다. LPC17xx의 경우 uart 0번 채널을 통해서 이러한 기능을 사용할 수 있다. 이 기능은 P2[10]/EINT0/NMI 핀을 GND로 묶어 주면 사용할 수 있다. 하지만 주의해야 할 것은 GND에 묶어 두면 계속 ISP 모드로 대기상태가 되기때문에 mcu를 동작시켜주기 위해서 Pull up을 넣어 주어야 한다. 결로은 프로그래밍시 GND로 묶어 주고 프로그램을 실행 시켜 볼때는  pull up을 해주어야 한다. 보통 보드에서 jumper로 연결되어 있어서 jumper를 뽑았다가 끼웠다를 반복하면 된다.

http://www.flashmagictool.com/

flashmagic 기능에 시리얼 포트에서 하드웨어 흐름제어에 사용하는 핀을 리셋과 P2[10]/EINT0/NMI핀에 연결하여 jumper를 사용하지 않고도 편리하게 프로그래밍과 실행을 한번에 수행할 수 있다. 간단한 회로는 다음고 같다. (olimex사의 lpc1766회로에서 따왔음을 밝힌다.)


그리고 두핀의 시차와 세세한 조절은 flashmagic에서 할 수 있다. 편리함을 위해서 약간의 시행착오는 감수 하셔야 할 것입니다.



* lpc17xx.cmsis.driver.library 설정

lpc17xx mcu를 사용하기 위해 필요한 기본적인 c언어 환경, startup 코드, 내부 기능을 사용하기 위한 드라이버 코드, 그리고 예제 코드등 담고 있기 때문에 앞으로 하고자 하는 모든 작업은 이 라이브러리를 사용할 수 있다는 전제 하에서 출발한다. 해당 파일은 nxp 홈페이지의 lpc17xx에 해당하는 support 섹션에서 찾아 볼 수 있다.

http://ics.nxp.com/support/documents/microcontrollers/?scope=LPC1768

이 라이브러리 환경을 설정하는 것은 많이 까다로운데 앞으로 차근차근히 하나씩 알아 보도록하자.

* Eclipse에서 프로젝트 생성하기

우선 작업할 디렉토리는 변의상 D:\workspace\LPC1768 로 한다.


그럼 해당 디렉토리에 프로젝트 파일이 없다면 Welcome 화면이 뜰것이고 그럼 workbench 화면으로 전환하자. 그리고 C/C++ 모드로 상용하기 위해서 Window -> Open Perspective -> Other ...를 선택하고 그 곳에서 C/C++로 선택하자.


새로운 프로젝트를 File -> New  -> Project ...을 통해서 다음과 같이 생성하자.


그리고 Apps라는 이름의 프로젝트를 생성하자.




C Project 타입으로 변경하자.


다음과 같이 C Project 타입의 Apps 프로젝트가 생성된 것을 Project Explore에서 확인 할 수 있다.


그리고 내려받은 lpc17xx.cmsis.driver.library.zip 파일을 다음 경로에 압축해제시키자.

D:\workspace\LPC1768\LPC1700CMSIS_26Jan2011

버전 관리를 위해서 "_26Jan2011"은 임의로 추가하였다.
그럼 library를 생성한 프로젝트에 적용시키기 위해서 Project Explore 탭에서 Apps 프로젝트를 선택하고 오른쪽 버튼 메뉴에서 Import ... 메뉴를 선택하자.


내려받은 library 파일 모음으로부터 프로젝트의 내용을 복사하기 위해서 다음과 같이 설정하자.


원본이 있는 디렉토리를 설정하고 모든 파일을 선택하도록 하자.


그럼 다음과 같은 구조의 Apps 프로젝트가 생성된다.


Apps 프로젝트의 절대경로를 설정하는 부분인 .\makesection\makeconfig 파일의 PROJ_ROOT 부분과 설치된 CodeSourcery의 버전에 따라서 다음과 같이 수정하자. 여기서 사용한 gcc의 버전은 4.4.1이다.

==================================================================================

############################################################
#
# Note:
# Add path of "tools" directory (in this folder)
# to the HEAD of SYSTEM PATH variable
#
############################################################

#PROJ_ROOT =C:/nxpdrv/LPC1700CMSIS
PROJ_ROOT =D:/workspace/LPC1768/Apps
CMCORE_TYPE =CM3
DEVICE =LPC17xx
MANUFACTURE =NXP
TOOL =gnu
DEBUG_MODE =1



GNU_INSTALL_ROOT =C:/Program Files/CodeSourcery/Sourcery G++ Lite
#GNU_VERSION =4.3.3
GNU_VERSION =4.4.1
IAR_INSTALL_ROOT =C:/Program Files/IAR Systems/Embedded Workbench 5.0 Kickstart
KEIL_INSTALL_ROOT =C:/Keil

==================================================================================


외부 Toolchain와 makesection밑의 Tools의 경로인  %PATH%;C:\Program Files\CodeSourcery\Sourcery G++ Lite\bin;D:\workspace\LPC1768\Application\makesection\tools
를 프로젝트의 Environment에 추가하자.


프로젝트의 루트에 있는 Makefile은 전적으로 CMSIS  library 를 사용할 수 있는 *.lib파일을 생성하도록 초점이 맞추어져 있다. 그래서 all로 되어 있는 Build 변수 값을 libs로 바꾸자.


그리고 parser도 다음과 같이 선택하자.


이와 같이 설정되면 CMSIS library 파일이 생성된다.


외부 프로그램을 사용할 수 있도록 해주는 External Tool영역을 설정하자. 이 부분은  FlashMagic와 Serial Termninal 프로그램을 실행할 수 있도록 해주는 설정이다.

Flashmagic 툴 설정하기

Run -> External Tools -> External Tools Configuration ...의 순서로 선택하자.



그리고 Run 메뉴 밑에 해당항목을 추가하기 위해서 External Tool 항목을 체크하자.


Serial Terminal

Serial Terminal도 위와 마찬가지로 실행파일의 위치와 작업 디렉토리, 그리고 External Tool항목에 노출시키도록 설정해 두면 된다.


* 디버깅 스크립트 작성하기

댓글 없음:

댓글 쓰기