Windows Embedded Compact 7初體驗


Windows Embedded Compact 7初體驗

      Windows Embedded Compact 7已經出來半年多了,一直沒時間搞。最近它又出了Refresh的版本,電腦也換了個1T的硬盤,所以就下載下來體驗一把。

      先說說開發環境的搭建。Platform Builder 7.0作為VS2008的一個插件使用,且與之前所有版本的WinCE開發環境都不兼容,需獨立安裝。所以,我搭建WinCE7.0開發環境的步驟如下:

  • 安裝VMWARE WorkStation 7
  • 在虛擬機上安裝Windows 7
  • 安裝VS2008及SP1
  • 安裝Windows Embedded Compact 7

      以前在學習新版本WinCE的時候,一般都是先基於模擬器定制一個系統,但WinCE7.0目前是不支持的Device Emulator的,大概是因為它只支持ARMv5及其之后的處理器,而Device Emulator還是ARMv4的。目前項目中使用的處理器是ARM11的,屬於ARMv6,於是就打算直接往這個平台上移植看看。

      WinCE7.0的新特性及移植說明,在安裝目錄下有相關的pdf文檔做介紹。從它提供的文檔來看,WinCE6.0到WinCE7.0的移植相對比較簡單。而WinCE5.0到WinCE7.0的移植會麻煩一些,建議先從WinCE5.0移植到WinCE6.0,然后再從WinCE6.0移植到WinCE7.0。

      目前項目使用的是WinCE6.0,所以就拿6.0的BSP作為模板來移植了。移植方法與《S3C2410-WinCE6.0-OAL的快速調試》介紹的類似。將6.0的BSP拷貝到Platform目錄下,然后通過Platform Builder 7.0克隆出一個新的BSP,並修改Catalog文件中相應的Item屬性,將ARMv4改為ARMv6。另外,修改Files目錄下的Platform.bib和Platform.reg文件,清空這兩個文件的內容。修改SRC目錄下的dirs文件,去除BOOT和Drivers對應的目錄。這么做的目的就是想快速移植WinCE7.0的OAL,先讓WinCE7.0的內核跑起來,然后再慢慢移植各個驅動。

      WinCE7.0創建工程的方法與WinCE6.0的類似。基於Custom Device的模板創建一個工程,並設置平台屬性,由於一直沒在6.0上驗證過這個BSP的KITL,所以這里也就先把KITL給禁用了。設置完平台屬性后使用Clean Sysgen編譯系統。運氣好的話,編譯不出問題,直接生成NK。燒寫到設備上,就起來了。系統啟動后的打印信息如下。

復制代碼
Windows CE Kernel  for  ARM (Thumb Enabled) Built on Dec  15   2010  at  16 : 44 : 21
ProcessorType
= 0b76  Revision = 6  CpuId = 0x410fb766
OEMAddressTable 
=  80203b80
[KERNEL      ]
+ OEMInit()
[KERNEL      ]DCache: 
128  sets,  4  ways,  32  line size,  16384  size
[KERNEL      ]ICache: 
128  sets,  4  ways,  32  line size,  16384  size
[KERNEL      ]CHIPID[
156 ][acda17d0]
[KERNEL      ]
- OEMInit()
NKStartup done, starting up kernel. nCpus 
=   1
Windows CE KernelInit
Error Reporting Memory Reserved, dump size 
=   00020000
Booting Windows CE version 
7.00   for  (ARM)
Memory Configuring: Total pages: 
36278 , Filesystem pages  =   4534
Booting kernel with clean memory configuration:
Total Memory Sections:
1
[
0 ] ( static ): start: 83a26000, extension / attributes:  00024000 , length: 08db6000
Scheduling the first thread.
PID:
00400002  TID: 00410002  PGPOOL: Reserved  768  pages  for  Loader pool
PID:
00400002  TID: 00410002  PGPOOL: Reserved  256  pages  for  File pool
PID:
00400002  TID: 00410002  ERROR: OALIoCtlHalGetDeviceInfo: Invalid request
PID:
00400002  TID: 00410002  OSAXST0: Platform Name  =  WinCE6. 0  R3
PID:
00400002  TID: 00410002  WARN: OALIoCtlHalGetDeviceinfo::SPI_GETPROJECTNAME: Bu
ffer too small
PID:
00400002  TID: 00410002  OSAXST1:  >>>  Loading Module  ' kd.dll '  ( 0xC0401DB0 ) at a
ddress 
0xEFFE0000 - 0xEFFFE000   in  Process  ' NK.EXE '  ( 0x83A09AD0 )
PID:
00400002  TID: 00410002  KD: Starting kernel debugger software probe (KdStub)  -
 KD API version 
27
PID:
00400002  TID: 00410002  OSAXST1:  >>>  Loading Module  ' NK.EXE '  ( 0x83A09AD0 ) at a
ddress 
0x80200000 - 0x80217000   in  Process  ' NK.EXE '  ( 0x83A09AD0 )
PID:
00400002  TID: 00500002  Filesys doesn ' t exist, no app started
復制代碼

 

      至此,就初步完成了WinCE7.0 OAL的移植。雖然還沒有看到WinCE7.0的界面,但也總算初步了解了Platform Builder 7.0。接下來可以移植顯示、觸摸驅動,進一步揭開WinCE7.0的面紗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM