Windows CE 실전 가이드
- 지은이이봉석, 류명희
- ISBN : 898997593X
- 40,000원
- 2006년 05월 12일 펴냄 (절판)
- 페이퍼백 | 736쪽 | 190*255mm
- 시리즈 : 임베디드 시스템
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/windows-ce)
국내서는 물론이고 원서도 거의 드문 탓에 자료를 찾느라 애태우던 개발자들의 갈증을 해소시켜 줄 Windows CE 책이 드디어 출간되었다.
이 책에서는 네비게이션, PMP 등 멀티미디어 제품을 포함한 임베디드 시스템에서 동작하는 운영체제인 Windows CE의 로우레벨 계층을 상세히 파헤치고 있다. 또한 디바이스 드라이버의 구조와 작성법을 설명하며, 특정 ARM 타겟을 대상으로 Windows CE를 포팅하는 과정을 자세히 알려준다.
[ 이 책의 구성 ]
1장. Windows CE 소개에서는 Windows CE의 전반적인 개요와 역사, 장점과 특징, Windows CE v5.0에서 특히 달라진 기능 등에 대해 소개한다.
2장. 플랫폼 빌더에서는 플랫폼 빌더 5.0을 사용하는 방법을 소개하고 있다. 플랫폼 빌더를 사용해 플랫폼을 생성하는 방법과 이미지 생성 방법, 디버깅 방법 등을 소개한다.
3장. 부트로더에서는 부트로더의 구조를 파악하고 생성하는 방법을 소개하고 있다.
4장. 커널과 OAL에서는 Windows CE v5.0 커널의 특징과 OAL(OEM Adaptation Layer)을 소개하고 있다. 특히 커널과 OAL의 연관관계를 위주로 설명한다.
5장. 디바이스 드라이버의 개요에서는 Windows CE v5.0에서 운용되는 디바이스 드라이버들의 유형을 소개하고 있다. 여기에는 스트림 인터페이스, 네이티브 인터페이스, 버스 인터페이스, 미니포트, 계층 드라이버 모델 등이 포함된다. 또한 드라이버에서 자주 다루는 하드웨어 인터럽트 처리방식에 대해 소개한다.
6장. 디바이스 드라이버의 응용에서는 Windows CE v5.0에서 운용되는 실전 드라이버들 중 사용빈도가 높은 드라이버를 선정해 소개한다.
7장. 개발환경 구축에서는 개발환경을 구축하는 방법과 개발시의 절차를 다룬다.
8장. 타겟 시스템의 개요에서는 타겟 시스템의 내용에 대해 다루며, 전세계에서 가장 많이 사용하고 있는 ARM에 대해 살펴 본다. 간단하게 나마, ARM에 대해 이해를 하고 타겟 시스템에 대해 이해를 하도록 구성했다.
9장. 2410TK 보드에 Windows CE 포팅에서는 Windows CE를 사용하는 방법 및 EBOOT와 Windows CE 커널을 올려서 동작시키는 방법을 살펴볼 것이다. 여기서 마이크로소프트의 Windows CE 플랫폼 빌더에 포함된 SMDK2410에 대한 BSP를 활용해 타겟 시스템에 적재하는 방법을 살펴본다.
10장. 디바이스 드라이버 만들기에서는 디바이스 드라이버를 만드는 방법을 살펴보게 되는데, 간단하게 샘플 디바이스 드라이버를 만들고 이를 적재해 디버깅하는 방법과 Windows CETK를 활용해 디바이스 드라이버를 테스팅하는 방법을 설명한다. 특히 CETK에 나만의 디바이스 드라이버를 위한 테스트 루틴을 추가하는 방법에 대해 주로 살펴본다.
11장. Windows CE의 플랫폼 만들기에서는 프로젝트로 Tiny Kernel을 활용해 타겟 시스템에 가장 빠르게 Windows CE를 올려서 Windows CE가 제대로 동작되는지 여부를 확인하도록 구성했다.
12장. Windows CE용 애플리케이션 만들기에서는 애플리케이션에 대해 살펴보게 되는데, 플랫폼 빌더에서 애플리케이션을 작성하는 방법을 다룬다. 또한 애플리케이션에서 디바이스 드라이버와 같은 흉내를 내도록 프로그래밍 하는 방법을 살펴보며, 이때 사용되는 SDK를 만드는 방법과 제품에 적용하기 위해 사용자용 셸을 만드는 방법에 대해 배워보게 된다.
[ 이 책의 대상 및 준비사항 ]
이 책은 Windows CE를 처음 접하게 되는 독자층을 위주로 작성되었다. 물론 Windows CE를 사용하고는 있지만 특별한 기능들을 살펴보고자 하는 독자들이 대상이다. 이 책에서 다루고 있는 대부분 내용이 C 언어로 구성되었기 때문에 C에 대한 기초지식이 있어야 이해가 빠를 것이다. 그리고 무엇보다 임베디드 시스템의 개발방법에 대한 이해는 필수적일 것이다.
[ 이 책의 활용법 ]
이 책에서 다루는 내용은 대부분 MSDN에 이미 있는 내용들이다. 그렇기 때문에 이 책을 읽었다고 해서 독자들이 모두 Windows CE에 대한 전문가가 된다는 생각은 버리기를 바란다. 단, 이 책은 Windows CE를 좀더 체계적으로 공부하고 전문가가 되기 위한 한 과정으로 생각하기를 바란다. 2부. 응용편에서 다루게 되는 내용들은 특히, 실제 제품을 개발하는 경우에 접하게 되는 내용들을 위주로 설명했기 때문에 실무에서 활용할 때 많은 참고가 되리라 생각한다.
[ 부록 CD ]
이 책에 포함된 CD-ROM에는 본문에 사용된 모든 예제들이 포함되어 있다. 이들 코드들은 Microsoft Windows XP Professional 버전에 Windows CE v5.0 플랫폼 빌더(Platform Builder)가 설치되어 있어야 하며, Window CE v5.0 플랫폼 빌더는 2004년과 2005년도 패치가 적용된 PC에서 개발하고 테스트했다. 따라서 이 코드를 작동해 보려면 위에서 열거한 모든 환경이 맞추어져 있어야만 동작이 가능하다. 또한 6장의 예제는 Windows CE v5.0 플랫폼 빌더에 X86 에뮬레이터가 설치되어 있어야만 하며, 2부. 응용편의 모든 예제는 2410TK 보드가 있어야만 정상적으로 사용이 가능하다. 코드를 개발하는 데 사용한 개발툴은 모두 Windows CE v5.0 플랫폼 빌더에 포함되어 있다. 비록 2410TK 보드에 맞추어서 개발하고 테스트되었지만, 모든 예제 코드들은 Windows CE v5.0의 사용에 목적을 두고 있으며, 다른 여러 프로세서로 쉽게 포팅할 수 있다.
(https://github.com/AcornPublishing/windows-ce)
국내서는 물론이고 원서도 거의 드문 탓에 자료를 찾느라 애태우던 개발자들의 갈증을 해소시켜 줄 Windows CE 책이 드디어 출간되었다.
이 책에서는 네비게이션, PMP 등 멀티미디어 제품을 포함한 임베디드 시스템에서 동작하는 운영체제인 Windows CE의 로우레벨 계층을 상세히 파헤치고 있다. 또한 디바이스 드라이버의 구조와 작성법을 설명하며, 특정 ARM 타겟을 대상으로 Windows CE를 포팅하는 과정을 자세히 알려준다.
[ 이 책의 구성 ]
1장. Windows CE 소개에서는 Windows CE의 전반적인 개요와 역사, 장점과 특징, Windows CE v5.0에서 특히 달라진 기능 등에 대해 소개한다.
2장. 플랫폼 빌더에서는 플랫폼 빌더 5.0을 사용하는 방법을 소개하고 있다. 플랫폼 빌더를 사용해 플랫폼을 생성하는 방법과 이미지 생성 방법, 디버깅 방법 등을 소개한다.
3장. 부트로더에서는 부트로더의 구조를 파악하고 생성하는 방법을 소개하고 있다.
4장. 커널과 OAL에서는 Windows CE v5.0 커널의 특징과 OAL(OEM Adaptation Layer)을 소개하고 있다. 특히 커널과 OAL의 연관관계를 위주로 설명한다.
5장. 디바이스 드라이버의 개요에서는 Windows CE v5.0에서 운용되는 디바이스 드라이버들의 유형을 소개하고 있다. 여기에는 스트림 인터페이스, 네이티브 인터페이스, 버스 인터페이스, 미니포트, 계층 드라이버 모델 등이 포함된다. 또한 드라이버에서 자주 다루는 하드웨어 인터럽트 처리방식에 대해 소개한다.
6장. 디바이스 드라이버의 응용에서는 Windows CE v5.0에서 운용되는 실전 드라이버들 중 사용빈도가 높은 드라이버를 선정해 소개한다.
7장. 개발환경 구축에서는 개발환경을 구축하는 방법과 개발시의 절차를 다룬다.
8장. 타겟 시스템의 개요에서는 타겟 시스템의 내용에 대해 다루며, 전세계에서 가장 많이 사용하고 있는 ARM에 대해 살펴 본다. 간단하게 나마, ARM에 대해 이해를 하고 타겟 시스템에 대해 이해를 하도록 구성했다.
9장. 2410TK 보드에 Windows CE 포팅에서는 Windows CE를 사용하는 방법 및 EBOOT와 Windows CE 커널을 올려서 동작시키는 방법을 살펴볼 것이다. 여기서 마이크로소프트의 Windows CE 플랫폼 빌더에 포함된 SMDK2410에 대한 BSP를 활용해 타겟 시스템에 적재하는 방법을 살펴본다.
10장. 디바이스 드라이버 만들기에서는 디바이스 드라이버를 만드는 방법을 살펴보게 되는데, 간단하게 샘플 디바이스 드라이버를 만들고 이를 적재해 디버깅하는 방법과 Windows CETK를 활용해 디바이스 드라이버를 테스팅하는 방법을 설명한다. 특히 CETK에 나만의 디바이스 드라이버를 위한 테스트 루틴을 추가하는 방법에 대해 주로 살펴본다.
11장. Windows CE의 플랫폼 만들기에서는 프로젝트로 Tiny Kernel을 활용해 타겟 시스템에 가장 빠르게 Windows CE를 올려서 Windows CE가 제대로 동작되는지 여부를 확인하도록 구성했다.
12장. Windows CE용 애플리케이션 만들기에서는 애플리케이션에 대해 살펴보게 되는데, 플랫폼 빌더에서 애플리케이션을 작성하는 방법을 다룬다. 또한 애플리케이션에서 디바이스 드라이버와 같은 흉내를 내도록 프로그래밍 하는 방법을 살펴보며, 이때 사용되는 SDK를 만드는 방법과 제품에 적용하기 위해 사용자용 셸을 만드는 방법에 대해 배워보게 된다.
[ 이 책의 대상 및 준비사항 ]
이 책은 Windows CE를 처음 접하게 되는 독자층을 위주로 작성되었다. 물론 Windows CE를 사용하고는 있지만 특별한 기능들을 살펴보고자 하는 독자들이 대상이다. 이 책에서 다루고 있는 대부분 내용이 C 언어로 구성되었기 때문에 C에 대한 기초지식이 있어야 이해가 빠를 것이다. 그리고 무엇보다 임베디드 시스템의 개발방법에 대한 이해는 필수적일 것이다.
[ 이 책의 활용법 ]
이 책에서 다루는 내용은 대부분 MSDN에 이미 있는 내용들이다. 그렇기 때문에 이 책을 읽었다고 해서 독자들이 모두 Windows CE에 대한 전문가가 된다는 생각은 버리기를 바란다. 단, 이 책은 Windows CE를 좀더 체계적으로 공부하고 전문가가 되기 위한 한 과정으로 생각하기를 바란다. 2부. 응용편에서 다루게 되는 내용들은 특히, 실제 제품을 개발하는 경우에 접하게 되는 내용들을 위주로 설명했기 때문에 실무에서 활용할 때 많은 참고가 되리라 생각한다.
[ 부록 CD ]
이 책에 포함된 CD-ROM에는 본문에 사용된 모든 예제들이 포함되어 있다. 이들 코드들은 Microsoft Windows XP Professional 버전에 Windows CE v5.0 플랫폼 빌더(Platform Builder)가 설치되어 있어야 하며, Window CE v5.0 플랫폼 빌더는 2004년과 2005년도 패치가 적용된 PC에서 개발하고 테스트했다. 따라서 이 코드를 작동해 보려면 위에서 열거한 모든 환경이 맞추어져 있어야만 동작이 가능하다. 또한 6장의 예제는 Windows CE v5.0 플랫폼 빌더에 X86 에뮬레이터가 설치되어 있어야만 하며, 2부. 응용편의 모든 예제는 2410TK 보드가 있어야만 정상적으로 사용이 가능하다. 코드를 개발하는 데 사용한 개발툴은 모두 Windows CE v5.0 플랫폼 빌더에 포함되어 있다. 비록 2410TK 보드에 맞추어서 개발하고 테스트되었지만, 모든 예제 코드들은 Windows CE v5.0의 사용에 목적을 두고 있으며, 다른 여러 프로세서로 쉽게 포팅할 수 있다.
목차
목차
- 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 생성하기
- 2.1 플랫폼 빌더에 대하여 배우기에 앞서
- 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. 부트로더 만들기
- 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를 사용한 네트워크 자원의 공유
- 4.1 Windows CE 커널의 특징
- 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
- 5.1 디바이스 드라이버의 개요
- 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 기본편을 마치면서
- 6.1 간단한 스트림 인터페이스 드라이버
- 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 보드의 기능 테스트
- 8.1 ARM 개요
- 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을 이용한 디버깅
- 9.1 포팅 준비
- 10장 디바이스 드라이버 만들기
- 10.1 간단한 디바이스 드라이버 만들기
- 10.2 인터럽트를 이용한 디바이스 드라이버 만들기
- 10.3 KITL을 이용한 디바이스 드라이버 디버깅
- 10.4 드라이버 테스트
- 11장 Windows CE의 플랫폼 만들기
- 11.1 Tiny Kernel 플랫폼
- 11.1 Tiny Kernel 플랫폼
- 12장 Windows CE용 애플리케이션 만들기
- 12.1 애플리케이션 개발을 위한 SDK 만들기
- 12.2 네이티브와 매니지드 애플리케이션 모델
- 12.3 애플리케이션에서 직접 디바이스 제어하기
- 12.4 사용자용 셸 만들기
- 12.5 애플리케이션 탑재
- 12.6 응용편을 마치면서
도서 오류 신고
정오표
[ p35 표 1.1 ]
‘SH4’행 ‘X86 (CEPC)’을 X86행으로
[ p50 본문 부분 1행 ]
이 과정에서 Sources.cmn 파일을 실행한뒤, _COMMONPUBROOT, _PROJROOT 환경
→ 이 과정에서 Sources.cmn 파일을 실행한뒤, _COMMONPUBROOT, __PROJROOT 환경
[ p133 리스팅 3.8 아래쪽 ]
/* 이 함수가 (생략) 의미가 된다.
*/
부분을 리스팅 마지막 2행 위로 이동
[ p136 그림 3.4 ]
RAM을 위한 공간 → 플래시를 위한 공간
Flash를 위한 공간 → RAM을 위한 공간
[ p142 리스팅 3.18 ]
util.c 파일의 Launch() 함수 → util.s
[ p170 1-2행 ]
필수함수들은~다음과 같다.
→ 앞 페이지에 나열해 놓은 필수함수들은 반드시 구현돼 있어야 NK.exe가 만들어지는 특징을 지닌 함수들이다.
[ p172 예제 4.1 12행의 주석 ]
; 32 메모리 뱅크0번 : SROM(SRAM/ROM) → ; 메모리 뱅크0번 : SROM(SRAM/ROM)
[ p179 3행 ]
이와 같은~다른 외부에서 → 이와 같은 함수명을 사용하는 이유는, 외부에서
[ p179 아래에서 4행 주석 번역 ]
; Init command 2, vector interrupts to 64 → ; 초기화 명령 2, 벡터 인터럽트 64
[ p180 2행 주석 번역 ]
; Init command 2, vector interrupts to 40 → ; 초기화 명령 2, 벡터 인터럽트 40
[ p206 그림 4.14 번역 (위에서부터 아래로) ]
실행할 스레드가 없음
임의의 인터럽트
타이머 완료
웨이크업 이벤트
[ p220 18행, 20행 번역 ]
// device transport config (생략) → // 디바이스 전송에 대한 설정
// Host config → // 호스트 설정
[ p258 ]
‘Inbuffer는 클라이언트 ~ 변수이다.’를 p.254 아래에서 2행 위로 이동
[ p265 9행 ]
‘EnterCriticalSection(&g_devcs);’를 삭제
[ p330 14행 ]
// X86 계통에서는 이처럼 → // 이처럼
[ p366 3-5행 ]
MDD 관점에서~ 못 할뿐만 아니라,
→ 앞으로도 플랫폼 빌더의 버전이 점점 더 올라갈 경우에 PDD 모듈을 지원하는 방법이 항상 같다고 보장하지 못하기 때문에, MDD 관점에서 개발을 해보지 않은 개발자는
[ p411 8행 ]
프로토콜 드라이버로부터 외부컴퓨터로 → 프로토콜 드라이버로부터 다른 곳으로
[ p412 12행 ]
미니포트 드라이버가 ~ 읽혀질 것이다.
→ 미니포트 드라이버에 있는 W_HANDLE_INTERRUPT_HANDLER() 함수에 의해서 데이터가 카드로부터 드라이버 측으로 전송될 것이다.
[ p412 아래에서 3행 ]
온전한 데이터로 확인하게 되면, → 온전하다고 판별되면,
[ p433 아래에서 1행, 12행 ]
case WPDM_CLOSE: 삭제
[ p440 아래에서 2행 번역 ]
예) SA1110 Chip’s case → 예) SA1110 Chip’s 경우
[ p485 1-2행 주석 부분 번역 ]
// IN-FDD 구조에 대한 포인터
// IN-레지스트리키 문자열에 대한 포인터
[ p510 마지막 행 ]
누구라 하더라도 → 누가 하더라도
[ p544 11행 ]
0x0번지까지 밖에는 분기가 불가능하다. → 0x0번지까지만 분기가 가능하다.
[ p557 예제박스 아래 문단 ]
‘지금까지우리는 ~ 않기 때문이다.’ 삭제
[ p559 10-11행 ]
IIC → I2C, IIS → I2S
[ p582 마지막 문단 p.558 아래에서 10행 ]
‘일례로~동작한다.’의 주석으로 이동
[ p596 아래에서 3행 ]
r3 레지스터 저장하는 → r3 레지스터에 저장하는
[ p597 리스팅 9.6의 3행 ]
‘// LED 크기’ → ‘// LED 끄기’
[ p598 5행 공백 삭제 ]
C: \WINCE500\_PLATFORM → C: \WINCE500\PLATFORM
[ p651 예제 10.4 아래 2행 ]
정보의 접두사로 사용되는 것이다. → 정보를 나타낸다.
[ p666 1-2행 ]
위에서는~명시했다.
→ 위에서 살펴본 기능은 일부에 불과하다. KITL을 이용하면 많은 기능을 사용할 수 있다.
‘SH4’행 ‘X86 (CEPC)’을 X86행으로
[ p50 본문 부분 1행 ]
이 과정에서 Sources.cmn 파일을 실행한뒤, _COMMONPUBROOT, _PROJROOT 환경
→ 이 과정에서 Sources.cmn 파일을 실행한뒤, _COMMONPUBROOT, __PROJROOT 환경
[ p133 리스팅 3.8 아래쪽 ]
/* 이 함수가 (생략) 의미가 된다.
*/
부분을 리스팅 마지막 2행 위로 이동
[ p136 그림 3.4 ]
RAM을 위한 공간 → 플래시를 위한 공간
Flash를 위한 공간 → RAM을 위한 공간
[ p142 리스팅 3.18 ]
util.c 파일의 Launch() 함수 → util.s
[ p170 1-2행 ]
필수함수들은~다음과 같다.
→ 앞 페이지에 나열해 놓은 필수함수들은 반드시 구현돼 있어야 NK.exe가 만들어지는 특징을 지닌 함수들이다.
[ p172 예제 4.1 12행의 주석 ]
; 32 메모리 뱅크0번 : SROM(SRAM/ROM) → ; 메모리 뱅크0번 : SROM(SRAM/ROM)
[ p179 3행 ]
이와 같은~다른 외부에서 → 이와 같은 함수명을 사용하는 이유는, 외부에서
[ p179 아래에서 4행 주석 번역 ]
; Init command 2, vector interrupts to 64 → ; 초기화 명령 2, 벡터 인터럽트 64
[ p180 2행 주석 번역 ]
; Init command 2, vector interrupts to 40 → ; 초기화 명령 2, 벡터 인터럽트 40
[ p206 그림 4.14 번역 (위에서부터 아래로) ]
실행할 스레드가 없음
임의의 인터럽트
타이머 완료
웨이크업 이벤트
[ p220 18행, 20행 번역 ]
// device transport config (생략) → // 디바이스 전송에 대한 설정
// Host config → // 호스트 설정
[ p258 ]
‘Inbuffer는 클라이언트 ~ 변수이다.’를 p.254 아래에서 2행 위로 이동
[ p265 9행 ]
‘EnterCriticalSection(&g_devcs);’를 삭제
[ p330 14행 ]
// X86 계통에서는 이처럼 → // 이처럼
[ p366 3-5행 ]
MDD 관점에서~ 못 할뿐만 아니라,
→ 앞으로도 플랫폼 빌더의 버전이 점점 더 올라갈 경우에 PDD 모듈을 지원하는 방법이 항상 같다고 보장하지 못하기 때문에, MDD 관점에서 개발을 해보지 않은 개발자는
[ p411 8행 ]
프로토콜 드라이버로부터 외부컴퓨터로 → 프로토콜 드라이버로부터 다른 곳으로
[ p412 12행 ]
미니포트 드라이버가 ~ 읽혀질 것이다.
→ 미니포트 드라이버에 있는 W_HANDLE_INTERRUPT_HANDLER() 함수에 의해서 데이터가 카드로부터 드라이버 측으로 전송될 것이다.
[ p412 아래에서 3행 ]
온전한 데이터로 확인하게 되면, → 온전하다고 판별되면,
[ p433 아래에서 1행, 12행 ]
case WPDM_CLOSE: 삭제
[ p440 아래에서 2행 번역 ]
예) SA1110 Chip’s case → 예) SA1110 Chip’s 경우
[ p485 1-2행 주석 부분 번역 ]
// IN-FDD 구조에 대한 포인터
// IN-레지스트리키 문자열에 대한 포인터
[ p510 마지막 행 ]
누구라 하더라도 → 누가 하더라도
[ p544 11행 ]
0x0번지까지 밖에는 분기가 불가능하다. → 0x0번지까지만 분기가 가능하다.
[ p557 예제박스 아래 문단 ]
‘지금까지우리는 ~ 않기 때문이다.’ 삭제
[ p559 10-11행 ]
IIC → I2C, IIS → I2S
[ p582 마지막 문단 p.558 아래에서 10행 ]
‘일례로~동작한다.’의 주석으로 이동
[ p596 아래에서 3행 ]
r3 레지스터 저장하는 → r3 레지스터에 저장하는
[ p597 리스팅 9.6의 3행 ]
‘// LED 크기’ → ‘// LED 끄기’
[ p598 5행 공백 삭제 ]
C: \WINCE500\_PLATFORM → C: \WINCE500\PLATFORM
[ p651 예제 10.4 아래 2행 ]
정보의 접두사로 사용되는 것이다. → 정보를 나타낸다.
[ p666 1-2행 ]
위에서는~명시했다.
→ 위에서 살펴본 기능은 일부에 불과하다. KITL을 이용하면 많은 기능을 사용할 수 있다.