제 1 장 실험 및 실습을 위한 장비 사양
1.1 장비 구성품
1.2 PC 시스템 요구 사양
1.3 IN-DVK-P255B Board
1.3.1 PXA255
1.3.2 장비사양
1.4 각 장치에 대한 설명
1.4.1 전원부분
1.4.2 메모리 장치
1.4.3 UART 및 Reset 스위치
1.4.4 UART 접속 장치
1.4.5 LCD 장치
1.4.6 SD 카드 슬롯
1.4.7 USB 클라이언트 장치
1.4.8 적외선 통신장치(IrDA)
1.4.9 음성 코덱 및 접속 제어기
1.4.10 FM 라디오 장치
1.4.11 입력 스위치
1.4.12 USB 호스트 장치
1.4.13 이더넷 장치
1.4.14 JTAG 20핀 접속장치
1.4.15 7-Segment
1.4.16 CDMA 모뎀
1.4.17 LED 8개
1.5 Software
1.5.1 Windows CE.NET
1.5.2 BSP(Board Support Package)
1.5.3 SDK(Software Development Kit)
제 2 장 기본 설치
2.1 플랫폼 보드의 조작 방법
2.1.1 외부전원 연결
2.1.2 이더넷 케이블 연결
2.1.3 시리얼 케이블 연결
2.1.4 개발시 연결할 케이블들
2.2 개발 호스트 환경
2.2.1 필요 소프트웨어
2.2.2 최소 하드웨어 사양
2.3 관련 S/W 설치
2.3.1 Platform Builder 설치
2.3.2 Board Support Package(BSP) 설치
2.3.3 GiveIO 설치
2.3.4 eVC 설치
제 3 장 Win CE .NET의 Image
3.1 EBOOT(Ethernet Boot-loader)
3.1.1 EBOOT란
3.1.2. EBOOT의 구조
3.1.3 EBOOT 부트로더 생성
3.1.4 JFlashMM 프로그램 사용법
3.1.5 부트로더(EBOOT) 실행
3.1.6 EBOOT 동작 확인
3.1.7 EBOOT 메뉴
3.2 LAN 환경 설정
3.3 OS 이미지
3.3.1 플랫폼 마법사
3.3.2 플랫폼 설정
3.3.3 장치 및 디바이스 드라이버 추가
3.3.4 추가된 장치 드라이버 확인
3.3.5 플랫폼 빌드하기
3.3.6 OS 이미지 다운로드
3.4 Active Sync
3.4.1 ActiveSync 설치하기
3.4.2 USB 드라이버 설치
3.4.3 플랫폼 보드 설정
3.4.4 Microsoft ActiveSync 실행
3.5 Software Development Kit
3.5.1 SDK 만들기
3.5.2 SDK 설치
3.5.3 설치된 SDK 확인
제 4 장 eVC의 작동 테스트
제 5 장 디바이스 드라이버
5.1 디바이스 드라이버 기초 지식
5.1.1 탑재형과 설치가능형 장치
5.1.2 드라이버의 코드 구조
5.1.3 디바이스 드라이버의 종류
5.1.4 드라이버의 이름
5.2 디바이스 드라이버의 소스코드
5.3 드라이버의 로드 과정
5.4 드라이버 함수의 프로토타입
5.4.1 XXX_Init 함수
5.4.2 XXX_Deinit 함수
5.4.3 XXX_Open 함수
5.4.4 XXX_Close 함수
5.4.5 XXX_Read & XXX_Write 함수
5.4.6 XXX_Seek 함수
5.4.7 XXX_IOControl 함수
5.5 스트림 인터페이스 드라이버 제작
5.5.1 LED의 구성도
5.5.2 소스코드 작성
5.5.3 드라이버.def 파일 작성
5.5.4 sources & makefile 파일 작성
5.5.5 작성한 드라이버 빌드하기
5.5.6 운영체제에 포함시키기
5.5.7 추가 확인하기
5.6 장치 제어 프로그램 작성하기
제 6 장 UART관련 통신 프로그래밍
6.1 프로그램 동작 시나리오
6.2 UART 통신 프로그램
6.3 INewSerial 프로그램의 실행
제 7 장 FM 라디오 프로그래밍
7.1 FM 라디오 모듈의 구성
7.2 FM 라디오: 디바이스 드라이버 추가
7.3 FM 라디오: 디바이스 드라이버 코드의 이해
7.3.1 FM 라디오 디바이스 드라이버 구조
7.3.2 FMR_Open 함수
7.3.3 FMR_Close 함수
7.3.4 FMR_Write 함수
7.4 FM 라디오: 응용프로그램 작성하기
제 8 장 모뎀관련 프로그래밍
8.1 모뎀의 이해
8.1.1 전체 system의 흐름
8.1.2 Interface 방법
8.2 장착된 CDMA
현재 출판되고 있는 대부분의 임베디드 시스템(Embedded System) 관련서적들은 특정한 회사에서 만들어진 플랫폼 보드(또는 개발보드라 불리기도 함)에 운영체제(예: Windows CE 또는 Linux)를 크로스 컴파일 또는 특정한 개발 툴을 이용하여 형성된 이미지(Built image)를 다운로드(Download)하는 과정만을 소개하고 그 방법만을 제시하는 책들이 대다수이다. 사실, 플랫폼 보드에 운영체제만을 올렸다는 것만을 경험함으로써 ‘임베디드 시스템을 구축했다’라고 표현하는 것은 큰 무리가 있다. 단지 이러한 실습은 임베디드 시스템을 위한 기본 준비가 되는 운영체제를 올려본 경험만이 있을 뿐이다. 임베디드 시스템은 생활에 필요한 기능 요소들을 사용자 모르게(사용자가 시스템의 수행을 위한 구체화된 조절 없이) 시스템 내부에서 자동으로 수행되어 그 시스템에 맞는 해당 기능이나 서비스를 신속하게 제공해 주는 시스템이다. 단지, 임베디드 시스템에서의 운영체제는 응용프로그램(Application Programs)들이 원활이 작동될 수 있도록 하드웨어에 관련된 그리고 프로그램이 수행될 수 있도록 기본 서비스를 충실히 제공해주는 역할만을 수행한다. 그리고 응용프로그램은 운영체제에서 제공되는 서비스를 이용하여, 사용자가 요구하는 서비스를 제공해준다. 따라서 사용자의 요구가 있는 응용프로그램이 수행되고 있지 않는 그러한 시스템은 임베디드 시스템이라고 불러지기에는 많은 부분에서 부족하다.아울러, 이러한 교재들은 그 해당 플랫폼 보드의 형틀에 맞춰진 즉, 미리 짜여 놓인 하드웨어 틀에서만 작업을 할 수 있기 때문에, 다른 응용적인 면에서 볼 때 제약이 많이 따른다. 따라서 진정으로 독자 스스로의 자신이 형성한 시스템(플랫폼 보드에 기본 OS만을 올려놓은 시스템)에 필요한 응용프로그램을 작성하기 위한 참고서적으로써 부족하다고 볼 수 있다.이러한 본인의 생각에 따라 본 교재는 독자들이 직접적으로 플랫폼 보드를 이용하여 자신이 빌드한 운영체제 (Operating System) 이미지를 다운로드하고, 직접 만든 응용프로그램이 플랫폼 보드에서 수행될 수 있도록 작업하기 위한 관련 개발 프로그램들을 자세히 다룬다. 그리고 자신이 만든 응용 프로그램이 플랫폼 보드에서 직접 수행될 수 있도록, 개발 프로그램의 사용 방법들을 안내함으로써 임베디드 시스템을 몸소 체험하고, 이해할 수 있도록 구성하려고 노력하였다.이 책의 구성으로는 우선적으로 실습을 위해 사용되는 필요 장비에 대해 우선적으로 간략히 소개를 하고, 그 장비에 포함된 플랫폼 보드에 대한 상세한 부분을 다루었다. 그리고 이 플랫폼 보드에서 작동될 Windows CE에 대해서도 간략하게 소개를 하고, 이 운영체제를 설치하기 위한 기본적 정보 및 방법을 실습과 예시를 보여줌으로써 플랫폼 보드에 우선적으로 친숙해 질 수 있도록 내용을 구성하였다. 또한, 플랫폼 보드에서 성공적으로 Window CE 운영체제가 구동되면, 임베디드 시스템에서 응용프로그램에게 서비스를 제공하기 위한 기본 준비과정은 끝난 것이다. 따라서 사용자 요구의 서비스를 신속하게 제공하기 위한 임베디드 시스템의 기본 목적인, 플랫폼 보드에서 작동될 수 있는 응용프로그램을 몇 개의 예제를 통하여 같이 작성해보도록 하였다. 이들 중 몇 개의 예제에서는 CDMA를 이용한 전화기 인터페이스를 제공하는 응용프로그램도 있다. 우선적으로, 이 CDMA라는 모뎀 장치를 사용하기 위해서는 모뎀 사용을 위한 프로토콜도 함께 공부를 할 필요가 있기 때문에, 모뎀과 관련된 인터페이스 및 AT 명령어 등의 프로토콜도 이 책에 함께 포함되어 시켰다.플랫폼 보드에서 수행되기 위한 응용프로그램을 작성하기 위해서는, 프로그램 작성을 위한 개발 툴(Development Tool)과 함께, 플랫폼 보드에서 수행할 이진코드(Binary code)를 형성할 크로스 컴파일러(Cross compiler)가 동시에 필요하다. 이 책에서는 플랫폼 보드에서 자신이 작성한 응용프로그램이 수행 될 수 있도록 많은 면에서 관심과 열정을 불어 넣어 독자 스스로 해결하기 위한 가이드를 제시할 수 있도록 노력하였다.