WinCE6.0 KITL调试

来源:互联网 发布:淘宝宝贝描述简单大全 编辑:程序博客网 时间:2024/06/05 14:27

最近,经常需要再KITL下做一些驱动方面的调试,有时候过很久没碰这东西,还真会碰到些稀奇古怪的问题让你捣鼓很久,所以一一做个记录整理,同时,也方便同行查阅,如有写得不对的地方,欢迎指点修正。

其实,介绍KITL的文章很多,不凡大师的文章,下面就贴几个:

http://www.cnblogs.com/we-hjb/archive/2008/10/14/1311286.html

http://www.cnblogs.com/we-hjb/archive/2008/10/16/1312236.html

 

上述两个链接中也有详细说明了,下面记录下我调试的准备,和遇到的一些问题。

1. OS Design的设置,主要是Enable如下两个

    Enable kernel debugger (如果需要调试内核,可以选上,如果是简单的看看系统加载过程,这项不选也可以)

    Enable KITL

2. 选择debug编译,如果是看看加载信息,选择releae编译也可以,我一般用debug,毕竟这是调试吗,觉得debug靠谱。

这样OS就可以开始build了。

3. 准备一根网线,当然前提是你的设备要支持以太网哦,如果不支持,其他也可以用USB,串口,上述老师也有说过了。

不过用网络调试,速度上要快。

另外,要保证网络是在同一个网段内的,比如都在192.168.10.*,如果你的宿主IP在192.168.10.*,而你的设备在192.168.1.*,这样可能会不通。

4. RS232线,可以用DNW方便接下来的EBOOT加载IMAGE到RAM中调试,顺便说下EBOOT,下面是我的EBOOT list

S3C2440 Ethernet/USB Boot Loader Configuration Main Menu:
------------------------------------------------------------------
0) IP address: 192.168.10.154
1) Subnet mask: 255.255.255.0
2) DHCP: Enabled                            ------->如果事先准备好IP,这里可以用静态的
3) Boot delay: 5 seconds
4) Program DM9000 MAC address (00:12:4E:07:A3:6D)
5) KITL Configuration: ENABLED
C) Clean Boot Option: FALSE
D) Download image now
R) Read Configuration
U) DOWNLOAD image now(USB)
W) Write Configuration Right Now
------------------------------------------------------------------

Enter your selection: d

这里有的设备,进入EBOOT后,第一次识别不到网卡的MAC(DM9000上遇到过读不到MAC), IP ADDRESS,可以先设置下,或者要检查下EBOOT代码,通常在识别不到的情况,会自动使用默认的MAC,IP ADDRESS,这要看EBOOT怎么设计的了。

按下D就开始准备download image到RAM了,这时要看设备与宿主电脑是否通没有,怎么看,就是看串口吐出来的信息是否是下面这些信息,是就通了

Enter your selection: d
Vendor ID= a46, Product ID=9000
NIC:DM9000 is detected.
Ethernet_Init OK.
Ethernet MAC Address: 0:12:4e:7:a3:6d
System ready!
Preparing for download...
INFO: *** Device Name 'FL_2410' ***
InitDHCP():: Calling ProcessDHCP()
ProcessDHCP()::DHCP_INIT
Got Response from DHCP server, IP address: 192.168.10.41

ProcessDHCP()::DHCP IP Address Resolved as 192.168.10.41, netmask: 255.255.255.0
Lease time: -1 seconds
Got Response from DHCP server, IP address: 192.168.10.41

No ARP response in 2 seconds, assuming ownership of 192.168.10.41
+EbootSendBootmeAndWaitForTftp
Sent BOOTME to 255.255.255.255
Sent BOOTME to 255.255.255.255
Sent BOOTME to 255.255.255.255-------->DNW上不断吐出

 

5. PB已经将image编译成功,这时PB-->Target-->Connectivity Options...里setting下,来张图,比较清晰。

如果上图中没有显示你的设备,那可能就多了,网络,硬件都有可能导致,网上有个人总结了:

我过去在盟石科技调试网口的经验,供大家参考,当然,大家说过的我就不说了。什么IOBase,IP地址我就不说了,我说点别的。
1. DM9000 not found!
   有可能芯片没焊好;还有一种可能,买的芯片是坏的,我们经常遇到,通常换一个芯片就好了。
2. 下载过程中出现Link down,下载过程中中断
    一般原因都是芯片坏的,直接换芯片
3. 上面两项都没问题,串口能出:Sent bootME to 255.255.255.255,但VS2005始终连不上,Sniffer嗅探探测不到发给PC机网卡的数据包,但网口显示已连接。
    可能1:PC机上有无线网卡+有线网卡,产生冲突
    可能2:CE设备和PC机IP不在一个网段
    可能3:我们遇到过的一种情况:CPU与物理层芯片的16条数据线有两条短路。
以上供大家参考,希望对后来者有用!!!

 

好,如果一切OK,下面就可以attached image了,点PB->target-->attached,正常的话,会看到一个对话框弹出,并显示文件拷贝的提示。

在这里我遇到过一个问题,对话框也弹出了,就是没有文件拷贝,一直停在那不动,大约过1,2分钟,对话自动退出,同事PB的output那里显示与kernel debugger connect失败,后来知道这个问题,还是前面配置失败的结果,特别是网络。

 

issue1:就是IMAGE download都成功了,就是OS起不来,什么动静都没有,DNW上显示如下信息后就不动了:

"INFO: OEMLaunch: Jumping to Physical Address 0x30204214h (Virtual Address 0x80204214h)..."

这个提示,在我实验过程中大概是由于,一是在PB-->Target-->Connectivity Options...里,Transport没有选ethernet,另外,如果要debugger,那里要选KdStub,因为我到里面检查发现的确没有选好。另外,可能是OS的size问题,size太大,不过有时候size大(当然大小肯定是小于RAM允许的范围的,比如128M的RAM,你的OS128.5M,肯定不靠谱了),也能download,甚至也有成功的范例,当时OS大小有40多M,不过大多情况,size过大事不成功,连download都不成功,后来我的OS size都小于30M,进展比较顺利。

如果OS的size过大,download时,DNW上会有如下提示:

Download BIN file information:
-----------------------------------------------------
[0]: Base Address=0x80200000  Length=0x2d340b0
-----------------------------------------------------
BIN image type unknow
!OEMVERIFYMEMORY: Invalid image

 

 

issue2:就是我在另一台电脑上做KITL调试,电脑是WIN7系统,PB下的Active target device下没有设备,当初怀疑应该是网络问题,或者防护墙问题,
结果果然是防护墙那里限制了,只要打开WIN7防火墙设置那里就看到,也就是允许的程序和功能那里,有个Platform Builder CE Service Host,把后面的钩都钩上就OK。

 

issue3:if select the kernel debugger, must prepare the image with debug mode, if release mode, the os can be downloaded, but can't launch,这个issue不是很确定了,只是我这样做过,不知道导致不能launch的真正原因是因为选了kernel debugger,却在release模式下编译OS。有人知道,可以告诉我下我的猜测对不.

 

issue4: 我有一台设备,我在PB-->target-->reset device做这个reset的动作后,我再重新上电,机器就挂了,也就是bootload都起不来了,感觉被破坏了似的,这个问题,就是我做了个reset动作,当时我也是不小心点错了,本来想点dispatch device的。后来就不敢再点了,设备有限,哈哈。我想reset device类似于重启device吧,应该不至于把机器搞得起不来吧,暂时还不知道为什么,如有了解,可以指点修正下,感谢。

 

issue5: PB5与PB6似乎公用会有冲突,下面这个贴子说到,如果电脑上同时装有PB5,PB6,调试出如下问题:

出现的问题是,Attach Device时输出以下信息,然后自动断开:

(CoreCon) Download service map set to NONE; ignoring download request!
PB Debugger Debugger could not initialize connection.
PB Debugger The Kernel Debugger is waiting to connect with target.
PB Debugger The Kernel Debugger has been disconnected successfully.

无论是debug还是release配置,都会出现。

如果不使用Kernel debugger,并把KdStub去掉,则可以成功连接,Target Control也可以使用。但是如果不能使用kernel debugger,KITL就没什么意义了。

http://topic.csdn.net/u/20090604/13/0aae7b50-0957-4a5b-ab49-7b925c82efa0.html

原创粉丝点击