Eclipse를 이용한 Embedded Linux 응용 프로그램 개발 한국전자통신연구원 임베디드SW연구부 김 태 호 taehokim@etri.re.kr
Eclipse 탄생 배경 개발 지원 도구의 필요성 시장 규모의 제한 각종 도구 통합 필요성 플랫폼 확산에 필요 개발 지원 도구 개발의 어려움 각종 도구 통합 필요성 기능의 중복 개발 기능의 상호 연동
Eclipse 역사 1998 2001 2004 2009 IBM Ottawa Lab. IBM의 도구가 함께 동작하지 않음 OTI (Object Technology Int.) 가 전신 IBM의 도구가 함께 동작하지 않음 2001 Eclipse consortium IBM 기부 2004 Eclipse foundation 2009 약 150 회사/학교 참여 ETRI, MDS 등
Eclipse 의 구성 요소 Eclipse Platform Workbench New Tool Help JFace Standard Widget Toolkit (SWT) New Tool Team Team New Tool JDT , CDT 도 하나의 플러그 인 Workspace Platform Runtime
Eclipse Project 현황 Business Intelligence and Reporting Tools (BIRT) Data Tools Platform Device Software Development Platform (DSDP) Eclipse Project Eclipse Modeling Project Eclipse RT SOA Tools Eclipse Technology Project Tools Project Test and Performance Tools Platform Project Eclipse Web Tools Platform Project Tools Project – CDT (C/C++ Development Tool)
개발 환경 (1) 타겟 시스템 호스트 시스템 빌드 시스템
개발 환경 (2) 타겟 시스템 호스트 시스템
Plug in 설치 Eclipse 환경에서 설치 Help > Install New Software > Work with: > Add Name: CDT Location: http://download.eclipse.org/tools/cdt/releases/galileo 로컬 파일도 가능 Selection Name CDT Main Features Eclipse C/C++ Development Tools Finish
C/C++ Development Toolkit / CDT C/C++ Perspective 기본적으로 로컬 프로그램 개발 지원 Hello World! 프로그램 화면
C/C++ Development Toolkit / CDT 원격 프로그램 개발/실행/디버깅 개발 Host 시스템에서 eclipse 사용 편집 및 컴파일 Target 시스템으로 전송 ftp, NSF 등 이용 Target 시스템에서 실행 Serial terminal, telnet 등 이용하여 shell 상에서 수동 실행 Target 시스템을 통해 디버깅 Serial terminal, telnet 등 이용하여 shell 상에서 gdbserver 수동 실행
Debug / CDT Target 시스템 Host 시스템 $ gdbserver :10000 test Run > Debug configuration gdbserver Debugger 선택 Host Target Eclipse Debug perspective GDB Remote Protocol gdbserver application
Run/Debug Configurations / CDT (gdb) target remote 129.254.187.203:10000
C/C++ Build for arm / CDT Managed C/C++ project Project > Properties > C/C++ Build > Settings GCC C Compiler: arm-linux-gcc GCC C Linker: arm-linux-gcc GCC Assembler: arm-linux-as Makefile project make 명령 실행 디버거 설정 Run > Debug Configurations > Debugger > Debugger Options > Main GDB debugger: arm-linux-gdb 그림
GDB Hardware Debugging / CDT
Cross GCC 설정 / CDT Project > Properties > C/C++ Build (주의) Local C/C++ Project 에서는 설정 안 됨
DSDP (Device Software Development Platform) Blinki Device Debugging (CDT로 통합) Mobile Tools for Java (MTJ) Native Application Builder (NAB) Real-Time Software Component (RTSC) Target Management Tools for Mobile Linux (TmL)
Target Management Remote System Explorer (RSE) Terminal 원격 개발을 위해 확장된 기능 원격 파일 검색 원격 파일 다운로드 원격 파일 실행 Terminal vt102 터미널 (serial, ssh, telnet 지원)
RSE – 통신방식 / TM ssh dstore ftp, telnet, … tcf ssh 보다 다양한 기능 Java byte 코드로 제공 gcj 기반 jvm에서는 수행안됨 별도로 다운로드 http://www.download.eclipse.org/dsdp/tm/download Windows, Linux, Other Unix, Mac OS X 지원 Daemon 모드(daemon.pl)와 서버 모드(server.pl) ftp, telnet, … 권장하지 않음 tcf Daemon 모드만 동작 확인, 서버 모드는 문제 있음
Remote System Explorer / TM Remote System Explorer Perspective
Remote System Explorer / TM New Connection – SSH
SSH Connection – RSE / TM
Run/Debug Configuration / TM s
Run/Debug - Target Console / TM
dstore Connection – RSE / TM
Remote Project / TM 오류가 존재하기 때문에 권장하지 않음 실제 build는 되지 않음 해결될 것으로 예상 makefile 자동 생성 안됨 해결될 것으로 예상
Remote Project (1) / TM C/C++ perspective RSE perspective
Remote Project (2) / TM
Cross GCC 설정 / TM Project > Properties
TM / TCF (Target Communication Framework) Eclipse와 target 간의 통신 방식 통일 target agent, OCD/JTAG, simulator Target agent의 prototype 제공 C 로 구현 현재 incubating 수준
기존 툴 구조 / TCF Tool A Tool B Tool C Tool D UI P2 Value Add B Value Add C Host P1 P3 Agent A Agent B Agent C Target
TCF 구조 / TCF Tool A Tool B Tool C Tool D UI Value Add P1 Service 4 Host Service 5 P1 Service Manager Service 1 Service 2 Service 3 Target
RSE / TCF Run/Debug Configuration > TCF
Eclipse Esto http://www.qplus.or.kr
Esto 다운로드
Remote Run/Debug / Esto $ tae
원격 모니터 / Esto 타겟 시스템의 자원 CPU 정보, 커널 정보 Process, Thread, Symbol, IO Port, IO Memory, Kernel Module, Kernel Module, Memory Map 정보 등
기타 도구 / Esto Esto : 응용 프로그램 개발 도구 QuickDriver : 디바이스 드라이버 개발 도구 RPM 패키징 도구 Hardware 디버거 API 사용 정적 분석 도구 … QuickDriver : 디바이스 드라이버 개발 도구 소스코드 생성 도구 유틸리티 도구 테스팅 도구
원격 개발 환경 정리 Eclipse 프로젝트 사용 Esto 사용 Eclipse 원격 개발 기능 CDT 수동 실행 / 수동 디버거 시작 DSDP ssh와 dstore 접속을 통한 자동 다운로드, 실행, 디버깅 Eclipse를 통한 cross 컴파일러 설정 Managed C/C++ 프로젝트 Cross compiler 설정 Makefile 프로젝트 Esto 사용
Esto 보급 내부 개발자용 외부 판매 Bundle 제공
Esto 미래 (2009 ~ 2011) 타겟 패키징 도구 Kernel 설정 도구 Root file 시스템 생성 도구 응용 프로그램 개발 도구 정적 분석 도구 API 적합성 시험 도구 에코시스템 도구
http://www.qplus.or.kr