이것 저것../ProgramGuide

Eclipse기반 크로스플랫폼 개발 환경

알 수 없는 사용자 2009. 4. 10. 11:56
Eclipse 기반 임베디드 리눅스 크로스 플랫폼 개발 환경을 소개한다.

소개

Eclipse 기반 임베디드 리눅스 크로스 플랫폼 개발 환경을 소개한다.

개발 환경 버젼 정보

Subclipse로 프로젝트 불러오기

Repository를 추가

  • Perspective 를 SVN으로 변경합니다.
  • SVN Repository 창에서 마우스 오른쪽 버튼 -> [New] -> [Repository Location ...]
  • URL에 http://svn.emstone.com/svn/at204x 입력

Project Check out

  • 프로젝트 선정 후 마우스 우버튼 클릭합니다. 여기서는 at204x-1.6-stable를 선정
  • "Check out as a project configured using the New Project Wizard"를 선택한 후 Finish 버튼을 클릭합니다.
    • C Project로 설정하기 위해서 Project Wizard 사용
eclipse/crossplatform/2007-02-02.7368576235/image

Project Type 지정

Managed Make C BUILD:

프로젝트에 Makefile이 없는 경우.

Standard Make C BUILD:

project에 Makefile이 있는 경우. 
  • Makefile이 존재하므로 'Standard Make C BUILD'를 선택
eclipse/crossplatform/2007-02-02.7487207363/image

PATH 환경 변수에 툴체인의 위치를 지정

  • 여기서는 /usr/local/arm-linux/bin
  • PATH에 크로스 툴체인의 위치가 반드시 지정되어야 합니다.
eclipse/crossplatform/2007-02-02.7990567966/image

Eclipse에서 minicom 사용하기

External tool로 minicom 추가

  • 메뉴바에서 [Run]-> [External tools] -> [External tools..]을 클릭
  • 아래 화면이 나오면은 다음 값들을 입력한 후 저장하고 나온다.
  • Location: /usr/bin/gnome-terminal
  • Arguments: -e "/usr/bin/minicom"
eclipse/crossplatform/2007-02-01.8147644080/image
  • 저장하고 나오면은 [Run]-> [External tools] 에서 minicom 메뉴를 볼수 있다.

Remote Debugging - NT Application 디버깅

Remote Debugging 이란

eclipse/crossplatform/2007-02-02.9328613704/image
임베디드 시스템을 호스트에서 디버깅 하는 것을 말합니다. Remote Debugging을 하기 위해 필요한 것들
  • 호스트(Development System)에서 동작하는 debugger
  • 타켓에서 동작하는 통신 프로그램. 이 통신 프로그램은 호스트의 디버거와 통신을 합니다.
타겟의 OS가 리눅스이고 호스트의 디버거가 gdb인 경우
  • 타겟에선 gdbserver가 통신 프로그램입니다. gdbserver는 리눅스 운영체제 위에서 동작합니다.
  • 호스트에서는 gdb 프로그램을 동작
  • 그림에서는 Ethernet으로 연결되어 있지만 시리얼 통신을 이용할 수 도 있습니다.

arm-linux-gdb와 gdbserver 준비

다음은 리모트 디버깅에 필요한 프로그램들을 컴파일 하고 설치 합니다.

arm-linux-gdb 컴파일
  • gdb-6.6 컴파일.
./configure --target=arm-linux --prefix=/usr/local/arm-linux
make install
  • gdb-6.3 컴파일 중 에러 메세지가 발생하여 gdb-6.6으로 컴파일
../../../gdb-6.3/sim/arm/iwmmxt.c: In function ‘WMAC’:
../../../gdb-6.3/sim/arm/iwmmxt.c:2117: error: invalid lvalue in assignment
gdbserver 컴파일
gdb-6.6/gdb/gdbserver/configure --host=arm-linux
make

컴파일 후 타겟에 올라가는 램디스크에 적재

리모트 디버깅 실행

Target (NT) - gdbserver 실행
  • NT에 로그인 후, 다음과 같이 명령어 입력.
gdbserver  [host_ip]:[port] 디버깅_프로그램
Host (PC) - arm-linux-gdb 실행

arm-linux-gdb 실행후, 리모트 디버깅 명령어 입력.

arm-linux-gdb -s [심볼 파일]
target remote [target_ip]:port

ECLOX - 문서화 도구

  • Version 0.5.5
  • 문서화 도구로 Doxygen 설정파일인 Doxyfile 파일을 GUI로 설정할 수 있게 해준다. 단, Doxyfile을 생성해주지는 않는다.

설치

  • [Help] -> [Software Updates ]-> [Find and Install] -> "Search for new features to Install" 선택

  • New Remote Site 클릭 후 아래 사이트 추가

    http://download.gna.org/eclox/update

사용법

Doxyfile을 더블 클릭한 후 화면.

eclipse/crossplatform/2007-02-01.2402764972/image

문제점

  • sudo 명령을 포함하고 있는 Makefile의 target은 error 발생
  • Remote Debugging 시 ARM 소스 코드가 disassemble 되지 않음.
  • Shared Library 함수 호출된 후부터는 Debugger가 소스코드 위치를 찾지 못함.

TODO List

  • Remote Debug를 Eclipse에서 이용하는 방법
  • CDT Project Type을 추가 하여 좀 더 쉽고, 자동화된 환경 제공 필요.
  • Target 시스템의 파일을 이클립스에서 관리하는 기능
by myungo 최종 수정일: 2007-02-02 17:10

출처 : Tong - kangdydtjs님의 C,C++통