'이미지'에 해당되는 글 4건

  1. 2007.11.28 부트로더(Bootloader)
  2. 2007.11.08 Windows CE 이미지 생성 절차 2
  3. 2007.11.07 BSP와 Common
  4. 2007.11.05 Windows Embedded CE 6.0의 OSDesign에서 Platform manager를 추가하지 말라!
2007. 11. 28. 19:08

부트로더(Bootloader)



부트로더는 데스크톱의 BIOS와 비슷한 역할을 한다. 처음 전원을 이가하거나 하드웨어적으로 리셋을 시키면 부트로더는 시스템을 시작하기 위해 필요한 최소한의 하드웨어를 초기화 한다. 그리고난 후 메모리에 담겨져 있는 커널 이미지와 루트파일 시스템을 찾아서 RAM으로 복사를 하고 커널이미지를 위치로 옮겨 부팅을 하게 한다.

Windows CE에서의 부트로더도 다르지 않다.
부트로더(Bootloader)는 호스트에서 타겟(혹은 타겟 내의 저장공간)에서 메모리로 OS Image를 읽어들이는 역할을 한다.
간단히 말하자면, 호스트(개발 PC)에서 타겟장치(개발하는 보드)로 부팅시키고자 하는 이미지를 올리는 작업을 하는 녀석이다. 추가로 부트로더는 타겟 플랫폼의 디바이스를 초기화한다.

일반적으로 부트로더의 역할은 다음 세가지로 요약할 수 있다.
1. 타겟 플랫폼 디바이스를 초기화한다.

CPU를 사용가능한 환경으로 초기화 한다. CPU내의 MMU(Memory Management Unit)와 캐시 등을 활성화 하고, 리얼타임 클럭, 다운로드 경로로 사용될 하드웨어를 초기화 한다.

2. 부팅 과정을 통제(부팅과정 중 옵션을 사용)한다.

다운로드 경로(USB, 패러럴, 이더넷 등)을 선택
호스트에서 RAM으로 직접 다운로드
다운로드 하기 전에 사용될 메모리 진단
다운로드될 장소를 결정

3. Windows CE 이미지를 다운로드 하고 실행시킨다.

패러럴 포트, USB, 이더넷과 같은 비교적 전송속도가 빠른 경로를 사용해서 호스트에서 타겟 플랫폼으로 OS Image를 다운로드 시킨다.
2007. 11. 8. 17:43

Windows CE 이미지 생성 절차



Windows CE 이미지 생성을 위한 절차이다.
이를 위해선 BSP와 Common요소를 먼저 이해해야 한다. BSP와 Common에 대한 설명은 '여기'를 참고하면 될 듯 하다.

Window CE 이미지를 생성을 하기 위해선 다음의 4단계를 거치게 된다.
  1. System 생성 과정
  2. Build Platform 과정
  3. Build Release 과정
  4. Make Image 과정

1. System 생성 과정에서는 Platform Builder가 Windows CE를 위해 제공하는 기본적인 구성요소들, $(_PUBLICROOT)에있는 자료를 개발자가 생성한 $(_PROJECTOAKROOT)\Files 와 $(_COMMONOAKROOT), $(_COMMONDDKROOT), $(_COMMONSDKROOT)로 복사하는 작업을 한다.
참고로 $(_COMMON~)\Target 폴더는 소스의 컴파일과정을 거쳐서 빌드된 모듈 중 DLL, EXE, OCX와 같이 실행가능한 모듈들이 복사되는 위치를 말하고, 이를 통해 System 생성과정 중에서도 컴파일 과정이 발생할 수 있다. $(_PROJECTOAKROOT)\Files 폴더는 컴파일 과정없이, 미리 준비된 모듈들이 복사되는 위치를 의미한다.

2. Build Platform 과정에서는 개발자가 생성하려는 플랫폼의 참조코드인 BSP와 개발자가 새롭추가한 Features를 실제로 빌드하는 과정이다.
이때 사용되는 BSP 코드는 빌드환경에서 설정한 SYSGEN_XXX와 같은 환경변수에 의해 선택적으로 빌드된다.

3. Build Release 과정에서는 위의 과정에서 생성된 파일들이 플랫폼의 릴리즈 폴더로 복사된다.
릴리즈폴더는 $(FLATRELEASEDIR)을 말한다. 이 단계를 거치게 되면, Windows CE용 이미지를 위한 모든 파일들이 릴리즈폴더에 존재하게 된다.

4. Make Image 과정은 3단계의 릴리즈폴더에 무수히 많은 파일들을 타겟시스템으로 다운하기 위한 바이너리 파일로 압축을 하는 작업을 한다.


2007. 11. 7. 11:22

BSP와 Common



BSP는 CE에서 제공하는 몇가지의 타겟시스템(CEPC, GEODE, ARM, XSCALE)의 종속적인 코드들을 담아놓은 환경을 말한다.
쉽게 말해 $(_PLATFORMROOT) 하위의 폴더에 있는 폴더들(CEPC, GEODE, EMULATOR, SMDK2410)등을 말한다. 이는 모두 해당하는 타겟시스템을 위한 종속적인 코드들이다.
사용자 삽입 이미지
Windows CE 5.0의 BSP

그러나, 단지 이 BSP만을 가지고는 Windows CE이미지를 만들 수 없다. BSP라는 것은 타겟시스템에 종속적인 코드만 들어있을 뿐, 그 이외의 운영체제를 위한 프로그램들(익스플로러, 노트패드 등)은 들어있지 않기 때문이다.

이렇듯 타겟시스템에 종속적인 코드를 제외한 나머지 코드들을 Platform Builder에서는 Common요소로 간주하여 $(_PUBLICROOT)에서 관리하게 된다. Common요소는 어떤 BSP를 사용하더라도 호환성을 가질 수 있는 코드들이다.
사용자 삽입 이미지
Windows CE 5.0의 Common

이처럼 하나의 타겟시스템에서 동작하는 Windows CE 이미지를 제작하기 위해서는 적당한 타겟 BSPCommon요소가 필요하다.

2007. 11. 5. 20:21

Windows Embedded CE 6.0의 OSDesign에서 Platform manager를 추가하지 말라!



OSDesing이란 CE OS를 만들 때 필요한 기능을 추가할 것인지 말것인지를 정하고 실제 추가 삭제를 하는 작업을 말한다.

Windows Embedded CE 6.0의 OSDesign 작업을 할 때에 주의할 점이있다.
Platform manager이라는 컴포넌트를 OSDesign에 추가하지 말라는 것이다.

만일 이를 추가할 시에는 빌드를 하여 이미지를 생성하려 하면 다음과 같은 에러를 발생시킨다.

사용자 삽입 이미지

아래는 본인경우에서의 에러메시지이다.

Error: Could not find file 'C:\WINCE600\OSDesigns\emdk4000_cam_6\
emdk4000_cam_6\RelDir\EMDK4000_ARMV4I_Release\cemgrc.exe'
on disk cemgrc.exe C:\WINCE600\OSDesigns\emdk4000_cam_6\emdk4000_cam_6\RelDir\
EMDK4000_ARMV4I_Release\cemgrc.exe NK

C:\WINCE600\PUBLIC\COMMON\CESYSGEN\makefile 파일의 1187라인을 살펴보면, Platman Stuff라는 녀석을 타겟쪽으로 복사를 하는 작업을 하게 되는데... 이 'Platman Stuff'라는 녀석은 CE 6.0을 인스톨할 때부터 존재하지 않는 녀석이라고 한다. 그래서 이 파일은 복사될 수도 없고, 빌드 시 에러를 발생시킨다고 한다.

자세한 내용은 여기를 참조하면 될 듯 하다.

주저리 주저리 내용은 많지만 중요한 점은 그냥 OSDesign시에 체크를 하지 말라는 내용이다.