VMWare上的WEC7修改调试串口



有关WinCE运行在VMWare上,最大名鼎鼎的要数
http://blog.csdn.net/singlerace/article/details/2504643

同时还有一篇

http://blog.csdn.net/mcubbs/article/details/5921662
不过前辈只写了CE6的,而且为了支持各种硬件,还要修改系统代码,非我等晚辈能力所及啊。
我想着,能否仿照前辈所写,让WinCE7也运行于VMWare?动手一试。

让WinCE7运行在VMWare上

1.下载前辈的VMCE6的Image(也可以下载VMCE6的BSP作为参考,也有网卡驱动)接下去我们只用到了前辈的Image。
2.编译一个基于Generic CEPC的NK,记得要把Project Properties中的Build Options中的Enable KITL关闭。
3.用虚拟机打开VMCE6的硬盘文件,将新编译的NK.bin覆盖原有NK.bin,这样,就能跑WinCE7了。
这样我们不需要修改任何代码,就能先让WinCE7跑起来,但是最重要的是,没有网卡驱动。
4.增加网卡e1000
根据前辈写的,他找到了一个AMD PCNet的驱动,是WinCE2.0的,能用在CE6上。
我试了一下,可以用在WinCE7上。但是担心这个会不会太老了,于是想着换一个。
由于VMWare支持3中网卡,其中第三种是Intel的E1000(Intel® PRO/1000 MT Adapter,具体型号是Intel 82545EM),

到Intel的官网上一看,居然有这款网卡的WinCE驱动!!
他提供了WinCE6和WinCE5的,但是貌似WinCE6的驱动不能用,WinCE5的是可以用的。

后来仔细查看驱动的说明文档,只有WinCE5的那份是支持Intel 82545EM的,所以只能使用WinCE5的。
下载WInCE5的驱动,里面已经包含了reg,bib,将它合并入工程的reg和bib中,
把reg里的几个条件编译去掉,建议保留动态IP部分,bib 最后还要加一个 “K"变成SHK,重新编译NK.bin,覆盖放入虚拟机的硬盘中。
然后将虚拟机的网卡改为e1000。运行后就能看到网卡被正确识别了。
声卡貌似没有起作用,这个可能是需要像前辈那样修改部分源代码,我想我没有这个能力,没声音就没有声音吧。
这样出来的NK.bin不需要修改系统代码,就能在VMWare上跑了。

更改VMWare下WinCE7调试输出口

默认情况下loadcepc写死使用COM1作为本身的调试信息输出,而加载NK.bin后的调试信息输出是可以通过loadcept的命令行参数来配置的。
VMWare只有两个串口,而WinCE7会占用第一串口作为调试输出串口,留给系统的只有一个COM2了,
有时我们需要更多串口,可以考虑将VMWare的串口增加,将调试串口设定到后面的串口,我现在将调试输出改到COM3,
好像loadcepc本身未输出调试信息,因此只要修改loadcepc的参数就能改变调试串口的输出了。
1.修改AUTOEXEC.bat,将 ":LAUNCH"后的一句增加一个 ”/C: x“的参数,其中x范围[0-4],填0表示禁用内核的调试输出
例如  loadcepc /C:3 /L:%RES% /E:0:0:0.0.0.0:%KERNFLAGS% %DRIVE_LETTER%\nk.bin
2.为虚拟机增加COM3,加好后,打开.vmx,手工编辑COM3的设置:
serial2.baseAddr = "1000"
如果要增加COM4,则设置如下
serial3.baseAddr = "744"

相关的文件下载地址:

e1000的官方地址:
https://downloadcenter.intel.com/Detail_Desc.aspx?lang=zho&DwnldID=9051
VMCE70的BSP和IMG地址:
http://url.cn/PAVCXQ
http://url.cn/VAziV7

另:通过在虚拟机上使用WCE7+VS2008,给我的感觉是非常糟糕的(不知道是不是我编的系统有问题)
1.首先VS2008里面有问题,一个简单的向导生成的MFC工程,编译就通不过,报著名的“lstrlenW不是ATL的成员”错误以及著名的C4985警告
然后微软网站上有针对这个问题的补丁,结果是补了白补,还是一样的错误。
还是后来网上给了一个解决方法,就是把ce7目录加到include路径中。
http://my.oschina.net/iamgk/blog/138543
2.VS2008用以太网连接进行应用程序调试,要么一调试就断开连接,要么一跳到断点就断开连接,
要么断点之后无法单步,无法跳入,要么断点之后一单步VS2008就崩溃,根本没法调试。这可不是偶尔出现,而是必然出现。

2014.2.12已经解决,打了补丁KB2483802
3.我用Remote File Viewer连接正常,用Remote Process Viewer连接后,看不到任何进程,只有一行,显示的都是0。

我用的是VS2008 Team Suit英文版+SP1补丁。

我当时都想着退回WinCE6+VS2005了,可惜硬件又不支持。如果有人遇到这些问题,并解决了的希望共享一下啊。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值