• 검색 결과가 없습니다.

부트로더로 부팅

N/A
N/A
Protected

Academic year: 2022

Share "부트로더로 부팅 "

Copied!
12
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Windows CE 5.0 포팅전 알아두어야 할 사항

보드의 디바이스 드라이버의 칩셋 확인

윈도우 CE와 EBOOT 이 지원이 되는지 안되는지 확인한다.

칩셋확인후 칩셋 사이트에서 버전에 맞는 BSP칩셋의 드라이버를 다운받는다.

BSP 설치

1) 보드의 제조사와 종류를 확인

2) 칩셋에 맞는 드라이버를 홈페이지에서 다운받는다.

3) 다운받은 드라이버를 *.msi 파일을 실행하여 BSP 설치 4) 보드에 맞는 BSP를 윈도우 CE 에서 ADD 한다.

X V3와 충돌가능성이 있으므로 V3 삭제

부트로더

EBOOT

하드 디스크( HDD, DOM등)를 MS-DOS부팅할 수 있도록 구성을 하여 부팅을 한다.

X86 Loadcepc를 사용하기 위해서 himem.sys 파일이 필요하고 config.sys에 정의 한다.

Ex) device=himem.sys

Loadcepc.exe & Eboot.bin 파일을 타켓 쪽 하드디스크(HDD, DOM등)에 복사합니다

(C: WINCE500 PUBLIC COMMON OAK CSP X86 DOS BOOTDISK 경로안에 있는 모든 파일을 복사)

부트로더로 부팅

- Loadcepc의 옵션

- Platform Builder Help에서 “Loadcepc.exe Boot load Usage” 부분 참조.

- /b : 통신 링크 ( 9600 – 115200 )

- /c : loadcepc.exe에 사용될 특별한 통신포트 ( COM1, COM2 )

- /e : Ethernet Download를 사용하기 위한 설정 ( IO : IRQ : IP Address ) z DHCP를 사용할 경우 IP를 주지 않아도 됨.

z If a PCI device cannot be found, an NE200-compatible ISA card is assumed.

- /l : DX x DY x BPP ( 해상도 및 color depth 설정)

- /v : Loadcepc.exe 를 통해 부팅되어 지는 동안 추가적인 상태 정보를 보여 줌 - Ex> Loadcepc /b:38400 /c:2 /v /e:0:0 /l:800x600x16 eboot.bin

DOM에 nk.bin 심을떄 nk.bin 만들기

Platform – Setting – Build Option 에서

1) Enable Eboot Space in Memory ( IMGEBOOT = 1 ) 체크

2) Enable Full Kernel Debugger ( no IMGNOTALLKMODE = 1 ) 체크 3) 나머지 부부은 미체크 하고 OK클릭

4) Sysgen으로 빌드 한후

C: WINCE500 PBWorkspaces ( 작업 폴더 경로 ) RelDir SiS550_x86_Release 안에 nk.bin을 DOM이나 저장장치에 복사 한다.

Windows CE 5.0 부팅 방법

1) 부트로더를 바이오스에 심고 nk.bin을 로딩후 부팅 2) EBOOT을 저장장치에 저장시킨후 EBOOT 부팅후 부팅

3) 저장장치에 DOS 부팅후 Loadcepc 를 이용해서 nk.bin을 로딩후 부팅 - DOS부팅 후 Loadcepc 로 Windows CE 부팅

- 저장장치( DOM, HDD )를 DOS상에서 FDISK후 Format - sys명령으로 저장장치( DOM, HDD )를 부팅 가능하게 만든다.

- 저장장치( DOM, HDD )에 부팅과 로딩에 필요한 config.sys, autoexec.bat - Loadcepc.exe, himem.sys nk.bin 파일을 복사 한다.

(2)

Config.sys의 내용 Autoexec.bat의 내용 DEVICE=HIMEM.SYS

(그 외 추가 사항)

DEVICE = EMM386.EXE DOS = HIGH

등……

Loadcepc nk.bin (그 외 추가사항 )

참고)

@echo off <- @ : 이 라인 숨김 echo off : echo 숨김 echo **************

echo hello!

echo My lord

echo **************

화면에는

**************

hello!

My lord

**************

(3)

WINDOWS CE 5.0 SETTING

1) File – New Platform(Ctrl+N) - Next 클릭 2) Platform name 입력 저장할 경로 설정후 Next 클릭

3) 위 그림처럼 칩셋 종류에 맞게 선택후 Next 클릭

- Custom Device : 기본 configuration을 사용하지 않고 모든 것을 개발자가 하나씩 구해 나가야 하는 configuration

- Digital Media Receiver : E-book Reader, Digital Audio & Video Device 등의 Digital Media Data 를 사용하는 장치를 개발

- Enterprise Terminal : POS, ATM 과 같은 다양한 terminal을 개발할 수 있는 환경을 제공하는 configuration - Enterprise Web Pad : Wed Pad환경의 configuration로 touch display, Wireless networking feature들이 포

- GateWay : Home networking의 Gateway를 개발할 수 있는 configuration로 dial-up또는 여러가지 internet

(4)

connection 및 sevice를 제공

- Industrial Controller : 산업용 controller 및 console 를 개발할 수 있는configuration - Internet Appliance : internet Browser를 이용한 다양한 device를 개발

- IP Phone : Voip를 이용한 다양한 device를 개발할 수 있는 configuration - Mobile Handheld : PDA를 개발할 수 있는 configuration

- Set-top Box : Internet 및 CE kernel을 이루는 component로 구성된 configuration - Windows Thin Client : RDP 5.2을 이용한 Thin Client(WBT)를 개발

4) 위 설정시 기본적인 구성이 셋팅됨 Next 클릭 - Next 클릭 – Finish 클릭

5) 더필요한 구성이 있거나 불필요한 구성이 있을시 추가와 삭제를 한다.

6) 모든 구성이 끝났으면 빌드 한다 7) 빌드 방법은 Build OS – Sysgen클릭

(5)

8) 빌드를 하면 NK.bin이라는 파일이 생성 된다.

9) 타켓 보드에서 부트로더 부팅후 Windows CE에서 Target-Connectivity 10) Options(Shift+Ctrl+C) 클릭하면 아래와 같은 창이 생성된다.

11) Download 부분과 Transport 부분을 Ethernet로 설정한다.

12) Download 부분의 Settings 부분을클릭하면 아래와 같은 창이 생성된다.

13) 이후 타켓에서 브루드 케스트를 하면 Active Devuces 부분에 ID가 나타난다.

14) ID 를 클릭하고 OK클릭

(6)

15) 아래 그림에서 Apply클릭한다.

16) NK.bin을 타켓보드에 전송하기 위해서 Target-Attach Device를 클릭하거나 빨간색 상자부분을 클릭 하 면 NK.bin이 타켓보드에 전송되어지면서 윈도우 CE가 뜬다.

17) 아래 그림과 같이 nk.bin이 전송되어지는 것을 볼수 있다.

(7)

File System

Core OS - File System and Data Store - Storage Manager 밑에 있는 - FAT File System ADD

- Partion Driver ADD

- Storage Manager Control Panel Applet ADD - Transaction-Safe FAT File System ADD

Device Drivers - Storage Devices - Storage Devices – compact Flash/PC card Storage(ATA DISK) ADD

PCI/IDE 설정

Device Drivers - Storage Devices - Storage Devices – ATAPI PCI/IDE Storage Block Driver 밑에 있는것들 ADD

USB 설정

1) Device Drivers – USB Host – USB Host controllers 밑에 있는것들중 설정에 맞게 ADD - EHCI : USB2.0(intel 계열)

- OHCI : USB1.x(그 외 계열) - UHCI : USB1.x(Intel/VIA 계열)

2) Device Drivers – USB Function – USB Function Bus Drivers – Netchip NET2280 USB Function ADD한 다.

3) Device Drivers – USB Function - USB Function Clients 밑에 있는 것 ADD 한다 - Mass Storage (저장장치 인식)

- RNDIS Clients

- Serial ( Activesync 연결용으로 사용될수 있다.)

4) USB 메모리를 사용하기 위해서는 FAT파일 시스템을 추가해야 한다.

SOUND Card

1) 사운드 카드 칩에 맞는 드라이버를 받는다.

2) 각 BSP를 설치한다.

3) 윈도우 CE 에서 사운드 카드 칩셋에 맞는 BSP를 ADD 시킨다.

그래픽 설정

1) 그래픽 칩셋을 확인후 칩셋에 맞는 드라이버를 받는다( 홈페이지 참조)

2) 그래픽 드라이버 폴더에 C: WINCE500 PLATFORM Via_twister Drivers Dxprosavage DXProSavage.reg 파일에서

에서 BSP_DISPLAY_VIA_TWISTER 을 복사 3) Platform – Setting – Environment – New

Variable 의 값을 BSP_DISPLAY_VIA_TWISTER로 설정 Value 의 값을 1로 설정

(8)

메모리 설정

1) File View – public – common – oak – CSP – x86 – oal – x86 source files –oemminit.asm 아래 그림에서 램에 맞게 설정

2) ParameterView – SiS550 – Hardware Specific Files – config.bib에서 아래 부분 에서 디폴트가 80C00000 + 01000000 인 81C00000 이므로

C: WINCE500 PUBLIC COMMON OAK CSP X86 INC pc.h의

#define CEPC_EXTRA_RAM_START 의 값은 0x81C00000의 값이 되고

#define CEPC_EXTRA_RAM_SIZE의 값은 위에 128M에 설정되어 있는 0x06400000이 된다.

Platform – Setting – Environment – New

Variable 의 값을 IMGRAM128로 설정 Value 의 값을 1로 설정하여 128 M로 설정

(9)

COM 포트 추가

1) 바이오스에서 Serial 의 IO/IRQ 의 값을 저장시킨다.

2) ParameterView - Platform.reg 수정 ( 바이오스 설정과 같게 한다 ) 3) FriendlyName 의 값을 직접 넣어주면 그 이름값이 화면에 표시 된다.

Ex) “FriendlyName”=”COM4의 직렬 케이블”

(COM4번의 경우 COM3번으로 중복 될수 있음)

4) 아래부분에서 Ranges 값을 설정에 맞게 추가 시킨다.

5) Platfoem – setting – Environment – new

Variable 의 값을 BSP_SERIAL2로 설정 Value 의 값을 1로 설정하여 com포트를 추가 시킨다.

(10)

COM 포트 관련 질문

지금 Geode GX1에 탈리스커 664로 image를 올렸습니다.

BSP_SERIAL2=1, BSP_SERIAL3=1로 셋해서 com1, 2, 3는 살린것 같습니다.

<질문1>uart1(3F8)을 debug기능을 없애고서 com4나 com1으로 잡고 싶은데 IF BSP_NOSERIAL !

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial]

"SysIntr"=dword:13

"IoBase"=dword:02F8 ...

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial Unimodem]

...

ENDIF ; BSP_NOSERIAL

IF BSP_SERIAL2

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial2]

"SysIntr"=dword:21 ;;;14<-org, sysintr은 irq+0x10이란글을 읽었는데

"IoBase"=dword:03E8 ;;;3E8=irq11로 되어있으면 sysintr은 21이 되는가?

...

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial2 Unimodem]

...

ENDIF

IF BSP_SERIAL3

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial3]

"SysIntr"=dword:20 ;;;15<-org, 2E8=irq10으로 셋되어있는데, 그럼

"IoBase"=dword:02E8 ;;;sysintr는 20이 되는게 맞나요?

...

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial3 Unimodem]

...

ENDIF

; @CESYSGEN ENDIF COREDLL_SERDEV

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uart1을 위해 한 작업;;;;;;;;;;;;;;;;;;

; IF BSP_SERIAL4 <== 이렇게 환경변수를 만들어 사용할수는 없나요?

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial4]

"SysIntr"=dword:14 ;;;3F8=irq4로 셋되어있습니다.

"IoBase"=dword:03F8

"IoLen"=dword:8

"DeviceArrayIndex"=dword:3

"Prefix"="COM"

"Dll"="Com16550.Dll"

"Order"=dword:0

[HKEY_LOCAL_MACHINE Drivers BuiltIn Serial4 Unimodem]

"Tsp"="Unimodem.dll"

"DeviceType"=dword:0

"FriendlyName"="COM4의 직렬 케이블" ;;;LOC_FRIENDLYNAME_SERIAL4

"DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

먼저, debug기능을 없애기 위해서 debug.c를 수정하는것 같은데 어떻게 하는지?

그리고, 위와 같이하면 장치선택에 com1,2,3만 나타나는데

uart1을 "COM4의 직렬 케이블" 로 나타나게 하기위한 다른작없이 있는지요?

ser_pdd.c인가에서 uart1의 정의를 추가하면 된다는 글을 읽었는데 Geode BSP안에는 그런 파일이 없습니다. 또 어떻게 고쳐야 하는지도 모르겠네요.

답변 ---

이전에 올라온 글들안에 답이 들어 있었네요^^

platform.reg에 serial4를 추가해도 target의 장치선택란에 com4가 보이지 않는경우에 는 index값을 정해주면 되는것 같습니다.

예를 들면

(11)

[... serial]

...

"Index"=dword:1 하면 com1으로 설정됩니다.

index가 없을 경우는 [... serial]

[... serial2]

[... serial3]의 순서대로 각각 com1, 2, 3가 찾아가게되지요

그리고 환경변수의 경우는 정의되어있지 이미 정의되어 있는것만 사용할 수 있는것 같습니다.

"FriendlyName"=LOC_FRIENDLYNAME_SERIAL4 라고하면 reginit.ini에 보면

"FriendlyName"=COM1의 직렬 케이블"4 라고 나타납니다.

LOG_FRIENDLYNAME_SERIAL3 까지는 "COM3의 직렬 케이블"이라고 표시되지만 LOG_FRIENDLYNAME_SERIAL4 에서 4는 무시되어 LOG_FRIENDLYNAME_SERIAL과 같은게 되어버리는 것 같습니다.(별로 중요하지도 않는내용같은데^^)

직접 "COM4의 직렬 케이블" 이라고 써주면 될것 같네요.

8. Parallel

1) Core OS – Windows CE devices -Core OS Services - Parallel Port Support ADD 2) ParameterView - Platform.reg 수정 ( 바이오스 설정과 같게 한다. )

★ 똑 같은 보드에서 같은 이미지로 부팅시 이미지 로드후 이상이 있을 때 Hive 방식의 레지스트리 값이 변경되어 생기는 증상일 가능성이 있음.

해결방법 : Hive 방식의 레지값 저장 되어 있는 모든 파일과 폴더를 삭제후 리부팅

Cd ( 레지값이 저장되어 있는 디렉토리로 이동) ATTRIB –s –h *.* (Enter)

Del *.*

Rd 디렉토리 네임

모든 레지스트리 값을 지운후 리부팅 하면 레지스트리 값이 재설정 되고 새 파일로 저장됨.

(12)

응용 프로그램 링크 파일 작성

1) 새로만들기 – 텍스트 문서 작성

32#" 하드 디스크 Master CoCoMaster.exe"

32 : 링크 내용의 총 길이(숫자) 한글 한자에 1 현제 공백, “, 등 포함해서 32개임을 알수 있다.

" 하드 디스크 Master CoCoMaster.exe" : 프로그램이 실행될 경로와 파일명을 적어준다.

저장시킨다. ( 이때 저장된 파일은 LNK 확장자로 저장한다.)

2) 임의의 이름으로 저장한 파일을 아래 경로에 복사한다

C: WINCE500 PLATFORM Sis550 Files ( 이 안에 있는 파일이 이미지에 삽입됨 )

3) ParameterView – Project Specific Files 에 Project.bib 파일 아래 내용 추가

Ex) Master.lnk $(_FLATRELEASEDIR) Master.lnk nk (이미지에 링크 파일 삽입정의

4) ParameterView – Project Specific Files 에 Project.dat 파일 아래내용 추가

Directory(" Windows 바탕 화면"):-File("master.lnk", " windows master.lnk") Directory(“ Windows 바탕 화면”): Å 복사할 디렉토리

-File("master.lnk", " windows master.lnk") Å 위에서 정의되어 이미지에 삽입된 링크 파일을 master.lnk라는 이름으로 위 디렉토리경로에 복사

Ex) Directory(" Windows 시작 메뉴"):-File("a.lnk", " windows master.lnk")

이미지에 삽입되어 있는 master.lnk파일을 Windows 시작 메뉴 에 a.lnk라는 이름으로 복사 한다.

이렇게 시작 메뉴에 삽입된 링크 파일은 Windows CE부팅시 링크되어 있는 경로의 파일이 실행되어 프로그램이 실행되게 된다.

▶ Windows CE 5.0 상에서 한글 입력시 영문 1바이트 한글 2바이트로 약간의 화면상 차이가 나기 때문에 수정할 때 주의 해야 함

참조

관련 문서

function level 2 Dietary fiber Treatment and consultation with a doctor if diabetes treatment is necessary since it cannot be used to prevent or treat diabetes. 9 Banaba leaf