'Cross Compile'에 해당되는 글 1건

  1. 2009.04.10 Eclipse기반 크로스플랫폼 개발 환경
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++통


Posted by 알 수 없는 사용자
이전버튼 1 이전버튼