3521|9

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎么用KITL技术来调试WINCE内核啊,不是很懂这个,望高人指点一二啊! [复制链接]

怎么用KITL技术来调试WINCE内核啊,不是很懂这个,望高人指点一二啊!
    能像VC++6.0里面调试应用程序那样吗?可以单步,断点,运行什么的吗?但关键是NK不能在本地(PC)上运行,必须在远端(设备)上运行,这个要进行单步,断点,运行调试是怎么一回事啊?在PB源码里设置一个断点,然后编译带断点的NK,编译完把带断点的NK下到设备端,NK跑起来就会停在设好的断点处,等我们进行调试?是不是这样的?看了很多网络上的文章,也没整太明白.整个调试是怎么一回事啊?
   不过觉得没有KITL,单单用RETAILMSG来打印消息来调试NK内核那是无比的痛苦,报一个数据异常,就没辙了!


望有用过的人指点一二!

最新回复

在这些函数中,kitl都还没有初始化,又如何利用kitl调试? 其实1楼的文章lz如果好好看了,应该能明白一些  详情 回复 发表于 2008-9-23 17:14
点赞 关注

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
网上此类文章比较多,LZ有没有Search一下。
例如:http://www.cnblogs.com/walzer/archive/2006/02/05/325554.aspx
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
看到了那篇文章,觉得对自己没什么太大作用.我的环境是WINCE60+VS2005.
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
将debug版本的Windows CE映像通过调试网卡下载到板子上运行,可以在VS2005的output窗口中看到WinCE的加载过程。你可以在操作系统的源代码中加入断点,就像你说的那样,执行到断点处,NK将停止。
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个要BSP支持KITL才行吧,现在很多BSP都不支持的,以前我编译的时候选上KITL,连系统都启动不了
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
如果没有网口,只有USB的串口连接怎么办?能行吗?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
我在模拟环境下(VS2005+WINCE60)做了一下测试,VS2005通过网络与模拟NK进行连接通信,基本是可以停在断点处,但断点不能放在像OEMINIT( ),NKSTARTUP( ),ARMINIT( )等这样的函数里面,只能放在什么PS2MOUSE驱动程序,SERIAL串口驱动程序里面,很奇怪,放在比较靠前的初始化函数里面断点会被忽略掉的,为什么?
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用楼主 xqhrs232 的帖子:
怎么用KITL技术来调试WINCE内核啊,不是很懂这个,望高人指点一二啊!
    能像VC++6.0里面调试应用程序那样吗?可以单步,断点,运行什么的吗?但关键是NK不能在本地(PC)上运行,必须在远端(设备)上运行,这个要进行单步,断点,运行调试是怎么一回事啊?在PB源码里设置一个断点,然后编译带断点的NK,编译完把带断点的NK下到设备端,NK跑起来就会停在设好的断点处,等我们进行调试?是不是这样的?看了很多网络上的文章,也没整太明白.整个调试是…

楼主你所问的问题,MSDN和google其实都能帮你回答。最好能够自己去钻一下这些文档,再来发问,会比较有认知。
1 如果build带KITL的image,NK.EXE其实就是KERNKITL.exe(\SRC\KERNEL\KERNKITL)的重命名。这个内核会有对KITL的一些支持;
2 正如楼主所说,NK会run在设备端,而我们的debugger是在PC端,所以2者必须需要通讯。实际上,kd.exe(kernel debugger)会负责在设备端来作为一个PC端的代理,进行debug命令和数据的传输。
3 刚才说了,debug需要设备和PC有一个通讯的基础。所以,KTIL的实现就是一个基本的通讯链路的实现(网络,USB,Serial...)。至于其他的东西,MS都帮你写好了,OEM只要帮MS把这个通讯实现即可。


 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 5 楼 xqhrs232 的回复:
如果没有网口,只有USB的串口连接怎么办?能行吗?

只要kitl支持,就可以


 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 6 楼 xqhrs232 的回复:
我在模拟环境下(VS2005+WINCE60)做了一下测试,VS2005通过网络与模拟NK进行连接通信,基本是可以停在断点处,但断点不能放在像OEMINIT( ),NKSTARTUP( ),ARMINIT( )等这样的函数里面,只能放在什么PS2MOUSE驱动程序,SERIAL串口驱动程序里面,很奇怪,放在比较靠前的初始化函数里面断点会被忽略掉的,为什么?


在这些函数中,kitl都还没有初始化,又如何利用kitl调试?
其实1楼的文章lz如果好好看了,应该能明白一些
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表