이미 소장하고 있다면 판매해 보세요.
|
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 |
|
((이 봉 석))
필자처럼 리눅스나 다른 운영체제가 아닌 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를 사용하는 모든 분께 조금이나마 도움이 되기를 진심으로 기원한다. --- 저자 서문 |