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的面纱

Windows Embedded Compact 7初体验的更多相关文章

  1. Windows Embedded Compact 2013 安装体验

    6月14日,微软正式发布了Windows embedded compact 2013,大家还是习惯称之为Window CE 8,公司也要开始做windows embedded compact 2013 ...

  2. Windows Embedded Compact 2013升级:VS2013也能编译

    IT之家(www.ithome.com):Windows Embedded Compact 2013升级:VS2013也能编译 今天,微软为Windows Embedded Compact 2013送 ...

  3. Windows Embedded Compact 7新特性

    Windows® Embedded Compact 7是Windows Embedded CE的下一代产品,而Windows Embedded CE这款操作系统面向占用资源少的新颖设备.Windows ...

  4. Windows Embedded Compact 7 开发环境搭建

    第一步,我们会定制一个运行在Vitual PC上的image.要完成这个任务,你要保证你的电脑上安装了:1.Windows Virtual PC 2.Visual Studio 2008+SP1 3. ...

  5. Windows Embedded Compact 7网络编程概述(下)

    11.1.1 Select I/O模型 在Windows CE中,Select模型是唯一被支持的I/O模型.Select I/O模型就是利用select函数对I/O进行管理. 函数select的功能在 ...

  6. Windows Embedded Compact 7网络编程概述(上)

    如今,不论是嵌入式设备.PDA还是智能手机,网络都是必不可少的模块.网络使人们更方便地共享设备上的信息和资源.而且,利用智能手机浏览互联网,也逐渐成为生活中的常见手段.物联网所倡导的物物相联,也离不开 ...

  7. Windows Phone开发工具初体验【转载】

    Windows Phone开发工具在MIX 2010上火热登场了.Windows Mobile开发者们压抑许久的热情终于爆发出来,对于Windows Phone的华丽转身,开发者们褒贬不一,有人对Si ...

  8. Windows Phone 8 开发初体验

    Windows Phone 8 是当前除了Android.IPhone之外,第3大智能手机运行平台.作为微软技术的忠实fans,一直关注和跟进微软技术的最新进展.这里就给大家简单介绍一下,如何进行Wi ...

  9. Windows 8.1 RTM初体验

    Windows 8.1正式发布在10月17日,现在可以在MSDN/TechNet进行订阅下载. 操作系统版本号和Windows Server 2012 R2保持一致. 开始屏幕动态磁贴现在有4种尺寸可 ...

随机推荐

  1. 学习python绘图

    学会python画图 # 使用清华的pip源进行安装sklearn # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -U sciki ...

  2. OneNote无法同时设置中英文字体设置解决办法

    如果你是一位OneNote老用户,无论是2003.2007还是2010或者最新的2013版本,都一直存在一个Bug,就是无法同时设置中英文字体(比如在Word中就可以分别设置不同的).我搜了一下,在微 ...

  3. KAFKA随机产生JMX 端口指定的问题

    https://blog.csdn.net/weixin_40209426/article/details/82217987

  4. Azkaban(三)Azkaban的使用

    界面介绍 首页有四个菜单 projects:最重要的部分,创建一个工程,所有flows将在工程中运行. scheduling:显示定时任务 executing:显示当前运行的任务 history:显示 ...

  5. Hadoop案例(十)WordCount

    WordCount案例 需求1:统计一堆文件中单词出现的个数(WordCount案例) 0)需求:在一堆给定的文本文件中统计输出每一个单词出现的总次数 1)数据准备:Hello.txt hello w ...

  6. Bootstrap进阶三:jQuery插件概览

    单个还是全部引入 JavaScript 插件可以单个引入(使用 Bootstrap 提供的单个 *.js 文件),或者一次性全部引入(使用 bootstrap.js 或压缩版的 bootstrap.m ...

  7. python os 用法(转)

    注:转自这里,仅作为方便个人查询使用 获取文件所在路径 import os os.path.dirname(__file__)  获取当前文件的所在路径 print (os.path.dirname( ...

  8. Web API的几种调用方式

    示例是调用谷歌短网址的API. 1. HttpClient方式: public static async void DoAsyncPost() { DateTime dateBegin = DateT ...

  9. jdk1.8安装后查看Java -version出错

    最近在电脑行安装了多个jdk的版本 分别是jdk1.6,jdk1.7,jdk1.8三个版本,在配置环境变量的时候,选择的是jdk1.7; 但是奇怪的是,当我在cmd中输入java -version后, ...

  10. 决策树算法(Bagging与随机森林)

    Bagging算法: 将训练数据集进行N次Bootstrap采样得到N个训练数据子集,对每个子集使用相同的算法分别建立决策树,最终的分类(或回归)结果是N个决策树的结果的多数投票(或平均). 其中,B ...