血泪!连续加班两周没加好的wince驱动,求助!

happyahead   2008-11-4 18:35 楼主
事情是这样,我被突然调来解决wince的驱动问题。
看了许多书,有许多问题搞不明白。

我用的平台是pb4.2 ,下面是我脑中的浆糊:

1、wince(D:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\USB) 自带的驱动是什么情况下可以用的?然后我假如的一块sl811芯片,和自带的驱动有什么关系?

2、我知道他是分层的,比如我要实现一个鼠标驱动要直接在这里实现可以吗?要修改哪些文件(实现那些接口我知道)

3、假如我实现了第二步我接下来做的事情是,用pb的命令行定位到(D:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\USB)下面,然后用build -c直接编译,对吧?紧接着做什么?

4、在第3步的基础上我接下来做的事情是把Catalog下的Core OS->Display based devices -> Core OS  Services->USB host Support->USB HID Class Driver->USB hid mouse Only加到pb项目中,这就是我修改影响到的代码吗?

5.接下来我修改了reg和bib文件:
::::::::::::::::::
::::project.reg:::
::::::::::::::::::
;这些原来的人已经把他注释起来了,我把这些的注释解开了
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\UHCI]
  "Prefix"="HCD"
  "Dll"="uhci.dll"
  "Order"=dword:1
  "Index"=dword:1
  "Class"=dword:0C
  "SubClass"=dword:03
  "ProgIF"=dword:00
  "IoBase"=dword:BF800000
  "SysIntr"=dword:23
;usb mouse
[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\3\Hid_Class]
  "DLL"="USBHID.DLL"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Hid_Class]
  "DLL"="USBHID.DLL"
  "Prefix"="HID"

[HKEY_LOCAL_MACHINE\Drivers\HID\LoadClients\Default\Default\1_2\Mouse]
  "DLL"="MOUHID.DLL"
::::::::::::::::::
::::project.bib:::
::::::::::::::::::
;接着我把如下的注释也去掉了
;uhci.dll $(_FLATRELEASEDIR)\uhci.dll NK SH
;usbd.dll $(_FLATRELEASEDIR)\usbd.dll NK SH
;usbhid.dll            $(_FLATRELEASEDIR)\usbhid.dll NK SH
;mouhid.dll            $(_FLATRELEASEDIR)\mouhid.dll
这些步骤有没有问题?


下面我就是整个rebuild platform-> make image 烧程序然后启动程序在串口下我看到了如下的错误:
Data Abort: Thread=83c6d504 Proc=819a6d30 'device.exe'
每一步我都有怀疑,走到最后一部~错误我实在无法定位了,请各位帮忙~哪怕是指出我的一点点的细节操作错误,多谢!

回复评论 (19)

你要做的是什么USB驱动?
点赞  2008-11-4 18:37
做一个鼠标驱动,确切的说是加一个别人原来已经做好的鼠标驱动~前人就留下来一个和D:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\USB相同的目录
经过人提醒好像缺少sysgen,但好像不太会用,同时请教
点赞  2008-11-4 18:45
不懂,关注下
点赞  2008-11-5 14:42
usb鼠标驱动PB不是已经有的吗??
直接添加就可以啦??
点赞  2008-11-5 18:06
对,USB鼠标驱动不用做,直接增加组件就可以。当然前提是你的主板那边的USB HOST驱动已经做好,我估计你的问题出在这里。
点赞  2008-11-6 10:26
哎,还要搞个SL811,搞不明白你为什么这么做。
点赞  2008-11-6 16:15
不懂的东西太多了,帮你顶一个先。
点赞  2008-11-7 09:48
引用: 引用 6 楼 gooogleman 的回复:
哎,还要搞个SL811,搞不明白你为什么这么做。


这个我也不太明白~我只知道原来的那个USB是用来做文件传送的,是从口,现在sl811接的usb是主的
点赞  2008-11-8 19:02
现在的情况又有了些变化~原来的中断地址有问题,我把他改过来了,鼠标插入有了中断,但是原来的USB口又不能用了~冲突了?哪里?
点赞  2008-11-8 19:04
o y~
鼠标终于能动了,迈出一大步,但还有如下问题,鼠标只能在系统启动以后使用,启动前插入检测不到,拔下鼠标再插入就不认识了~一定是中断还有问题~继续解决
点赞  2008-11-10 13:59
帮你顶!
点赞  2008-11-11 21:14
mark
点赞  2008-11-12 11:03
我也开发此类驱动。好了。现在有个问题,在CPU不忙时,我的USB主机所操作的键盘鼠标工作挺正常,一旦CPU忙时,驱动内采集线程就开始变慢。通过USB分析仪跟踪,CPU不忙时,线程能保证几毫秒采集一次,CPU忙时,就变成了几十毫秒。我把线程优先级提高到0,,还是不行。理论上CPU时间片不是根据优先级来分配的吗,为什么我提高到了最高级,CPU时间片还是抢不其他线程,难道还有其他设置,实在不解!!!!!!!!!!
点赞  2009-9-23 07:26
引用: 引用 10 楼 xooxoo 的回复:
o y~
鼠标终于能动了,迈出一大步,但还有如下问题,鼠标只能在系统启动以后使用,启动前插入检测不到,拔下鼠标再插入就不认识了~一定是中断还有问题~继续解决

看看下边的帖子,前边有人讨论过
[url=http://topic.eeworld.net/u/20090916/10/6009396f-54a7-427e-90c0-f2723e58cf4f.html?seed=415955654&r=59851966#r_59851966][/url]
点赞  2009-9-23 09:23
这么拼命干吗,在HW是吧
点赞  2009-9-23 09:25
引用: 引用 10 楼 xooxoo 的回复:
o y~
鼠标终于能动了,迈出一大步,但还有如下问题,鼠标只能在系统启动以后使用,启动前插入检测不到,拔下鼠标再插入就不认识了~一定是中断还有问题~继续解决

这个你自己要做驱动检测了,wince都是这样的,u盘插入也是。要重新插拔一次系统才知道,这个和中断有关系吧!
点赞  2009-9-23 09:43
MARK 一下,以后来看
点赞  2009-9-23 11:14
up
点赞  2009-9-23 14:19
同意16楼观点,我们这边做USB同步也是这样,一定要重新插才成,插着直接开机后面就没提示连接,如果谁能解决,一并说一下,关注中。。
点赞  2009-9-23 15:18
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复