이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 강력추천
Windows CE 실전 가이드
CD1 포함
에이콘출판사 2006.05.12.
베스트
IT 모바일 top100 10주
가격
40,000
10 36,000
YES포인트?
2,000원 (5%)
5만원 이상 구매 시 2천원 추가 적립
결제혜택
카드/간편결제 혜택을 확인하세요

이미 소장하고 있다면 판매해 보세요.

  •  해외배송 가능?
  •  문화비소득공제 가능

에이콘 임베디드 시스템 프로그래밍 시리즈

책소개

목차

I부 기본편

1장 Windows CE 소개
1.1 Windows CE 둘러보기
1.2 Windows CE의 역사
1.3 Windows CE를 사용하는 이유
1.4 Windows CE에서 사용하는 프로그래밍 언어
1.5 Windows CE v5.0의 새로은 기능

2장 플랫폼 빌더
2.1 플랫폼 빌더에 대하여 배우기에 앞서
2.1.1 폴더의 정의
2.1.2 자주 나오는 용어 정의
2.2 플랫폼 빌더를 사용하여 이미지를 생성하는 단계
2.2.1 명령 프롬프트 창에서 이미지를 생성하는 고전적인 절차
2.2.2 모듈 빌드
2.2.3 플랫폼 빌더 IDE 상에서 메뉴를 통해 Windows CE용 이미지를 생성하는 과정
2.3 플랫폼을 생성해 플랫폼 빌더의 사용방법을 익히자
2.3.1 플랫폼 생성
2.3.2 Windows CE 이미지파일(NK.BIN) 생성하기
2.3.3 빌드된 NK.BIN 파일을 에뮬레이터로 다운로드해보자
2.4 Windows CE를 위한 호스트 시스템과 타겟 시스템의 연결
2.4.1 플랫폼 매니저가 지원하는 툴들
2.4.2 CETarget에 의해 제공되는 툴들
2.4.3 커널 디버깅 기능
2.5 Windows CE 이미지 생성을 위한 구성파일
2.5.1 REG
2.5.2 DAT
2.5.3 DB
2.5.4 BIB
2.6 플랫폼 빌더가 제공하는 유용한 툴, CEC Editor
2.6.1 CEC 에디터 사용하기
2.6.2 플랫폼 빌더 상으로 작성한 CEC 파일을 임포트하기
2.7 플랫폼 빌더 Component 프로젝트 생성
2.8 플랫폼 빌더 Command Build 창 이용하기
2.9 플랫폼 빌더로 생성되는 BIN 파일분석
2.9.1 BIN 헤더부분
2.9.2 RECORD 부분
2.9.3 LAST RECORD 부분
2.10 SAMPLE BSP 생성하기

3장 부트로더
3.1 부트로더의 역할
3.2 부트로더 작성을 위해 플랫폼 빌더가 제공하는 요소
3.2.1 BLCOMMON의 BootLoaderMain() 함수
3.2.2 BLCOMMON의 DownloadImage() 함수
3.3 개발자가 작성해야 하는 부트로더 지원요소
3.3.1 Sources 파일
3.3.2 StartUp : startup.s
3.3.3 BOOL OEMDebugInit(void) : main.c
3.3.4 BOOL OEMPlatformInit(void) : main.c
3.3.5 DWORD OEMPreDownload(void) : main.c
3.3.6 BOOL OEMReadData(DWORD dwData, PUCHAR pData) : main.c
3.3.7 void OEMShowProgress(DWORD dwPacketNum) : main.c
3.3.8 LPBYTE OEMMapMemAddr(DWORD dwImageStart, DWORD dwAddr) : flash.c
3.3.9 BOOL OEMIsFlashAddr(DWORD dwAddr) : flash.c
3.3.10 BOOL OEMStartEraseFlash(DWORD dwStartAddr, DWORD dwLength) : flash.c
3.3.11 void OEMContinueEraseFlash(void) : flash.c
3.3.12 BOOL OEMFinishEraseFlash(void) : flash.c
3.3.13 BOOL OEMWriteFlash(DWORD dwStartAddr, DWORD dwLength) : flash.c
3.3.14 void OEMLaunch(
DWORD dwImageStart,
DWORD dwImageLength,
DWORD dwLaunchAddr,
const ROMHDR *pRomHdr ) : main.c
3.4. 부트로더 만들기

4장 커널과 OAL
4.1 Windows CE 커널의 특징
4.1.1 작업 스케줄링
4.1.2 리소스 관리(메모리 관리)
4.2 커널과 OAL 관계
4.3 필수적인 구현이 필요한 OAL 함수들
4.3.1 void StartUp(void)
4.3.2 void OEMInitDebugSerial(void)
4.3.3 void OEMInit(void)
4.3.4 BOOL OEMGetExtensionDRAM(LPDWORD lpMemStart, LPDWORD lpMemLen)
4.3.5 OEM Interrupt Service Routine
4.3.6 BOOL OEMInterruptEnable (DWORD idInt, LPVOID pvData, DWORD cbData)
4.3.7 void OEMInterruptDisable(DWORD idInt)
4.3.8 void OEMInterruptDone(DWORD idInt)
4.3.8 void OEMInterruptDone(DWORD idInt)
4.3.10 BOOL OEMIoControl(DWORD IoControlCode
4.3.11 ULONG SC_GetTickCount(void)
4.4 커널인증을 위해서 준비해야 하는 OAL의 역할
4.4.1 BIB 파일의 CONFIG 영역 수정
4.4.2 BIB 파일의 MODULE 영역
4.4.3 OEMInit() 함수 내의 작업
4.5 파워관리 관련 OAL함수들
4.6 커널 디버깅을 위한 OAL의 준비
4.6.1 KITL을 사용하기 위한 준비작업(부팅과정)
4.6.2 KITL 사용되는 과정
4.6.3 플랫폼 빌더 5.0의 Kitl 구현을 지원하는 Common 요소들
4.7 VBRIDGE를 사용한 네트워크 자원의 공유

5장 디바이스 드라이버
5.1 디바이스 드라이버의 개요
5.1.1 스트림 인터페이스 드라이버
5.1.2 버스 인터페이스 드라이버
5.1.3 네이티브 인터페이스 드라이버
5.1.4 PDD
5.1.5 미니포트 드라이버
5.2 스트림 인터페이스 드라이버 DDI
5.2.1 디바이스 드라이버 등록/해제와 관련된 함수
5.2.2 디바이스 드라이버에게 전달되는 관련 함수
5.2.3 응용프로그램과 통신하는 함수
5.2.4 스트림 인터페이스 드라이버 작성을 위해 필요한 요소들
5.2.5 비동기 명령 처리에 대해
5.3. 버스 인터페이스 드라이버
5.3.1 클라이언트 드라이버를 위한 버스 드라이버의 서비스
5.3.2 버스 드라이버가 클라이언트 드라이버를 로딩하는 방법
5.4 네이티브 인터페이스 드라이버
5.5 PDD
5.6 미니포트 드라이버
5.7 하드웨어 인터럽트 서비스 스레드 구현방법
5.8 Installable ISR

6장 디바이스 드라이버 응용
6.1 간단한 스트림 인터페이스 드라이버
6.1.1 구현 목적
6.1.2 동작하는 개념도
6.1.3 드라이버를 생성하기 위해 필요한 파일과 빌드방법
6.1.4 드라이버, 응용프로그램 소스파일 및 보조파일 분석
6.1.5 설치방법 고찰
6.2 시리얼 디바이스 드라이버
6.2.1 동작원리
6.2.2 MDD 관점에서 드라이버 개발하기
6.2.3 PDD 관점에서 드라이버 개발하기
6.2.4 mini-PDD 관점에서 드라이버 개발하기
6.3 네트워크 디바이스 드라이버
6.3.1 동작원리
6.3.2 드라이버 소스파일 분석
6.4 오디오 디바이스 드라이버
6.4.1 동작원리
6.4.2 소스파일 분석
6.5 디스플레이 디바이스 드라이버
6.5.1 동작원리
6.5.2 드라이버의 생성과 설치방법
6.6 터치판넬 디바이스 드라이버
6.6.1 동작원리
6.6.2 PDD 형식을 사용해 터치스크린 드라이버 작성하기
6.7 파일시스템 디바이스 드라이버
6.7.1 동작원리
6.7.2 샘플 파일시스템 소스와 설치 방법
6.8 USB 디바이스 드라이버
6.8.1 USB 디바이스 드라이버의 종류
6.8.2 호스트 관점에서 개발돼야 하는 드라이버
6.8.3 슬레이브 관점에서 개발돼야 하는 드라이버
6.9 기본편을 마치면서



II부 응용편

7장 개발환경 구축
7.1 요구사항
7.2 Windows CE v5.0 플랫폼 빌더 설치하기
7.3 시스템의 환경설정
7.4 개발 절차

8장 타겟 시스템의 개요
8.1 ARM 개요
8.1.1 ARM이란?
8.1.2 ARM의 특징
8.1.3 ARM의 구조
8.1.4 프로그래머스 모델
8.1.5 예외처리
8.1.6 ARM 명령어
8.2 타겟 시스템(2410TK)의 개요
8.2.1 삼성 S3C2410의 개요
8.2.2 S3C2410의 특징
8.2.3 2410TK 보드의 개요
8.3 2410TK 보드 테스트
8.3.1 환경설정
8.3.2 2410TK 보드의 기능 테스트

9장 2410TK 보드에 Windows CE 포팅
9.1 포팅 준비
9.1.1 BSP 구성하기
9.1.2 EBOOT 구현
9.2 커널 동작과정
9.2.1 OAL이란?
9.2.2 OAL 작성
9.2.3 OAL 기본함수 작성
9.2.4 OAL 추가함수 작성
9.3 커널 올리기
9.3.1 BSP 복사하여 치워두기
9.3.2 BSP 등록하기
9.4 KITL을 이용한 디버깅

10장 디바이스 드라이버 만들기
10.1 간단한 디바이스 드라이버 만들기
10.2 인터럽트를 이용한 디바이스 드라이버 만들기
10.3 KITL을 이용한 디바이스 드라이버 디버깅
10.4 드라이버 테스트

11장 Windows CE의 플랫폼 만들기
11.1 Tiny Kernel 플랫폼

12장 Windows CE용 애플리케이션 만들기
12.1 애플리케이션 개발을 위한 SDK 만들기
12.2 네이티브와 매니지드 애플리케이션 모델
12.3 애플리케이션에서 직접 디바이스 제어하기
12.4 사용자용 셸 만들기
12.5 애플리케이션 탑재
12.6 응용편을 마치면서

부록 ARM 명령어 SET
I부 기본편

1장 Windows CE 소개
1.1 Windows CE 둘러보기
1.2 Windows CE의 역사
1.3 Windows CE를 사용하는 이유
1.4 Windows CE에서 사용하는 프로그래밍 언어
1.5 Windows CE v5.0의 새로은 기능

2장 플랫폼 빌더
2.1 플랫폼 빌더에 대하여 배우기에 앞서
2.1.1 폴더의 정의
2.1.2 자주 나오는 용어 정의
2.2 플랫폼 빌더를 사용하여 이미지를 생성하는 단계
2.2.1 명령 프롬프트 창에서 이미지를 생성하는 고전적인 절차
2.2.2 모듈 빌드
2.2.3 플랫폼 빌더 IDE 상에서 메뉴를 통해 Windows CE용 이미지를 생성하는 과정
2.3 플랫폼을 생성해 플랫폼 빌더의 사용방법을 익히자
2.3.1 플랫폼 생성
2.3.2 Windows CE 이미지파일(NK.BIN) 생성하기
2.3.3 빌드된 NK.BIN 파일을 에뮬레이터로 다운로드해보자
2.4 Windows CE를 위한 호스트 시스템과 타겟 시스템의 연결
2.4.1 플랫폼 매니저가 지원하는 툴들
2.4.2 CETarget에 의해 제공되는 툴들
2.4.3 커널 디버깅 기능
2.5 Windows CE 이미지 생성을 위한 구성파일
2.5.1 REG
2.5.2 DAT
2.5.3 DB
2.5.4 BIB
2.6 플랫폼 빌더가 제공하는 유용한 툴, CEC Editor
2.6.1 CEC 에디터 사용하기
2.6.2 플랫폼 빌더 상으로 작성한 CEC 파일을 임포트하기
2.7 플랫폼 빌더 Component 프로젝트 생성
2.8 플랫폼 빌더 Command Build 창 이용하기
2.9 플랫폼 빌더로 생성되는 BIN 파일분석
2.9.1 BIN 헤더부분
2.9.2 RECORD 부분
2.9.3 LAST RECORD 부분
2.10 SAMPLE BSP 생성하기

3장 부트로더
3.1 부트로더의 역할
3.2 부트로더 작성을 위해 플랫폼 빌더가 제공하는 요소
3.2.1 BLCOMMON의 BootLoaderMain() 함수
3.2.2 BLCOMMON의 DownloadImage() 함수
3.3 개발자가 작성해야 하는 부트로더 지원요소
3.3.1 Sources 파일
3.3.2 StartUp : startup.s
3.3.3 BOOL OEMDebugInit(void) : main.c
3.3.4 BOOL OEMPlatformInit(void) : main.c
3.3.5 DWORD OEMPreDownload(void) : main.c
3.3.6 BOOL OEMReadData(DWORD dwData, PUCHAR pData) : main.c
3.3.7 void OEMShowProgress(DWORD dwPacketNum) : main.c
3.3.8 LPBYTE OEMMapMemAddr(DWORD dwImageStart, DWORD dwAddr) : flash.c
3.3.9 BOOL OEMIsFlashAddr(DWORD dwAddr) : flash.c
3.3.10 BOOL OEMStartEraseFlash(DWORD dwStartAddr, DWORD dwLength) : flash.c
3.3.11 void OEMContinueEraseFlash(void) : flash.c
3.3.12 BOOL OEMFinishEraseFlash(void) : flash.c
3.3.13 BOOL OEMWriteFlash(DWORD dwStartAddr, DWORD dwLength) : flash.c
3.3.14 void OEMLaunch(
DWORD dwImageStart,
DWORD dwImageLength,
DWORD dwLaunchAddr,
const ROMHDR *pRomHdr ) : main.c
3.4. 부트로더 만들기

4장 커널과 OAL
4.1 Windows CE 커널의 특징
4.1.1 작업 스케줄링
4.1.2 리소스 관리(메모리 관리)
4.2 커널과 OAL 관계
4.3 필수적인 구현이 필요한 OAL 함수들
4.3.1 void StartUp(void)
4.3.2 void OEMInitDebugSerial(void)
4.3.3 void OEMInit(void)
4.3.4 BOOL OEMGetExtensionDRAM(LPDWORD lpMemStart, LPDWORD lpMemLen)
4.3.5 OEM Interrupt Service Routine
4.3.6 BOOL OEMInterruptEnable (DWORD idInt, LPVOID pvData, DWORD cbData)
4.3.7 void OEMInterruptDisable(DWORD idInt)
4.3.8 void OEMInterruptDone(DWORD idInt)
4.3.8 void OEMInterruptDone(DWORD idInt)
4.3.10 BOOL OEMIoControl(DWORD IoControlCode
4.3.11 ULONG SC_GetTickCount(void)
4.4 커널인증을 위해서 준비해야 하는 OAL의 역할
4.4.1 BIB 파일의 CONFIG 영역 수정
4.4.2 BIB 파일의 MODULE 영역
4.4.3 OEMInit() 함수 내의 작업
4.5 파워관리 관련 OAL함수들
4.6 커널 디버깅을 위한 OAL의 준비
4.6.1 KITL을 사용하기 위한 준비작업(부팅과정)
4.6.2 KITL 사용되는 과정
4.6.3 플랫폼 빌더 5.0의 Kitl 구현을 지원하는 Common 요소들
4.7 VBRIDGE를 사용한 네트워크 자원의 공유

5장 디바이스 드라이버
5.1 디바이스 드라이버의 개요
5.1.1 스트림 인터페이스 드라이버
5.1.2 버스 인터페이스 드라이버
5.1.3 네이티브 인터페이스 드라이버
5.1.4 PDD
5.1.5 미니포트 드라이버
5.2 스트림 인터페이스 드라이버 DDI
5.2.1 디바이스 드라이버 등록/해제와 관련된 함수
5.2.2 디바이스 드라이버에게 전달되는 관련 함수
5.2.3 응용프로그램과 통신하는 함수
5.2.4 스트림 인터페이스 드라이버 작성을 위해 필요한 요소들
5.2.5 비동기 명령 처리에 대해
5.3. 버스 인터페이스 드라이버
5.3.1 클라이언트 드라이버를 위한 버스 드라이버의 서비스
5.3.2 버스 드라이버가 클라이언트 드라이버를 로딩하는 방법
5.4 네이티브 인터페이스 드라이버
5.5 PDD
5.6 미니포트 드라이버
5.7 하드웨어 인터럽트 서비스 스레드 구현방법
5.8 Installable ISR

6장 디바이스 드라이버 응용
6.1 간단한 스트림 인터페이스 드라이버
6.1.1 구현 목적
6.1.2 동작하는 개념도
6.1.3 드라이버를 생성하기 위해 필요한 파일과 빌드방법
6.1.4 드라이버, 응용프로그램 소스파일 및 보조파일 분석
6.1.5 설치방법 고찰
6.2 시리얼 디바이스 드라이버
6.2.1 동작원리
6.2.2 MDD 관점에서 드라이버 개발하기
6.2.3 PDD 관점에서 드라이버 개발하기
6.2.4 mini-PDD 관점에서 드라이버 개발하기
6.3 네트워크 디바이스 드라이버
6.3.1 동작원리
6.3.2 드라이버 소스파일 분석
6.4 오디오 디바이스 드라이버
6.4.1 동작원리
6.4.2 소스파일 분석
6.5 디스플레이 디바이스 드라이버
6.5.1 동작원리
6.5.2 드라이버의 생성과 설치방법
6.6 터치판넬 디바이스 드라이버
6.6.1 동작원리
6.6.2 PDD 형식을 사용해 터치스크린 드라이버 작성하기
6.7 파일시스템 디바이스 드라이버
6.7.1 동작원리
6.7.2 샘플 파일시스템 소스와 설치 방법
6.8 USB 디바이스 드라이버
6.8.1 USB 디바이스 드라이버의 종류
6.8.2 호스트 관점에서 개발돼야 하는 드라이버
6.8.3 슬레이브 관점에서 개발돼야 하는 드라이버
6.9 기본편을 마치면서



II부 응용편

7장 개발환경 구축
7.1 요구사항
7.2 Windows CE v5.0 플랫폼 빌더 설치하기
7.3 시스템의 환경설정
7.4 개발 절차

8장 타겟 시스템의 개요
8.1 ARM 개요
8.1.1 ARM이란?
8.1.2 ARM의 특징
8.1.3 ARM의 구조
8.1.4 프로그래머스 모델
8.1.5 예외처리
8.1.6 ARM 명령어
8.2 타겟 시스템(2410TK)의 개요
8.2.1 삼성 S3C2410의 개요
8.2.2 S3C2410의 특징
8.2.3 2410TK 보드의 개요
8.3 2410TK 보드 테스트
8.3.1 환경설정
8.3.2 2410TK 보드의 기능 테스트

9장 2410TK 보드에 Windows CE 포팅
9.1 포팅 준비
9.1.1 BSP 구성하기
9.1.2 EBOOT 구현
9.2 커널 동작과정
9.2.1 OAL이란?
9.2.2 OAL 작성
9.2.3 OAL 기본함수 작성
9.2.4 OAL 추가함수 작성
9.3 커널 올리기
9.3.1 BSP 복사하여 치워두기
9.3.2 BSP 등록하기
9.4 KITL을 이용한 디버깅

10장 디바이스 드라이버 만들기
10.1 간단한 디바이스 드라이버 만들기
10.2 인터럽트를 이용한 디바이스 드라이버 만들기
10.3 KITL을 이용한 디바이스 드라이버 디버깅
10.4 드라이버 테스트

11장 Windows CE의 플랫폼 만들기
11.1 Tiny Kernel 플랫폼

12장 Windows CE용 애플리케이션 만들기
12.1 애플리케이션 개발을 위한 SDK 만들기
12.2 네이티브와 매니지드 애플리케이션 모델
12.3 애플리케이션에서 직접 디바이스 제어하기
12.4 사용자용 셸 만들기
12.5 애플리케이션 탑재
12.6 응용편을 마치면서

부록 ARM 명령어 SET
I부 기본편

1장 Windows CE 소개
1.1 Windows CE 둘러보기
1.2 Windows CE의 역사
1.3 Windows CE를 사용하는 이유
1.4 Windows CE에서 사용하는 프로그래밍 언어
1.5 Windows CE v5.0의 새로은 기능

2장 플랫폼 빌더
2.1 플랫폼 빌더에 대하여 배우기에 앞서
2.1.1 폴더의 정의
2.1.2 자주 나오는 용어 정의
2.2 플랫폼 빌더를 사용하여 이미지를 생성하는 단계
2.2.1 명령 프롬프트 창에서 이미지를 생성하는 고전적인 절차
2.2.2 모듈 빌드
2.2.3 플랫폼 빌더 IDE 상에서 메뉴를 통해 Windows CE용 이미지를 생성하는 과정
2.3 플랫폼을 생성해 플랫폼 빌더의 사용방법을 익히자
2.3.1 플랫폼 생성
2.3.2 Windows CE 이미지파일(NK.BIN) 생성하기
2.3.3 빌드된 NK.BIN 파일을 에뮬레이터로 다운로드해보자
2.4 Windows CE를 위한 호스트 시스템과 타겟 시스템의 연결
2.4.1 플랫폼 매니저가 지원하는 툴들
2.4.2 CETarget에 의해 제공되는 툴들
2.4.3 커널 디버깅 기능
2.5 Windows CE 이미지 생성을 위한 구성파일
2.5.1 REG
2.5.2 DAT
2.5.3 DB
2.5.4 BIB
2.6 플랫폼 빌더가 제공하는 유용한 툴, CEC Editor
2.6.1 CEC 에디터 사용하기
2.6.2 플랫폼 빌더 상으로 작성한 CEC 파일을 임포트하기
2.7 플랫폼 빌더 Component 프로젝트 생성
2.8 플랫폼 빌더 Command Build 창 이용하기
2.9 플랫폼 빌더로 생성되는 BIN 파일분석
2.9.1 BIN 헤더부분
2.9.2 RECORD 부분
2.9.3 LAST RECORD 부분
2.10 SAMPLE BSP 생성하기

3장 부트로더
3.1 부트로더의 역할
3.2 부트로더 작성을 위해 플랫폼 빌더가 제공하는 요소
3.2.1 BLCOMMON의 BootLoaderMain() 함수
3.2.2 BLCOMMON의 DownloadImage() 함수
3.3 개발자가 작성해야 하는 부트로더 지원요소
3.3.1 Sources 파일
3.3.2 StartUp : startup.s
3.3.3 BOOL OEMDebugInit(void) : main.c
3.3.4 BOOL OEMPlatformInit(void) : main.c
3.3.5 DWORD OEMPreDownload(void) : main.c
3.3.6 BOOL OEMReadData(DWORD dwData, PUCHAR pData) : main.c
3.3.7 void OEMShowProgress(DWORD dwPacketNum) : main.c
3.3.8 LPBYTE OEMMapMemAddr(DWORD dwImageStart, DWORD dwAddr) : flash.c
3.3.9 BOOL OEMIsFlashAddr(DWORD dwAddr) : flash.c
3.3.10 BOOL OEMStartEraseFlash(DWORD dwStartAddr, DWORD dwLength) : flash.c
3.3.11 void OEMContinueEraseFlash(void) : flash.c
3.3.12 BOOL OEMFinishEraseFlash(void) : flash.c
3.3.13 BOOL OEMWriteFlash(DWORD dwStartAddr, DWORD dwLength) : flash.c
3.3.14 void OEMLaunch(
DWORD dwImageStart,
DWORD dwImageLength,
DWORD dwLaunchAddr,
const ROMHDR *pRomHdr ) : main.c
3.4. 부트로더 만들기

4장 커널과 OAL
4.1 Windows CE 커널의 특징
4.1.1 작업 스케줄링
4.1.2 리소스 관리(메모리 관리)
4.2 커널과 OAL 관계
4.3 필수적인 구현이 필요한 OAL 함수들
4.3.1 void StartUp(void)
4.3.2 void OEMInitDebugSerial(void)
4.3.3 void OEMInit(void)
4.3.4 BOOL OEMGetExtensionDRAM(LPDWORD lpMemStart, LPDWORD lpMemLen)
4.3.5 OEM Interrupt Service Routine
4.3.6 BOOL OEMInterruptEnable (DWORD idInt, LPVOID pvData, DWORD cbData)
4.3.7 void OEMInterruptDisable(DWORD idInt)
4.3.8 void OEMInterruptDone(DWORD idInt)
4.3.8 void OEMInterruptDone(DWORD idInt)
4.3.10 BOOL OEMIoControl(DWORD IoControlCode
4.3.11 ULONG SC_GetTickCount(void)
4.4 커널인증을 위해서 준비해야 하는 OAL의 역할
4.4.1 BIB 파일의 CONFIG 영역 수정
4.4.2 BIB 파일의 MODULE 영역
4.4.3 OEMInit() 함수 내의 작업
4.5 파워관리 관련 OAL함수들
4.6 커널 디버깅을 위한 OAL의 준비
4.6.1 KITL을 사용하기 위한 준비작업(부팅과정)
4.6.2 KITL 사용되는 과정
4.6.3 플랫폼 빌더 5.0의 Kitl 구현을 지원하는 Common 요소들
4.7 VBRIDGE를 사용한 네트워크 자원의 공유

5장 디바이스 드라이버
5.1 디바이스 드라이버의 개요
5.1.1 스트림 인터페이스 드라이버
5.1.2 버스 인터페이스 드라이버
5.1.3 네이티브 인터페이스 드라이버
5.1.4 PDD
5.1.5 미니포트 드라이버
5.2 스트림 인터페이스 드라이버 DDI
5.2.1 디바이스 드라이버 등록/해제와 관련된 함수
5.2.2 디바이스 드라이버에게 전달되는 관련 함수
5.2.3 응용프로그램과 통신하는 함수
5.2.4 스트림 인터페이스 드라이버 작성을 위해 필요한 요소들
5.2.5 비동기 명령 처리에 대해
5.3. 버스 인터페이스 드라이버
5.3.1 클라이언트 드라이버를 위한 버스 드라이버의 서비스
5.3.2 버스 드라이버가 클라이언트 드라이버를 로딩하는 방법
5.4 네이티브 인터페이스 드라이버
5.5 PDD
5.6 미니포트 드라이버
5.7 하드웨어 인터럽트 서비스 스레드 구현방법
5.8 Installable ISR

6장 디바이스 드라이버 응용
6.1 간단한 스트림 인터페이스 드라이버
6.1.1 구현 목적
6.1.2 동작하는 개념도
6.1.3 드라이버를 생성하기 위해 필요한 파일과 빌드방법
6.1.4 드라이버, 응용프로그램 소스파일 및 보조파일 분석
6.1.5 설치방법 고찰
6.2 시리얼 디바이스 드라이버
6.2.1 동작원리
6.2.2 MDD 관점에서 드라이버 개발하기
6.2.3 PDD 관점에서 드라이버 개발하기
6.2.4 mini-PDD 관점에서 드라이버 개발하기
6.3 네트워크 디바이스 드라이버
6.3.1 동작원리
6.3.2 드라이버 소스파일 분석
6.4 오디오 디바이스 드라이버
6.4.1 동작원리
6.4.2 소스파일 분석
6.5 디스플레이 디바이스 드라이버
6.5.1 동작원리
6.5.2 드라이버의 생성과 설치방법
6.6 터치판넬 디바이스 드라이버
6.6.1 동작원리
6.6.2 PDD 형식을 사용해 터치스크린 드라이버 작성하기
6.7 파일시스템 디바이스 드라이버
6.7.1 동작원리
6.7.2 샘플 파일시스템 소스와 설치 방법
6.8 USB 디바이스 드라이버
6.8.1 USB 디바이스 드라이버의 종류
6.8.2 호스트 관점에서 개발돼야 하는 드라이버
6.8.3 슬레이브 관점에서 개발돼야 하는 드라이버
6.9 기본편을 마치면서



II부 응용편

7장 개발환경 구축
7.1 요구사항
7.2 Windows CE v5.0 플랫폼 빌더 설치하기
7.3 시스템의 환경설정
7.4 개발 절차

8장 타겟 시스템의 개요
8.1 ARM 개요
8.1.1 ARM이란?
8.1.2 ARM의 특징
8.1.3 ARM의 구조
8.1.4 프로그래머스 모델
8.1.5 예외처리
8.1.6 ARM 명령어
8.2 타겟 시스템(2410TK)의 개요
8.2.1 삼성 S3C2410의 개요
8.2.2 S3C2410의 특징
8.2.3 2410TK 보드의 개요
8.3 2410TK 보드 테스트
8.3.1 환경설정
8.3.2 2410TK 보드의 기능 테스트

9장 2410TK 보드에 Windows CE 포팅
9.1 포팅 준비
9.1.1 BSP 구성하기
9.1.2 EBOOT 구현
9.2 커널 동작과정
9.2.1 OAL이란?
9.2.2 OAL 작성
9.2.3 OAL 기본함수 작성
9.2.4 OAL 추가함수 작성
9.3 커널 올리기
9.3.1 BSP 복사하여 치워두기
9.3.2 BSP 등록하기
9.4 KITL을 이용한 디버깅

10장 디바이스 드라이버 만들기
10.1 간단한 디바이스 드라이버 만들기
10.2 인터럽트를 이용한 디바이스 드라이버 만들기
10.3 KITL을 이용한 디바이스 드라이버 디버깅
10.4 드라이버 테스트

11장 Windows CE의 플랫폼 만들기
11.1 Tiny Kernel 플랫폼

12장 Windows CE용 애플리케이션 만들기
12.1 애플리케이션 개발을 위한 SDK 만들기
12.2 네이티브와 매니지드 애플리케이션 모델
12.3 애플리케이션에서 직접 디바이스 제어하기
12.4 사용자용 셸 만들기
12.5 애플리케이션 탑재
12.6 응용편을 마치면서

부록 ARM 명령어 SET

저자 소개

저자 : 이봉석
국립서울산업대학교 전자계산학과를 졸업한 뒤, 1998년 (주)하제소프트를 설립하여 지금까지 국내외에서 사용되는 많은 하드웨어 벤더들의 디바이스 드라이버를 개발, 공급해오고 있다. 1998년 국내 최초로 'Windows 95를 위한 가상장치관리자(VxD)'를 '마이크로소프트웨어' 잡지에 기고한 뒤, 2005년 『고급개발자를 위한 디바이스 드라이버 구조와 원리, 그리고 제작노하우』라는 저서를 출간했다. 현재 (주)하제소프트의 대표이사를 맡고 있으며, 국내의 많은 시스템소프트웨어 개발자들의 수준을 향상시키기 위해 기업교육과 USB, 윈도우 디바이스 드라이버, Windows CE(.NET, 5.0) 분야에서 전임강사로도 활발히 활동하고 있다.

품목정보

발행일
2006년 05월 12일
쪽수, 무게, 크기
736쪽 | 1510g | 190*255*40mm
ISBN13
9788989975939

책 속으로

((이 봉 석))

필자처럼 리눅스나 다른 운영체제가 아닌 Windows 계통의 운영체제 위주로 공부해온 사람들이 Windows CE를 접근하기는 훨씬 쉽다. 그러나 데스크탑 Windows 운영체제에서는 내부를 들여다 볼 수 없기에 느껴야 했던 답답한 마음 등은 필자처럼 고리타분하게도 운영체제의 원리를 궁금해하는 사람이라면 누구에게나 일어날 수 있는 갈증과도 같았다. 이러던 중 Windows CE를 접하게 되면서 그 동안 궁금했던 가려진 운영체제 코드들을 볼 수 있게 되었다. 오픈소스인 리눅스를 공부하는 사람들은 아무렇지 않을 수 있는 자극일 수도 있겠다. 이런 운영체제 코드를 실제로 눈으로 보면서 엄청난 충격과 함께 희열을 느꼈던 것은 단순히 필자의 정신세계에 문제가 있어서만은 아닐 것이다. 그러므로 어쩌다 해킹된 일부 데스크탑 운영체제 코드를 보거나 아니면 커널 디버거와 심볼파일을 사용해서 자신의 리버스 엔지니어링 기술에 의존해 역추적하여 실제 운영체제의 동작원리를 비슷하게나마 연구해오던 필자와 같은 부류의 사람들에게 Windows CE를 적극 추천하는 바이다. 리눅스나 다른 임베디드 운영체제를 접하는 사람들은 태스크(TASK)라는 개념 아래, 자신의 코드에서 while()이나 반복 등의 문장을 배제하면서, 가급적이면 비동기적으로 동작하는 코드를 작성하려고 고민한다. 그러면서 외부 태스크와의 통신을 위해서 시그널(Signal) 방식을 연구하는 데 반해서, Windows CE는 과거 윈도우 데스크탑 운영체제가 그러하듯이 프로세스와 스레드 개념을 적용하며, 이벤트(Event)나 메시지(Message) 기반의 코딩을 지원하고 있다. 또한 앞으로 발표될 Windows CE 차기 버전에서는 데스크탑에서 보던 계층화된 디바이스 드라이버 구조 또한 나타날 것이다. 이 말이 Windows CE가 다른 것이 넘볼 수 없는 막강한 장점을 가졌다는 의미는 아니다. 데스크탑 환경의 Windows 운영체제를 공부해오던 사람들은 아무래도 Windows CE 환경이 훨씬 이해하기 쉽다는 뜻이다. 따라서 이 책을 읽는 독자들은 최소한 데스크탑 환경에서 사용되는 Windows의 구조에 대해 약간이라도 이해해두는 편이 유리할 것이다. Windows CE를 심도있게 다루는 책은 해외서적뿐만 아니라 국내서적도 찾기가 힘들다. 사실 Windows CE에 대한 모든 내용은 마이크로소프트가 제공하는 MSDN을 참조하면 된다. 하지만 엄청나게 방대한 MSDN에서 자신이 원하는 내용을 스스로 찾아 습득하는 일은 여간 어려운 일이 아니다. 이 책을 통해 Windows CE를 공부하고 싶거나 Windows CE 기반의 개발을 시작하려는 개발자들이 많은 도움을 얻기를 바란다.
((류 명 희))

처음 에이콘출판사에게서 Windows CE와 관련된 서적을 만들어 보자는 제의를 받았을 때는 상당히 고민스러웠다. Windows CE를 접하게 된 지 1년도 채 되지 않던 때였기 때문이었다. 그럼에도 불구하고 출판사의 제의를 흔쾌히 승낙한 데는 필자가 처음 Windows CE를 접하게 되면서 가졌던 혼란을 다른 사람들이 똑같이 반복하지 않기를 바라던 이유가 있었다. 또한 필자가 알고 있던 단편적인 지식들을 하나로 묶어 체계를 정립하고자 하는 의도도 컸다. 책을 만들기까지 장장 약 7개월의 시간이 흘렀다. 책을 만들면서 어디서부터 어디까지 다뤄야 할지가 가장 큰 고민거리였다. 책을 저술하는 도중 업체 관계자와 많은 미팅을 가지면서 "기존 서적과는 좀 차별화를 둬야겠다"고 생각하고 전력을 다했다. 물론 이는 저자만의 생각일지도 모른다. 하지만 우리 저자들은 이 책을 읽는 독자들이 처음단계에 Windows CE를 접하게 되면서 경험하게 되는 애로점들을 위주로 작성했다. 필자의 경우에는 Windows CE에 앞서 임베디드 리눅스만을 다뤄 왔다. 그렇기 때문에 이 책에서도 임베디드 리눅스 때와 같이 접근했으며, 가장 큰 애로점으로 여기던 소스코드의 추적에 역점을 뒀다. 이 책은 Windows CE에 대한 기본을 다루는 기본편과 실제 타겟 시스템을 가지고 작업하는 응용편으로 나뉘어 있다. 몇 안 되는 대부분 Windows CE 관련 서적들은 애플리케이션을 다루고 있는 데 반해, 이 책에서는 Windows CE의 기본과 응용을 배울 수 있을 것이다. 특히 가장 기본적으로 사용이 되는 Windows CE를 이용해 타겟 시스템을 살리는 방법, 문제가 발견되면 어떻게 문제점을 찾아가는지(디버깅 방법), 남들과 다르게 애플리케이션을 이용하는 방법들에 대해서 설명했다. 대부분 독자들이 MSDN에서도 찾지 못했을 비법들을 많이 다루고자 노력했다. 아무쪼록 이 책이 한국에서 Windows CE를 사용하는 모든 분께 조금이나마 도움이 되기를 진심으로 기원한다.

--- 저자 서문

추천평

Windows CE는 마이크로소프트에서 개발한 가장 진보된 임베디드 시스템용 운영체제입니다. 홈 네트워크, 핸드헬드 단말기, 웹패드, PMP 등 네트워킹과 멀티미디어 기능을 절실히 요구하는 다양한 제품에 적용돼 있으며, 특히 최근 들어 사용이 급격히 늘고 있는 카 네비게이션 제품에는 다른 대안이 없을 정도로 높은 점유율을 확보하고 있습니다. 전세계 IT 기술을 선도하고 있는 마이크로소프트가 많은 투자와 노력을 기울여서 지원하고 있는 임베디드 운영체제라는 점을 고려해 본다면 Windows CE가 이처럼 확대 보급되고 있는 상황은 당연한 결과라고 여겨집니다.

많은 임베디드 시스템 개발자가 Windows CE 운영체제에 많은 관심을 보이고 있으며 마이크로소프트도 개발자들의 열띤 관심에 부응하기 위해 많은 노력을 기울이고 있습니다. 전세계 Windows CE 개발자 누구라도 참여할 수 있는 뉴스그룹을 운영하고 있으며, 미국뿐 아니라 세계 주요 도시에서 주기적으로 개발자 컨퍼런스를 실시하고 있으며 특히 마이크로소프트 관련 개발자들이 대부분 알고 있는 MSDN에도 Windows CE 관련 정보를 지속적으로 업데이트하고 있습니다.

이번에 에이콘출판사에서 출간하는 『Windows CE 실전 가이드』는 마이크로소프트가 지속적으로 시행하고 있는 여러 가지 지원과 더불어 Windows CE 관련 개발자에게 희소식이 될 것으로 확신합니다. 저자들이 Windows CE를 이용해 실제로 제품을 개발하면서 얻은 노하우를 바탕으로 새로운 시각으로 접근하여 Windows CE를 설명하고 있기 때문입니다. 하드웨어와 밀접한 관계가 있는 저수준 계층이 모든 운영체제에서 개발자가 가장 어려워하는 부분이며 실제로 개발을 할 때도 많은 시간이 투입되는 부분입니다. 이 책을 통해 부트로더, OAL, 디바이스 드라이버 등 Windows CE의 저수준 계층에 관심이 있는 개발자들이 많은 도움을 받을 수 있기를 기대합니다.
어드밴텍테크놀로지스㈜ 대표이사 최 영 준
<감수의 글>
Windows CE가 세상에 나온 후 지금까지 많은 성장과 발전을 거듭했습니다. 버전도 나날이 발전해 Windows CE v5.0까지 출시되었으며, 성능도 데스크탑 PC처럼 다양해졌습니다. 한국의 뛰어난 IT 인프라를 바탕으로 임베디드 시장은 꾸준히 성장해왔고, 그 중 Windows CE는 다른 임베디드 OS와 비교가 되지 않을 정도로 폭발적인 성장을 기록하고 있습니다. 그 결과 초기의 한정된 분야에서 점차 다양한 디바이스 형태로 소비자에게 접근하고 있습니다.
우리는 주변에서 수많은 Windows CE 기반의 장비들을 접하고 그 속에서 편리하게 생활하고 있지만, 정작 이런 장비를 개발하는 사람들은 많은 어려움을 겪고 있었습니다. 부족한 개발관련 자료와, 교육, 그리고 전문서적들... 많은 개발자들이 이런 아쉬움을 가슴 한 켠에 묻어두고 있을 것입니다. Windows CE의 폭발적인 성장에도 불구하고 국내에 관련 엔지니어가 턱없이 부족한 것도 이런 환경과 무관하지 않습니다. Windows CE 기반의 제품을 개발하는 이들과 많은 업무협의를 해오는 동안 부족한 개발인력과 교육여건을 토로하는 목소리를 접하면서도, 시원한 해결방안을 제시하지 못한 것을 늘 안타깝게 생각했습니다.
개발자들을 위한 깊이 있고 친절한 안내서가 필요하다는 각계의 염원을 모아 『Windows XP Embedded 실전 가이드』에 이어 Windows CE 전문 도서 제작을 기획해 드디어 빛을 보게 되었습니다. 이 책은 Windows CE를 제대로 배워보고자 하는 엔지니어를 위해 로우레벨 계층부터 훑어가는 것에서 시작해 누구나 쉽게 Windows CE의 세상에 들어갈 수 있는 길을 제시하고 있습니다. 나아가 난이도 있는 주제들을 친절하고 심도있게 다뤄서 좀더 깊이 공부하고자 하는 독자들의 갈증도 해소하고자 노력하고 있습니다. 또한 셋탑박스, PDA, 핸드폰 등 일상생활에 가장 많이 활용되는 ARM CPU 기반에서 Windows CE를 어떻게 개발하는지를 다양한 실습예제를 통하여 자세히 설명하고, 많은 개발자들이 어려워하는 부분인 디바이스 드라이버 부분을 알기 쉽게 풀이하고 있습니다. 특히 ARM 코어 부분은 초보자들이 숙지해야 하는 내용을 다루고 있어 ARM CPU에 친숙하지 않은 엔지니어도 쉽게 접근할 수 있도록 구성되어 있습니다.
Windows CE를 개발하는 엔지니어라면, 마이크로소프트사에서 제공하는 도움말이나 MSDN 내용만으로는 뭔가 충분하지 못하고 방대한 내용들이 여기저기 흩어져 있어 난감했던 경험이 많을 것입니다. "체계적으로 정리되어 있어 필요할 때 언제나 쉽게 참고할 수 있는 안내서가 아쉽다"는 생각도 한번쯤은 가졌을 것입니다. 이런 아쉬움을 털어낼 수 있는 안내서, 지금까지 누구도 하지 않았던 Window CE 개발자들을 위한 벗이 여러분 곁을 찾아갈 수 있게 되어서 참으로 기쁩니다. "바람은 우연이지만, 풍차는 우연이 아니다"는 말처럼, 이 책이 Windows CE를 활용하는 개발자들과 처음 도전하는 개발자들에게 큰 도움이 되어, 우리나라의 임베디드 시장을 더욱 발전시키는 기틀이 되기를 바랍니다.

한국마이크로소프트 상무이사 김 시 연

리뷰/한줄평3

리뷰

8.4 리뷰 총점

한줄평

첫번째 한줄평을 남겨주세요.