임베디드 S/W 개발도구 동향 임베디드 이미지 생성 도구 임베디드 S/W

Download Report

Transcript 임베디드 S/W 개발도구 동향 임베디드 이미지 생성 도구 임베디드 S/W

Embedded System
and Development tool
Sang Tae Roh
Vice President, AIJI System"
Contents

임베디드 S/W 개발도구 동향

임베디드 이미지 생성 도구

임베디드 S/W 디버깅 도구
- Run & Stop
- Real Time Trace
- OS 디버깅

임베디드 테스트 자동화
임베디드S/W 개발 도구
2
Embedded SW 개발 단계별 개발 도구
계획
Stage
문제정의
설계
자동화
분석
개발계획
요구분석 기본설계 상세설계
수립
개발 프로세스 Tool
구현
설계
프로
그래밍
시험
단위시험 통합시험
시스템
시험
인수시험
시스템 분석 및 모델링 Tool
컴파일러
디버거
에뮬레이터
통합
개발
환경
디바이스 드라이버 개발 도구
실시간 분석 및 모니터링 Tool
소스코드생성도구
시뮬레이터
동적 분석 도구
정적 분석 도구
시험
자동화
테스트 실행 도구
임베디드S/W 개발 도구
3
임베디드 개발 도구 구분
개발 단계
Build Tools.
개발 장비
* OS
* IDE (통합 개발 S/W)
.Editor .Compiler
(Assembler, C/C++, JAVA, ..)
* 개발 방법론
Debugging
Testing
* Simulator
* Emulator
* Trace
* Automatic Test Tool
임베디드S/W 개발 도구
4
임베디드 S/W 개발 도구 중요성
설문 자료에 의하면 응답자의 70%는 프로세서 선택시 SW 개발 툴을
중요하게 고려함
[EE Times and Embedded Systems Design 2006 Embedded Market Survey(1,217 respondents)]
임베디드S/W 개발 도구
5
임베디드 개발도구 동향
One
Solution
Standard
Dev. Tools
Multi
Debug
Virtual
Platform
임베디드S/W 개발 도구
6
임베디드 개발도구 동향
•통합 개발 환경 표준화 - Eclipse
Eclipse
WorkBench
Create Project
Edit
Build
DevRocket
Time Storm
Debug
ESTO
임베디드S/W 개발 도구
Ext. I/F
7
임베디드 개발도구 동향
• 솔루션화
시장 변화에 대한 대응을 위한 편리한 개발 솔루션 필요 증대
시장에서 OS 지원 패키지(BSP) 요구 증대
통합 개발 환경
(Platform Builder, Visual Esto…)
일반 OS 지원(BSP): Linux/WinCE
(Semiconductor/ Board Supplier)
업체간 인수/합병
VDC. Press release ( August 31, 2006)
“Embedded Software and Tools Practice”
임베디드S/W 개발 도구
8
임베디드 개발 도구 동향
•가상 플랫폼화
타깃 시스템과 거의 동일한 동작을 PC에서 확인해 볼 수 있는
UI 제공
특히 모바일 폰 솔루션에서 일반적으로 사용됨.
WIPI Emulator
임베디드S/W 개발 도구
9
임베디드 개발도구 동향
• 멀티코어 디버깅
단일 호스트 PC에서 타깃 시스템에 있는 두개 이상의 코어 또는
프로세서를 동시에 디버깅.
- 실행, 정지, B.P., Step등에 대한 동기화 지원
CPU #1 제어
CPU
RAM
#1
USB
JTAG
ROM
#2
OPENice-A1000
Host PC
Target
CPU #2 제어
임베디드S/W 개발 도구
10
임베디드 이미지생성도구
Sang Tae Roh
Vice President, AIJI System"
프로그래밍 언어 및 번역기
- 프로그래밍 언어
MCU가 이해할 수 있는 기계어 코드를 편리하게 생성하기 위한 언어.
임베디드 시스템에서는 일반적으로 C, 어셈블리어 사용.
예: C/C++, Pascal, Fortran, Cobol, Basic, JAVA, 어셈블리어
- 어셈블러/컴파일러
각 언어에 따른 번역기 (어셈블러/컴파일러) 필요. 또한 각 MCU용
어셈블러/컴파일러가 필요
예: SASM/SAMA, ARMCC, CalmCC, ARM-Linux-GCC
임베디드S/W 개발 도구
12
IDE(Integrated Development Environment )
소스 편집(Editor), 컴파일(Compiler), 디버깅(Debugger)등을 하나의
S/W로 가능하게 한 제품
예: EWSAM8,CalmSHINE8/16, ADS, RealView, CCS
Editor
C/C++ Compiler
Simulator
Debugger
RDI I/F
[IAR EWARM]
임베디드S/W 개발 도구
13
IDE(OS Build용)
특정 OS이미지를 생성및 디버깅을 위한 통합 개발 환경.
-
MS Platform Builder 4.2/5.0
CodeWorrior for Symbian
Visual Esto(Target Builder)
VxWorks: Tornado, Workbench
[Platform Builder 5.0]
임베디드S/W 개발 도구
14
임베디드 S/W 디버깅 도구(I)
- Run&Stop 제어
Sang Tae Roh
Vice President, AIJI System"
Instruction Simulator
PC상의 시뮬레이터상에서 명령어가 정상적으로 실행되는지 확인함.
단점
- 실시간으로 인터럽트에 대한 반응을 확인할 수 없슴.
- 실제 타깃 시스템에서는 동일하게 동작하는 것을 보증할 수 없슴.
Interrupts
CPU
Response
RAM
I/O
ROM
Simulator on PC
Target System
임베디드S/W 개발 도구
16
Monitor Program
타깃 시스템의 부트롬에 모니터프로그램을 프로그램한 후 이를 통해서
Host PC의 통신 프로그램과 데이터 송수신.
단점
- 모니터 프로그램이 삭제된 경우 연결 불가능.
- 각 타깃 시스템에 따라서 모니터 프로그램 포팅 필요.
- 다양한 Run & Stop 기능 제공하지 않음.
- 상세한 디버깅 기능 제공하지 않음.
응용 프로그램
모니터 프로그램
CPU
Memory
통신 프로그램
Target
임베디드S/W 개발 도구
17
In-Circuit Emulator
CPU관련 신호들을 모두 에뮬레이터에 연결후 CPU의 동작 제어하거나
메모리/레지스터등의 값 확인.
이 시스템에서 PROBE에 있는 Eva CPU는 타깃 시스템의 CPU역할 수행
단점
- 고속 CPU에서 실시간 제어 힘듦.
- 각 프로세서별 PROBE장비 필요.
In-Circuit
Emulator
Debug S/W
Target
RAM
Probe
ROM
Eva CPU
Emulation of CPU
임베디드S/W 개발 도구
18
JTAG based Emulator
타깃 CPU내에 있는 디버깅 블록을 이용해서 타깃 프로세서를 제어하거나
메모리/레지스터 값을 확인
표준 JTAG 신호를 사용함으로써 동일한 디버깅 명령을 지원한는 코어에
대해서 범용적으로 사용가능
단점
- 일반적으로 CPU내에서 Trace 기능 지원 안함.
(최근에 ETM/ETB을 내장한 CPU 출현)
JTAG Logic
RAM
ROM
CPU
RAM
RAM
Debug S/W
JTAG based Emulator
임베디드S/W 개발 도구
Target
19
Major Issues On Emulator
CPU Support
Multi Debug
?
Download Speed
OS Awareness
Flash Programming
Technical Support
임베디드S/W 개발 도구
20
In-Circuit vs. JTAG emulator
In-Circuit Emulator
JTAG Emulator
Debug Function
In Emulator
In CPU Debug Block
Debug S/W
Require
Require
H/W Breakpoint
Complex H/W B.P
Limited
Emulation Memory
Supplied
-
Trace
Generally Supported
Optional & CPU
dependent
Probe
Required for each CPU
-
Connection pin
30 ~
5~8 pin
임베디드S/W 개발 도구
21
임베디드 S/W 디버깅 도구(II)
- RealTime Trace
Sang Tae Roh
Vice President, AIJI System"
Realtime Trace (RT)
프로그램이 실행중일 때 어떤 순서로 프로그램이 실행되었는지 확인기
위하여 사용
• Traditional Trace
- CPU 버스 신호를 캡쳐하여 Trace 방법
• On-Chip Trace(ETM/ETB)
- 프로세서내에서 제공하는 Trace 기능을 활용한 Trace 방법
• Soft Trace
- Debugger 소프트웨어에서 Run&Stop제어를 통한 Trace 방법
임베디드S/W 개발 도구
23
RT- Traditional Trace
- CPU의 Data/Address Bus를 캡쳐하여 프로그램 실행 Trace
- Trace한 결과는 에뮬레이터 내의 메모리에 저장
- 많은 신호 캡쳐를 해야함.
Target System
MCU
SAM Core
Control
Address
Memory
Data
Buffer
Debugger
In-Circuit Emulator
[OPENice-i500의 Trace 결과]
임베디드S/W 개발 도구
24
RT- Using ETM (Embedded Trace Macrocell)
- 프로세서내에서 Trace 기능을 제공하는 경우에 사용
- Trace한 데이터는 별도의 Trace 장비의 메모리에 저장
따라서 Trace 용량은 Trace장비의 메모리 크기에 따라 좌우
- 최근 Trace 용량은 1G이상으로 증가하는 추세임.
Target System
CPU
주소
Control
실행 명령어
Data Trace
실행 모드
시간
ARM Core
Address
Data
JTAG
Connector
T o g g le
Do ub le Clic k
JTAG
Port
ETM
Embedded ICE
Trace Port
OPENice-A1000
Debugger
38pin
Buffer
ETM Trace
임베디드S/W 개발 도구
25
RT- Using ETB(Embedded Trace Buffer)
- 프로세서내에서 Trace 기능 및 Trace 버퍼를 제공하는 경우에 사용
- 일반적으로 큰 Trace 버퍼를 제공하지 않음.
Target System
MCU
주소
control
실행 명령어
Data Trace
실행 모드
시간
ARM Core
Address
Data
JTAG
Connector
T o g g le
Do ub le Clic k
JTAG
Port
ETM
Embedded ICE
Buffer
JTAG Emulator
Debugger
임베디드S/W 개발 도구
26
RT- Major Issue
Trace Buffer Size
Trace Speed
?
Decoding Speed
Back Trace
Analysis Function
임베디드S/W 개발 도구
27
RT- ETM Trace vs. JTAG
JTAG Emulator
ETM Trace
지원 프로세서
JTAG 내장 프로세서
ETM 내장 프로세서
주요기능
Run & Stop
Trigger & Filtering
타깃 정보 획득
프로그램 정지시
프로그램 실행시
제공 데이터
메모리/레지스터/변수
실행 기록
임베디드S/W 개발 도구
28
RT- ETM Trace vs. JTAG
Stop
Start
프로그램 흐름
0x100
JTAG
Instruction
Register
Memory
Variable
ETM
Instruction
0x120
0x500
0x100
0x200
Instruction
Register
Memory
Variable
unknown
unknown
unknown
Instruction
Instruction
Instruction
Data
임베디드S/W 개발 도구
Instruction
Data
29
RT- Soft Trace
프로세서에서 Trace기능을 제공하지 않는 경우 다음과 같은 방법을 활용할 수
있다. 단, 실시간성 저하
• Trace by Sampling
에뮬레이터를 통해서 일정한 주기별로 타깃시스템을 Run&Stop을 함으로써 PC값
샘플링. 이를 바탕으로 어떤 함수가 많이 사용되는지 통계적으로 추정하는데
사용.
• Step Trace
Step 또는 B.P. Run을 수행하여 프로그램이 멈출때 마다 필요한 정보를 파일로
저장하여 분석
[OPENice의 Sampling Trace]
임베디드S/W 개발 도구
30
RT- 활용
• Profile
함수들이 얼마나 자주 실행되었는지 분석
• Code Coverage
실제 각 루틴들이 실행되었는지 분석
• Back Trace
Trace한 결과를 바탕으로 프로그램의 흐름을 재구축하는 알고리즘.
- 각 PC별로 Memory, Register, Variable 값 재구축
[OPENice-RT의 ETM Profile 결과]
임베디드S/W 개발 도구
31
임베디드 S/W 디버깅 도구(III)
- Operating System 디버깅
Sang Tae Roh
Vice President, AIJI System"
OS 디버깅
• 소프트웨어적 방법
타깃에서 OS상에서 동작하는 디버그 모듈이 호스트 디버거와 통신
- KGDB: 리눅스 커널 디버깅 프로그램
- Kdstub : Windows CE 디버깅 모듈
- Debug Agent
단점: 커널 패닉시 호스트 디버거와 타겟 간 통신채널 중단으로
원인파악 곤란
• 하드웨어적 방법
- OPENice와 같은 하드웨어 디버깅 장비를 이용하여 디버깅
- 커널이 오동작했을 때라도 원인 추적 가능
예)
MS Platform Builder: 에뮬레이터 연결을 위한 ExDI 제공
GNU GDB: 에뮬레이터 연결을 위한 RDI 제공
임베디드S/W 개발 도구
33
OS 디버깅- WinCE 디버깅
MS WinCE의 경우 Platform Builder 내에서 프로젝트생성, OS빌드, 디버깅
기능 제공
• 커널디버거를 통한 타깃 정보 제공 및 Run& Stop 기능
• 에뮬레이터를 통한 실시간 디버깅위한 ExDI 제공
• 다양한 분석 기능 제공
Ethernet
Windows CE
ExDI
JTAG
ARM Core
Embedded ICE
OPENice-A1000
임베디드S/W 개발 도구
34
OS 디버깅 - OS Awareness
uC/OSII, REX등과 같이 커널 디버거를 제공하지 않는 경우 H/W 디버깅 장비를 이용해서 디버깅 수행.
Spider와 같이 디버거에서 OS Awareness 기능을 제공한다면 OS 관련 일부 정보 확인할 수 있음.
Task Stack
Task Timer
Task schedule
[OPENice]에서의 Rex OS Awareness 기능
임베디드S/W 개발 도구
35
임베디드 S/W 디버깅 도구(IV)
- Test Automation
Sang Tae Roh
Vice President, AIJI System"
임베디드 테스트 자동화
Environment
Record Test Case 1
:
Test Case n
Features
Weakness
Execute Test Case 1
:
Test Case n
Record & Play back, Script
Performance, Load, Stress Test
No flexible to the change of UI or H/W
임베디드S/W 개발 도구
37
임베디드 테스트 자동화
• 세계 임베디드 시험 자동화 도구 시장은 2003년부터 2006년까지 23%
이상의 복합연평균 성장률로 약 1억 3,780만 달러 규모에 이를 전망
• 프로그램의 복잡성이 증가함에 따라 자동테스트툴의 도입 증가 추세
• 테스트 프로그램 구축에 필요한 많은 시간과 자금 등은 여전히
억제요인으로 작용하고 있음
VDC. 2004.7.
세계 임베디드 시스템 자동화 테스트 시장 규모
임베디드S/W 개발 도구
38
임베디드 테스트 자동화
2004년 현재 임베디드 소프트웨어 개발 프로젝트의 25% 정도가 자동화
툴 사용하는 것으로 추정.
군사/항공 분야에서는 보다 복잡한 소프트웨어로 제어되는 무기들이
개발등으로 인하여 성장 지속할 것으로 예상.
VDC. 2004.7.
분야별 임베디드 시스템 자동화 테스트 시장 규모
임베디드S/W 개발 도구
39
아이지시스템 회사소개
Sang Tae Roh
Vice President, AIJI System"
아이지시스템 회사소개
개요
회사명
대표이사
설립일
임직원수
본사소재지
주요제품
해외
영업망
웹사이트
아이지시스템㈜
김창균
1998년 9월 12일
106명(2006년 9월 현재)
수원시 팔달구 인계동 1122-10
삼호파크타워 2F
임베디드 시스템 개발툴, WLL 단말
1 지사, 7 대리점
www.aijisystem.com
임베디드S/W 개발 도구
41
아이지시스템 회사소개
사업부 현황
 임베디드 SW 개발 Tool
MDS사업부
 교육
 임베디드 SW Solution
Embedded 사업부
 UbiFOS RTOS
 무선 통신 솔루션
Telesys 사업부
 WLL 단말기
임베디드S/W 개발 도구
42
AIJIware, Anywhere!
감사합니다.
임베디드S/W 개발 도구
43