'Windows Embedded/Windows CE 5.0'에 해당되는 글 6건

  1. 2008.06.04 Platform Builder 5.0 Emulator:x86 에러..
  2. 2007.11.08 Windows CE 이미지 생성 절차 2
  3. 2007.11.07 BSP와 Common
  4. 2007.10.17 이솝 LX800보드 WinCE 5.0 포팅 완료!!
  5. 2007.10.17 Windos CE 5.0 vs. Windows Embedded CE 6.0 ch.2
  6. 2007.10.17 Windos CE 5.0 vs. Windows Embedded CE 6.0 ch.1
2008. 6. 4. 21:20

Platform Builder 5.0 Emulator:x86 에러..



간만에 Windows CE 5.0으로 할 일이 생겨서 기존의 Windows Embedded CE 6.0을 제거했다.
대략 Platform Builder의 버그 정도로.. Windows Embedded CE 6.0을 깐 상태에서는 Windows CE 5.0이 제대로 깔리지 않으니깐... 지우고 새로 까는 그런 노가다를.. -_-

뭐.. 여튼 꽤 시간을 들여 CE 6.0을 제거하고, CE 5.0을 깔고 간단한 테스트로 Emulator로 빌드..

그리고 타겟에 연결을 하려고, Connectivity setting에들어가려하니.. 첨 보는 듯한 에러메시지가 뜨는게 아닌가...-_-

사용자 삽입 이미지

아.. 뭐지?? 하고 여기 저기 검색해보니..

세상에.. Windows Embedded CE 6.0이 제대로 제거되지 않아 생기는 현상이란다.. 제길.. 그렇게 시간을 들여서 그짓을 했건만..
그간 했던 그짓거리가 뻘짓이었다니.. ㅡ.ㅜ

해결책은 더 압권이었다...
대략 PC를 포맷하고 다시 설치하라는...

헐.. 완전 멋지지 않은가??
이게 CE의 세상이다!!! ㅋㅋ


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. 10. 17. 17:49

이솝 LX800보드 WinCE 5.0 포팅 완료!!


이솝 LX800에 WinCE 5.0 포팅을 완료해 버렸다.

머... 완벽하다기 보다는 그냥 기본적인 것들..
흠.. 사용하기 그냥 무난한 정도.. ㅋㅋ

사용자 삽입 이미지
사용자 삽입 이미지

실력이 실력인 만큼.. 여기 저기 도움을 많이 받아서 해결..했음.. ^^;
참고 : WEEG, AESOP (영마니님 감사합니다!!)

언제쯤이면.. 혼자의 능력으로 모든걸 해결할 수 있을까나.. ㅡㅡ;

대충 올린 과정을 시간 날때마다 정리해서 올려볼까 한다. 계획만..

2007. 10. 17. 17:08

Windos CE 5.0 vs. Windows Embedded CE 6.0 ch.2


Windows CE 5.0에서 Windows Embedded CE 6.0으로 넘어오면서 OAL에서 바뀐 점은 다음과 같다.

1. 커널과 OAL의 분리했다.
   -  NKLoader에 의해 합체
   -  독립적으로 업데이트 가틍
2. 전체적인 OAL구조는 같다.
  - OEM함수
  - 커널 접근은 커널 인터페이스를 통해서 가능
3. 새로운 메모리 모델을 OAL에 적용했다.

* OAL(OEM Adapted Layer) - 각 OEM의 platform에 맞게 작성된 사용자가 만든 소스 부분이라 생각하면 된다.

사용자 삽입 이미지
Windows CE 5.0과 달리 Windows Embedded CE 6.0은 커널과 OAL을 분리했다.

Windows Embedded CE 6.0 BSP의 특징.
1. 새로운 커널을 지원
2. 쉬운 BSP개발 및 포팅
3. PQOAL 지원
4. OAL, Kernel 그리고 KITL 독립성 지원

다음 그림을 보면서 디렉토리 구조가 어떻게 바뀌었는지 살펴보자.
사용자 삽입 이미지 사용자 삽입 이미지
Windows CE 5.0과 Windows Embedded CE 6.0의 디렉토리 변경점

Kernel의 변경된 점
1. Windows CE 5.0
  - OAL + Kernel = Kern.exe
  - OAL + Kernel + KITL = kernKitl.exe
  - OAL + Kernel + KITL + Profiler = kernkitlprof.exe
2. Windows Embedded CE 6.0
  - OAL = oal.exe
  - Kernel = kernel.dll
  - KITL = kitl.dll

아래 그림에서 보는것처럼 6.0에서는 커널과 OAL을 분리했고, 서로 통신하기 위한 수단으로 NKGLOBAL과 OEMGLOBAL이라는 구조를 두었다.
사용자 삽입 이미지
Windows Embedded CE 6.0 PQOAL 디자인

이처럼 구조가 Windows CE 5.0과는 다르기 때문에 6.0으로 bsp를 migration하기 위해서는 구조를 파악하는것이 우선이다.

음...

참고 : 웹캐스트 및 웹 자료

2007. 10. 17. 16:49

Windos CE 5.0 vs. Windows Embedded CE 6.0 ch.1


Windows Embedded CE 6.0을 회사에서 구매하는 바람에.. 기존의 Windows CE 5.0을 6.0으로 mirgration해야한다. 덕분에 공부할 게 생겨버렸고..

먼저 Windows CE 5.0에서 windows Embedded CE 6.0으로 넘어오면서 바뀐점은 무엇인가? 를 알아보자
가장 눈에띄는 점은 명칭이다. ^^;
Windows와 CE 사이에 Embedded라는 것을 넣어서 Embedded라는 것을 강조한 듯 하다.

가상 메모리구조와 프로세스등 많이 바뀌었다.

Windows CE 5.0의 경우..
2G의 커널, 2G의 프로세서를 위한 가상메모리를 지원하고, 최대 32개의 프로세스(슬롯이라 부르는 구조)를 생성할 수 있었다.
메모리는 유저 공간의 상위 반을 공유메모리로 사용하고, 모든 프로세서들에 의해 읽거나 쓰는 공간으로 사용되었다.

Windows Embedded CE 6.0의 경우..
프로세서당 2G의 가상 메모리를 지원하고, 최대 32,000 프로세스를 지원한다고 한다. 말이 32,000이지.. 이론상이다.
통합커널로 핵심적인 OS요소들을 커널공간으로 이동시켜 시스템 성능을 향상시켰다고 한다.

사용자 삽입 이미지
Windows CE 5.0과 Windows Embedded CE 6.0의 메모리 구조 차이

사용자 삽입 이미지
커널 메모리 공간

사용자 삽입 이미지
사용자 메모리 공간

이밖에도 중요 드라이버라든지, 파일시스템, graphical window manager등이 커널로 이동되었다.
사용자 삽입 이미지
새로 바뀐 OS구조

이로써 시스템 오버헤드가 감소하고, 유저 스페이스와 커널 스페이스간의 잦은 이동으로 인한 오버헤드등이 감소하는 등의 장점이 있다.

Windows CE 5.0과 Windows Embedded CE 6.0과의 시스템 호출 구조
사용자 삽입 이미지
Windows CE 5.0의 시스템 호출 구조

사용자 삽입 이미지
Windows Embedded CE 6.0의 시스템 호출 구조

참고 : MS웹캐스트 및 웹 자료..