6226|24

76

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WCE驱动调试 [复制链接]

各位英雄:
     我的目标板已经固化了内核,但调试发现其中有一个驱动有问题,需要修改,但不想修改后重新编译内核并下载固化;能不能在PB中编译驱动后,把新的驱动dll文件直接替换目标机中的同名dll?如果可以,同名dll在何处?为什么我开机用同步器查看,没有发现有关驱动的dll?

最新回复

Seven_zhangxw 英雄,看到你的总结,敬佩万分,不过还有几个小问题。 你的总结引用总结如下: 1,编译新的dll 2,拷贝到目标位置 3,修改注册表 4,保存注册表 5,重启 我的问题: 1、修改注册表用PB自带的remote registry editor可以吗?保存呢? 2、怎么判断自己的系统是否支持保存注册表?一般我修改注册表都是修改platform.reg,然后重新编译下载内核。 3、重启是冷启动还是热启动呢?  详情 回复 发表于 2009-1-16 13:52
点赞 关注

回复
举报

81

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
可以............
不过很复杂,已经有牛人搞过驱动调试助手了。

http://www.cnblogs.com/we-hjb/archive/2008/10/19/1314562.html——这个牛人偶尔也会来eeworld的,
他的博客每篇都是精品哦。
——————这个驱动调试不方便是wince的重大缺陷。我现在也正为这件事情郁闷
不过号称最难的linux调试驱动却可以动态加载。微软咋就没有认识这点呢?
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
所有驱动的Dll都在目标机的windows文件夹下面,这些dll一般都是隐藏属性的,所以你要看见的话需要修改系统的显示属性,在菜单或者视图中能修改。
另外,能不直接替换,这个取决与之前的dll是否是只读属性,如果是只读属性的话是不允许替换的。如果不是只读属性,那你就走运了,可以直接替换。lz不妨试试!
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

4
 
一般的CE的文件系统是RAM的文件系统,替换掉是没有用的,下次开机就又是以前的文件了,
如果是ROM的文件,那是替换不掉的,一般情况下Image是做了保护的
在Mobile下面有办法单独升级一个驱动,那是用Package的方式,而且需要做ImageUpdate的支持
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
LZ如果只是调试的话可以把PB编译出来的驱动拷贝到Windows目录下面,替换掉原来的文件,然后实现Reset,注意这个Reset不能清SDRAM的Reset
这样系统重新起来后就会用你最新下载进去的驱动
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

6
 
这个topic值得思考,和推荐。
——不知道大家有没有好的手段。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

7
 
wince的系统文件一般以binfs加载,在系统中能看但不能写。即便覆盖了,也仅仅是在sdram中的。不要嫌更新镜像麻烦。当你选择了M$,你就无法摆脱麻烦。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

8
 
这个很难实现。就像hzdysymbol 说的,在RAM中替换是可以的,但是ColdBoot起来还是之前的。
在Rom上的很难改。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 shuiyan 的回复:
wince的系统文件一般以binfs加载,在系统中能看但不能写。即便覆盖了,也仅仅是在sdram中的。不要嫌更新镜像麻烦。当你选择了M$,你就无法摆脱麻烦。
——————————————————————
这个很难实现。就像hzdysymbol 说的,在RAM中替换是可以的,但是ColdBoot起来还是之前的。
在Rom上的很难改。


看来那个驱动调试助手的方法是唯一的方法。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 3 楼 hzdysymbol 的回复:
一般的CE的文件系统是RAM的文件系统,替换掉是没有用的,下次开机就又是以前的文件了,
如果是ROM的文件,那是替换不掉的,一般情况下Image是做了保护的
在Mobile下面有办法单独升级一个驱动,那是用Package的方式,而且需要做ImageUpdate的支持


一直没有弄懂WM是怎么可以更新驱动,在Reset后还能保证\Windows\下程序不丢失的
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 
感激各位英雄给小弟的指点先!
我的platform.reg文件是这样加载驱动的:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPB]
"Index"=dword:2
"Prefix"="GPB"
"Dll"="ms2y526c.dll"
"Order"=dword:2

系统启动成功后,我打开windows文件夹,然后替换用新编译的ms2y526c.dll替换原来的同名文件;不重启系统,直接再打开应用程序,应用程序中调用
CreateFile(_T("GPB2:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
打开驱动,然后调用驱动中的导出函数。

请问这样的操作过程,是不是应用程序在访问新的驱动程序(dll)呢?
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 daigua04 的回复:
感激各位英雄给小弟的指点先!
我的platform.reg文件是这样加载驱动的:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPB]
"Index"=dword:2
"Prefix"="GPB"
"Dll"="ms2y526c.dll"
"Order"=dword:2

系统启动成功后,我打开windows文件夹,然后替换用新编译的ms2y526c.dll替换原来的同名文件;不重启系统,直接再打开应用程序,应用程序中调用
CreateFile(_T("GPB2:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXIST…


你可以修改一下驱动的打印信息,看看是否真的更新了。我也好想这么做啊。
如果成功了通知一声啊哦
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 10 楼 daigua04 的回复:
感激各位英雄给小弟的指点先!
我的platform.reg文件是这样加载驱动的:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPB]
"Index"=dword:2
"Prefix"="GPB"
"Dll"="ms2y526c.dll"
"Order"=dword:2

系统启动成功后,我打开windows文件夹,然后替换用新编译的ms2y526c.dll替换原来的同名文件;不重启系统,直接再打开应用程序,应用程序中调用
CreateFile(_T("GPB2:"),GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXIST…

不是
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
看来wince驱动修改后,还需要重新编译内核并下载固化啊,太麻烦了!不知道还有没有更好调试驱动程序的方法?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 daigua04 的回复:
看来wince驱动修改后,还需要重新编译内核并下载固化啊,太麻烦了!不知道还有没有更好调试驱动程序的方法?


如果只是调试的话,lz为什么不用kitl来动态加载调试呢?这样的话每次修改驱动之后只需要重新编译而不需要固化就可以调试驱动了。当你调试完成之后再将完整的驱动固化到device上去。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 14 楼 Ricky_hu 的回复:
引用 13 楼 daigua04 的回复:
看来wince驱动修改后,还需要重新编译内核并下载固化啊,太麻烦了!不知道还有没有更好调试驱动程序的方法?


如果只是调试的话,lz为什么不用kitl来动态加载调试呢?这样的话每次修改驱动之后只需要重新编译而不需要固化就可以调试驱动了。当你调试完成之后再将完整的驱动固化到device上去。


至少要下载到内存吧
我觉得使用应用程序控制加载是最好的方式,我现在正在积极准备
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

17
 
引用 15 楼 gooogleman 的回复:
引用 14 楼 Ricky_hu 的回复:
引用 13 楼 daigua04 的回复:
看来wince驱动修改后,还需要重新编译内核并下载固化啊,太麻烦了!不知道还有没有更好调试驱动程序的方法?


如果只是调试的话,lz为什么不用kitl来动态加载调试呢?这样的话每次修改驱动之后只需要重新编译而不需要固化就可以调试驱动了。当你调试完成之后再将完整的驱动固化到device上去。


至少要下载到内存吧
我觉得使用应用程序控制加载是最好的方式,…


通过activesync利用PB的kitl动态调试就不需要下载到内存。

狠期待gooogleman的应用程序控制加载方式哦!!加油!!
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

18
 
KITL动态调试内核,是不是首先要编译debug版本的内核,还需要在“platform settings”里选择“enable kitl”?网上有关ktil和cs8900网卡冲突,什么原因呢,怎么解决?我现在的10M网卡就是用的cs8900。
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

19
 
不需要编译debug版本的内核,需要在platform settings”里选择“enable kitl”。至于kitl跟网卡冲突的事情我不太清楚,到底冲不冲突lz试试不就知道了!?
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 18 楼 Ricky_hu 的回复:
不需要编译debug版本的内核,需要在platform settings”里选择“enable kitl”。至于kitl跟网卡冲突的事情我不太清楚,到底冲不冲突lz试试不就知道了!?
通过activesync利用PB的kitl动态调试就不需要下载到内存。 ?


我的KITL是要先下载到内存的,Ricky_hu,你是怎么做的?因为下载到内存之后运行,就会有个wait for connect........
然后在PB的attache device菜单就可以执行了。Ricky_hu,老兄能写你的具体步骤吗?如果不用下载那真是好啊。
难道是我多此一举了?你的是什么平台?我的是2440的,我看文档都是要下载到内存,然后再用PB菜单控制执行的。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表