首先我写这个是为了记录我曲折的wince内核过程,会的人就不要喷我了~~~~
现在看来这个过程很简单,可在一开始错误一大堆,网上答案也是七零八落的,幸好有位大哥在介绍安装wince6.0平台的说了下内核生成过程和SDK的过程。
步骤如下:
1、首先确保你已经安装了wince6.0的平台,即VS2005+PB6.0,其中一共有6个文件(不过现在好像R3也出了)安装顺序为:VS2005、VS2005补丁SP1、PB6.0和PB的3个补丁(SP1/R2/Update-Rollup-Armv4I),平台搭建好之后可以在新建项目里面看到有PB6.0的选项;
2、安装Microsoft Device Emulator 2.0,官方下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyID=dd567053-f231-4a64-a648-fea5e7061303&displaylang=en,2.0版本的模拟器是对VS2k5中默认安装的1.0版本的升级。(官网我没打开,不过网上一搜一大把)这个不安装也不影响;
3、安装Virtual Machine Network Driver for Microsoft Device Emulator,这个组件保证模拟器的正常运行,如果不安装的话模拟器启动以后可能是黑屏,官方下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&DisplayLang=en,这个下载已经被微软关掉了,推荐下载Microsoft Virtual PC 2007,官方下载地址为:http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&DisplayLang=en,但是这里有一个问题,VPC2007能在Windows XP / Vista / Windows Server 2003 Standard上安装而无法在Enterprise上安装,Enterprise上只能装更为高级的Virtual Server 2005。所以在选择操作系统的时候要有所注意。因为我使用的Windows XP操作系认,所以这里直接安装了Virtual PC 2007。(同样这两个东西网上随便搜,我安装的是Microsoft Virtual PC 2007,别个推荐哈)
接下来就是我们最为关键内核编译的过程
4、 首先创建一个新的项目,在BSP里面推荐选择Device Emulator: ARMV4I,这是很重要的一步,同时这里要提到一点,设备模拟器是ARM架构的,也就是说x86架构的CE系统是不能在模拟器上运行的,这个问题我也遇到过了,用CEPC: x86定制了一个系统,编译完成后附加到设备模拟器的时候报出错误: Invalid or missing ROM image. 不过选错了也没有关系,在用模板创建完成后仍然可以修改这些选项。后面选择PDA,剩余的那些选择默认即可。(今天老师提醒说X86也可以过的,他就是这样编译的,我正在试验~~~~)
5、编译之前要提到一点就是取消KITL(no IMGNOKITL=1),如果不取消这一选项的话在非Debug模式下模拟器是不能启动的。右单击项目名称,选择Properties(属性),在Build options中取消对"Enable KITL(no IMGKITL=1)"的选中。然后就可以进行编译了,编译的时间会相对长一些,取决于定制功能的多少。(我编译了几个小时~~~)
6、编译成功之后,在RelDir对应的目录下生成了一个名为NK.bin的文件,这个文件就是给虚拟机使用的运行时镜像,解下来我们要把编译完成的系统附加到设备。在此之前要对连接属性进行一些设置。打开Vs2k5菜单,选择Target -> Connectivity options, 打开目标设备连接属性对话框,Target Device选择CE Device, Download和Transport都选择Device Emulator (DMA),Debugger选择None。针对模拟器运行参数的其他设置,比如屏幕尺寸,内存大小等等,都是要在这个对话框中进行设置的.。提示下:如果选择的是x86的BSP那么这里选择DMA是不匹配的(老外说the emulator on CE6.0 is an ARM emulator, not X860based one.)
7、 修改完配置后点击Apply并关闭窗口,在Vs2k5中选择Target->Attach device开始附加到设备,这个时间也会有几分钟,Output窗口中会显示添加的状态,如果输出窗口卡在某一个位置上,模拟器还是黑屏的话,有可能是前面的某一步配置出现问题。需要回过头来检查,模拟器正常启动后,就可以看到一个Windows CE系统的模拟器窗口。
如图:
呵呵看到这个模拟器的界面了,高兴ing
接下来用x86来完成这个模拟器
然后就开始新的任务——定制shell