http://www.zdnet.co.kr/news/enterprise/os/0,39031185,39157419,00.htm


[특집]윈도우XP임베디드로「차량용 하이엔드 시스템」개발해 보자

디에스티 기술팀 신승운 ( ZDNet Korea )   2007/05/08
xpembedded
DST
차량용 내비게이션으로 길을 찾는 모습은 이제 흔하게 볼 수 있는 모습이다.

최근엔 단순 길 안내를 넘어서 DMB 채널을 이용해 목적지까지 빠른 길을 안내하는 티펙(TPEG) 기능의 내비게이션까지 등장했다.

이런 차량용 내비게이션은 대부분 윈도우 임베디드 CE를 탑재하고 있다. 하지만 윈도우 XP 임베디드 특집 3부에선 단순 내비게이션 기능을 넘어 PMP, DMB 등의 여러 기능을 하나로 통합해 차 내부에서도 컴퓨터처럼 사용할 수 있는 ‘차량용 하이엔드 시스템’을 개발하는 방법에 대해 알아보고자 한다.

윈도우 XP 임베디드의 특징 중 하나인 HORM(Hibernate Once, Resume Many) 기능을 이용해 전원관리에 제약이 있는 일반 PC의 전원관리 문제를 해결하고 나아가 사용자가 원하는 기능만을 선택해 OS 이미지를 빌드할 수 있는 윈도우 XP 임베디드만의 장점을 개발에 적용해 봤다.

▷윈도우 XP 임베디드 개발에 필요한 기초지식
윈도우 XP 임베디드 개발 툴킷인 윈도우 임베디드 스튜디오(Windows Embedded Studio)는 다음 세 가지 구성요소들로 이뤄져 있다.

- 개발도구(Tool)
- 데이터 베이스 엔진(Database Engine)
- 데이터 베이스 (Database)
[그림1] 윈도우 임베디드 스튜디오의 구성

[표 1]각 툴의 기능

윈도우 XP 임베디드로 디바이스를 개발하기에 앞서 충분한 테스트로 XP 임베디드 포팅 가능성을 고려, 리소스를 얻기 위해서 다음과 같은 사전 작업이 요구된다.

(1) 대상 하드웨어 플랫폼 준비
(2) 윈도우 XP 프로 SP2 설치
(3) 디바이스 드라이버 셋업 및 테스트 작업
(4) 타겟 애플리케이션 셋업 및 테스트 작업

다음엔 어떤 시나리오를 토대로 기획을 할 것인지를 생각해야 한다.

(1) ACPI 멀티프로세서 PC: Loader에 대한 사용자 선택
• EWF NTLDR → EWF기능을 사용할 때는 EWF LTLDR를 추가한다.
• NT Loader → 기본적인 NT Loader 파일이다.

(2) Regional and Language Options: 사용 언어 선택
• 24개 언어 컴포넌트 목록 중 사용하고자 하는 컴포넌트를 추가한다.
• 가령 한국어를 사용하려면 ‘Korean Language Support’를 추가한다.

(3) 섹션 매니저(Windows subsystem): Logon 방법 선택
• Minlogon → 사용자 계정이 없는 로그온 방식
• Windows Logon → 사용자 계정이 있는 데스크톱 XP의 로그온 방식

(4) Windows Shell: Shell을 선택
• Command shell → Command 창의 Shell로 사용.
• Explorer shell → 데스크톱 XP의 Shell. 탐색기를 사용하는 Shell.
• Task Manager shell → 작업관리자를 Shell로 사용.
• Custom shell → user 애플리케이션을 Shell로 사용.

(5) 유저 인터페이스 코어: 파일 시스템 선택, 추가하지 않은 파일 시스템의 경우 인식을 못한다.
• FAT Format → FAT File System 지원
• NTFS Format → NTFS File System 지원

▷윈도우 XP 임베디드 개발절차
(1) 윈도우 임베디드 스튜디오 설치.
(2) 대상분석.
(3) 대상 하드웨어 정의파일 Import & 매크로 컴포넌트 작성.
(4) 디바이스 드라이버 & 애플리케이션 컴포넌트화.
(5) 컴포넌트 데이터베이스에 컴포넌트 등록하기.
(6) 컨피규레이션 작성 및 설정.
(7) Dependency Check 및 런타임 이미지 빌드
(8) FBA(First Boot Agent) 및 이미지 배포.
[그림 2] 윈도우 XP 임베디드 개발절차


◆윈도우 XP 임베디드로 ‘차량용 하이엔드 시스템’ 개발하기

필요한 장비는 아래와 같다.

- 개발용 PC, 타겟 보드, 윈도우 임베디드 스튜디오 툴킷, GPS 수신기, LVDS 패널, 터치스크린

전체 진행과정은 아래와 같다.
ezWings3 프로그램 분석하기 – Component Helper
ezWings3 Component 파일 만들기 – Component Designer
Component Database Manager에 Import 하기 – Component Database Manager
ezWings3 컨피규레이션 파일 만들기 – Target Designer
Run-Time Image Build 하기 – Target Designer
타겟 장비에서 FBA 하기 – VIA EPIA EN15000 B/D
타겟 장비에서 ezWings3 프로그램 실행하기 – VIA EPIA EN15000 B/D

▷ezWings3 프로그램 분석하기
내비게이션 애플리케이션인 'ezWings3'를 컴포넌트로 만들기 위해서는 프로그램의 파일 및 레지스트리 구조를 분석해야 하는데, 이것은 컴퍼넌트 헬퍼(Component Helper)와 디펜던시 체크(Dependency Check)라는 툴을 이용해 쉽고 간편하게 분석할 수 있다.

Component Helper 사용법에 대해 알아보자.

변경되기 전의 상태를 스캔 한다. – SCAN1
프로그램을 설치한 후 변경된 후의 상태를 스캔 한다. – SCAN2
SCAN1 과 SCAN2 를 비교 한다. – DIFF
비교가 모두 완료되면 파일 및 레지스트리 값이 추출된 것을 확인할 수 있다.


다음으로 EXE 실행파일과 관련된 DLL과 함수를 검색해주는 도구인 Dependency Walker 사용법에 대해 알아보자.-

분석하고자 하는 프로그램의 실행파일을 선택한다.

실행파일과 관련된 모든 DLL 파일들과 함수들이 트리 형식으로 보인다.

컴퍼넌트 데이터베이스 매니저(Component Database Manager)의 필터를 이용해 DLL 파일이 포함된 컴포넌트를 검색한다.
- 아래 화면은 KERNEL32.DLL 파일 관련 컴포넌트를 찾은 결과이다.

- KERNEL32.DLL : Windows API - Kernel
- USER32.DLL : Windows API - User
- ADVAPI32.DLL : Windows API - Advanced
- OLEAUT32.DLL : Primitive: Oleaut32
- VERSION.DLL : Primitive: Version
- GDI32.DLL : Windows API - GDI
- OLE32.DLL : Primitive: Ole32
- COMCTL32.DLL : Common Control Libraries Version XP SP2
- IMM32.DLL : Primitive: Imm32
- SHELL32.DLL : Primitive: Shell32
- COMDLG32.DLL : Common File Dialogs
- GNSEZDLL.DLL : ezWings 프로그램 폴더에 있는 파일
- WINMM.DLL : Primitive: Winmm

▷컴퍼넌트 디자이너(Component Designer) 툴을 활용한 ‘ezWings Component 만들기’

(1) 새로운 컴포넌트를 만든 다음에 추출해 놓은 파일들을 모두 ‘Files’ 라는 항목에 추가한다.

- 실제 파일들이 설치된 목록과 추가한 파일들이 모두 일치하는가 확인한다.
- 실제 파일 경로와 크기를 모두 확인한다.
- 불필요한 파일 및 폴더가 추가가 되었으면 삭제한다.

(2) 관련된 파일들은 모두 추가했다면 각 파일에 대한 세부 설정을 해야 한다.

- 파일 이름과 경로를 확인한다.

(3) 파일 추가 작업을 마치고 이제는 레지스트리 값을 추가하는 작업을 진행하도록 하자.
- Component Helper 로 추출한 레지스트리 값들을 추가한다.

(4) 이제 마지막 작업인 DLL 관련 컴포넌트 추가 작업이다.
- Component or Group Dependency를 선택 한 후 Component를 추가한다.


▷컴퍼넌트 데이터베이스 매니저 툴을 이용, 데이터베이스에 내가 만든 컴퍼넌트 저장하기

- 컴퍼넌트 저장 후 꼭 저장되었는지 확인해 본다.

▷Target Designer 툴을 이용해 ezWings3 컨피규레이션 파일 만들기

(1) 애플리케이션, 하드웨어, 드라이버 등의 컴포넌트, 기타 필요한 컴포넌트들을 모두 추가한다.
- ezWings3 Component
- Hardware Component
- Touch Screen Component
- GPS Component
- 필수적으로 들어가야 할 컴포넌트
Korean Language Support : 한국어 사용
Microsoft Korean IME Core : 입력도구모음 사용
Fonts: DPI-120 : Font 추가
Fonts: DPI-96 : Font 추가
Minlogon : 기본 로컬 계정만 사용
NTFS Format : NTFS 포맷지원
Regional and Language Option : 국가 및 언어설정 사용
User Interface Core : 원하는 데스크탑 UI 추가 제거

(2) EWF와 HORM 기능을 추가하기 위해서 관련 컴포넌트들을 추가한다.

- EWF 관련 컴포넌트
Enhanced Write Filter
EWF Manager Console 애플리케이션
EWF NTLDR
Background Disk Defragmentation Disable
Power Management 애플리케이션

- HORM 관련 컴포넌트
ACPI Uniprocessor PC

(3) 이제 필요한 모든 Component 들을 추가했으니 Dependency Check 실행하자.
- Dependency Check 후 불필요한 컴포넌트들은 삭제해 최적화를 한다.

(4) 최적화를 다 마쳤으면 XPE OS를 Build 한다.

FBA를 실행하여, 내가 만든 윈도우 XP 임베디드 OS가 잘 실행되는지 확인하자.

(1) 타겟 시스템에서 First Boot Agent 구동하기.
- 빌드가 완료된 XPE OS 파일을 타겟 시스템의 저장장치에 복사 한다.
- 복사가 다 되면 타겟 시스템을 부팅을 시켜 FBA를 수행한다.
- S/W 와 H/W의 Plug and Play Detection 과정이 진행된다.


▷ezWings3 프로그램 실행하기
FBA 과정이 끝나고 나면 시스템을 부팅시켜 프로그램이 구동되는 지 확인한다.

- 시스템이 부팅이 되면 Custom Shell 이 작동된다.
- DST shell, Touch Screen, GPS, ezWings3, Gom, Windows Explorer, Internet Explorer

- eWings3 Navigation을 실행시킨 화면을 보자.


이제까지 윈도우 XP 임베디드로 애플리케이션을 컴포넌트화 하고 컨피규레이션 단계를 거쳐 윈도우 XP 임베디드 런타임 이미지를 빌드하는 방법에 대해서 알아봤다.

이런 간단한 방식으로 오피스 등의 업무에 필요한 컴포넌트를 추가해 디바이스를 구축할 수 있다면 차 안에 나만의 사무실을 꾸며놓고 업무를 보는 일이 곧 보편화 되지 않을까.@

저자소개:신승운씨는 현재 임베디드 솔루션전문기업이자 마이크로소프트 윈도우 임베디드 OS 총판인 디에스티 기술팀에서 윈도우 XP 임베디드 담당 SE로 활동하고 있다.
:
BLOG main image
by 오직너를

공지사항

카테고리

분류 전체보기 (34)
Android (1)
Windows CE (18)
컬럼 (1)
용어설명 (4)
Python (1)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total :
Today : Yesterday :