'Windows Embedded'에 해당되는 글 51건

  1. 2007.11.16 Windows Embedded CE 6.0 R2 릴리즈 & 설치
  2. 2007.11.14 Windows Embedded CE 6.0 Catalog Items
  3. 2007.11.08 Windows CE 이미지 생성 절차 2
  4. 2007.11.08 WinCE 6.0의 Network Projector
  5. 2007.11.07 BSP와 Common
  6. 2007.11.06 Windows Embedded CE update
  7. 2007.11.05 Windows Embedded CE 6.0의 OSDesign에서 Platform manager를 추가하지 말라!
  8. 2007.11.02 릴리즈 모드에서 "DEBUGMSG()"보는 방법
  9. 2007.11.01 Files 디렉토리의 bib, reg파일 수정 후 NK바이너리에 적용시키는 방법
  10. 2007.10.31 Windows CE 이미지 생성을 위한 configuration files
2007. 11. 16. 14:36

Windows Embedded CE 6.0 R2 릴리즈 & 설치



Microsoft에서 Windows Embedded CE 6.0 R2를 정식 릴리즈 했다.

다음과 같은 것들이 추가되었다고 한다.
  • Remote Desktop 6.0
  • VOIP Video Telephony Capabilities
  • Windows Media Player OCX7
  • Internet Explorer 6.0 components
  • Web Services on Devices
  • Pluggable Font Engine Framework
  • New BSPs
  • New Drivers
관련 문서및 파일은 '여기'에서 참조할 수 있다.

사용자 삽입 이미지

설치파일은 단지 49KB인데.. 다운로드 받고 설치하니 시간이 꽤 걸린다.

다른건 모르겠고.. 현재 개발하는 것땜에 그러는 것인지는 몰라도.. RDP 6.0이 꽤나 끌리는 군..
할일이 또 늘어버린것인가... ㅡㅡ;


2007. 11. 14. 10:22

Windows Embedded CE 6.0 Catalog Items



Platform Builder에서 좌측의 카탈로그 아이템 뷰(Catalog Items View)를 보면 수많은 카탈로그 아이템들이 있는 것을 볼 수 있다. 솔직히 너무 많이 뭐가 뭔지 잘 모르고 사용하고 있다.
대충 보고 이거다 싶으면 추가시키는 형식이다... ㅡㅡㅋ

사용자 삽입 이미지
Platform Builder의 Catalog Items View

이제는 이녀석들이 어떤 녀석들인지 조금이라도 알고 사용하고자 한다. 아는게 힘이니깐... ㅋ
것보다 사용하지도 않는 것들을 추가시켜 용량을 이미지의 용량을 늘리는 쓸데없는 짓을 방지하기 위한 차원이랄까?? 뭐 대충 그런거다.

MSDN을 보면 Catalog Items에 대한 간략한 설명이 있는 곳이 있어 링크한다.

위의 링크를 클릭하면 아래와 같은 페이지를 볼 수 있으며, Catalog Items에 대한 정보를 얻을 수가 있다.

사용자 삽입 이미지
MSDN의 Catalog Items에 대한 간략한 설명이 있는 웹페이지

이 웹페이지를 참고해서 필요한 녀석들을 추가하도록 하자!!

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. 8. 10:26

WinCE 6.0의 Network Projector



Windows Embedded CE 6.0에 'Network Projector' 라는 녀석이 있다.

네트웍을 통해 회의장과 같은 곳에서 RDP를 이용하여 원격으로 프리젠테이션을 할 수 있는 기능을 가지고 있다. 쉽게말해 Network Projector 기능을 장착하고 있는 기계에 PC가 접속하여 현재 PC 화면의 내용을 네트웍을 통해 그기계의 출력을 할 수있는 디바이스(모니터, LCD패널, 빔프로젝터 등)로 출력을 하는 것이다.

이녀석은 특이하게 Windows Vista기반의 PC하고만 연동하여 사용된다. 다른 운영체제(XP)에서는 사용을 할 수 없다.
사용자 삽입 이미지

단순한 프리젠테이션 용도로만 사용되는 듯하다.
VMWare에 Vista를 설치했고, 무선인터넷을 사용한 테스트 환경이라 그럴 수도 있지만... 테스트를 해본 결과 성능이 그리 좋지는 않았다.
프리젠테이션 파일이나, 도큐먼트 파일의 경우 별 무리없이 출력을 해내지만, 동영상과 같은 많은 움직임을 갖는 데이터의 경우 상당히 버벅거린다는..ㅡㅡ;

그냥 처음보는 기능이라 테스트를 해보았을 뿐.. 잘만 이용하면 쓸만한 제품이 나올것 같기도 하다.


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. 6. 13:22

Windows Embedded CE update



Windows Embedded CE의 update사이트를 소개하려 한다.

기본적으로 Platform Build를 설치하고 나서 꼭 해주어야 하는 작업이기에...
CE로 이미지를 제작하다 보면 여러 에러를 볼 수 가 있는데.. 여기 저기 서칭하다보면 자주 듣게되는 말이 QFE를 설치하라는 말이 있다.
이 QFE를 통해서 Windows CE관련 업데이트를 하게 되는 것이다.

Windows Embedded CE Update Site

사용자 삽입 이미지

오늘 날짜로 들어가 보니 Windows Embedded CE 6.0의 경우는 2007년 9월까지 릴리즈된 update 현황을 볼 수 있었다.
왜 더는 없는 거지?? 이녀석들도 상당히 게으른 건가?? ㅡㅡ;

참고 : 자신의 Platform Builder에서 현재 QFE 업데이트 상황이 어떻게 되는지 확인을 하고 싶다면..
         '여기'를 통해 알 수 있다.
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시에 체크를 하지 말라는 내용이다.

2007. 11. 2. 11:35

릴리즈 모드에서 "DEBUGMSG()"보는 방법



WinCE로 작업을 하다 보면 디버깅 메시지의 필요성을 죽도록 느낄 수 있다.
그럼 어찌하면 디버깅 메시지를 볼 수 있을까??

간단하게 '디버깅 모드'로 빌드하면 된다. ㅎㅎ
BSP를 보게 되면, 소스에서 'DEBUGMSG()'라는 녀석을 자주 볼 수 있는데.. 이녀석이 디버깅 메시지를 뿌려주는 것이다.

하지만 이미지의 크기(?)등에 의해 보통 '디버그 모드'보다 '릴리즈 모드'로 빌드를 하게 된다.
이 경우 디버깅 메시지는 출력되지 않는다. ㅡㅡ;

하지만.. 우리가 원하는건... 디버깅 메시지..
왜?? 어디가 잘못됐는지 수정을 해야하는지 뭐든 봐야 아니깐.. ㅡㅡ;

하지만, '릴리즈 모드'에서도 디버깅 메시지의 내용을 볼 수 있는 방법이 있다고 한다.

그것은...

디버깅 할려는 파일(.cpp, .c)에 아래의 것을 선언해주면 된다.

#undef DEBUGMSG
#define DEBUGMSG(1, b) RETAILMSG(1, b)

릴리즈 모드에서는 'RETAILMSG()'라는 녀석을 메시지를 출력하는 용도로 사용하게 되는데.. DEBUGMSG()라는 녀석을 RETAILMSG()로 출력하게 define하는 것이다.

위와 같이 디버깅 메시지를 보려 하는 파일을 수정을 해주면, 해당 파일의 DEBUGMSG 메시지를 릴리즈 모드에서도 확인할 수 있다.

PS : 헤더파일에는 선언하지 말라는 말이 있다... 여러 파일에서 같은 헤더파일을 부를 경우 이놈, 저놈.. 다 디버깅 메시지를 출력할 수 있으므로.... 흠.. 난리겠구만.. ^^;

 
2007. 11. 1. 14:05

Files 디렉토리의 bib, reg파일 수정 후 NK바이너리에 적용시키는 방법



platform builder에서 'Platform\XXX\Files'에 있는 파일들.. 즉 *.reg, *.bib.. 등의 파일을 수정한 후 다시 전체 빌드를 해야할지를 가지고 고민을 하는 경우가 있다.

일반적으로 '디바이스 드라이버'라든지 개발자가 직접만든 '프로젝트 프로그램'의 경우는 수정을 가한 해당 파일만 '빌드'해주고, Copy Files to Release Directory, Make run-time Image를 해주면, NK바이너리에 추가가 된다.

하지만, 이것들은 'Platform\XXX\Src'에 있는 녀석들의 경우이다.

'Platform\XXX\Files'의 경우는 두가지 경우로 나눌 수 있다.

첫 번째, release디렉토리의 *.reg, *.bib등의 파일을 수정하는 경우이다.
*.reg나 *.bib를 수정해야 할 경우이고, 어차피 NK를 만들기 위함이면, release디렉토리의 이 녀석들만 수정하면 된다. 그리고 make image를 하면 수정한 녀석들이 적용된 NK 바이너리를 사용할 수 있다.

두 번째, Files디렉토리의 *.reg, *.bib등의 파일을 수정하는 경우이다.
이경우는 수정한 파일을 release디렉토리로 복사해 make image해주어도 되고(첫 번째와 동일한 작업이 될 수 있음), Sysgen 후에 make image를 해주어도 된다.

문제는 얼마나 많은 시간이 걸리느냐 이지만, 첫번째의 경우 1분정도(?), 두 번째(sysgen)의 경우 10분 이상이 걸린다는 것이다.

release 디렉토리의 것들을 수정할 경우, sysgen을 해주게 되면, 수정했던 것들이 Files의 것들로 바뀌게 된다.
Sysgen 시에, Files의 파일들을 Release 디렉토리로 복사하는 과정이 있기 때문이다.
이점만 주의하면, 자주 *.bib, *.reg등의 파일을 수정하는 작업의 경우, 유용하게 사용할 수 있을 것이다.
2007. 10. 31. 14:06

Windows CE 이미지 생성을 위한 configuration files


Windows CE용 이미지를 생성하는데 사용되는 몇가지의 구성 파일(Configuration file)들이 있다.
이미지를 만들기 위해 반드시 필요하고, 또 설정을 잘 못할 시 만든 OS image가 제대로 동작을 안하는 경우도 종종 있다.

BIB, REG, DAT, DB 4개의 파일이 바로 그것이다.

1. BIB(Binary Image Builder)
   BIB파일은 NK.bin으로 압축할 파일들에 대한 정보, 압축이미지의 속성을 결정하는 파일이다.
   쉽게 말해서 만들 OS image안에 포함되는 모듈이나 컴포넌트들을 정의하는 파일이다.
   BIB파일은 4개(FILES, MODULES, MEMORY, CONFIG)의 세션으로 구성된다.

  
- FILES
      : 실행가능한 파일들, 그렇지 않은 파일들 모두 정의될수 있고, 이것들이 메모리 영역안에 저장된다.
        ex) aaa.avi   $(_FLATRELEASEDIR)\aaa.avi     NK     SHU

        NK라는 이름을 가지는 이미지 파일안으로, aaa.avi 파일이 압축된다.
        폰트, 단축아이콘, 멀티미디어 파일등이 포함될 수 있다.
        참고 : S : System
                 H : Hidden
                 U : Uncompressed

   - MODULE
      : FILES 와 비슷하지만, 실행가능한 파일(OCX, DLL, EXE)들을 정의한다.  
       ex) config.bib 의 예
         MODULES
              nk.exe         $(_FLATRELEASEDIR)\kernkitl.exe       NK      SHXL
              kd.dll           $(_FLATRELEASEDIR)\kd.dll               NK      SHK

         NK라는 이름을 갖는 이미지파일 안으로 nk.exe, kd.dll파일이 압축된다.
         참고 : X : 이미지 속에 압축될 때 서명된 정보를 보관하도록 지시
                  L : 가상메모리 상에서 해당하는 파일이 분리되어 보관되지 않게 지시
                       (코드, 데이터 영역이 연속적인 공간상에 존재하도록 하기 위함)
                  K : Kernel 모드

   - MEMORY
      : 대상 Target system의 Memory정보를 정의한다.
        ex) config.bib 의 예
          MEMORY
               NK                          80240000          009C0000            RAMIMAGE
               RAM                       80C00000         03400000             RAM
                 ....
      NK라는 이름을 갖는 이미지가 0x80240000 ~ 0x009C0000만큼의 메모리를 사용하며, 이것은 RAMIMAGE(ROM)의 속성을 갖는다는 의미를 갖는다.

   - CONFIG
      : 압축 혹은 ROM size와 같은 속성들을 설정하기 위해 사용한다.


2. REG 
    시스템 레지스트리 파일을 만드는데 사용되는 파일이다.
    Make Image과정 중 모든 *.reg파일을 통합하여 REGINIT.ini파일을 만든다.
    나중에 부팅 과정에서 형성될 초기 시스템 레지스트리 환경을 구축한다.

3. DAT
    단축아이콘 등을 원하는 위치에 생성하도록 지시하는 파일이다.

4. DB
    데이터베이스 테이블을 생성하도록 지시하는 파일이다.