13464|80

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

USB Device驱动的问题! [复制链接]

大家好!

最近我在搞USB Device驱动,我对所有USB都必须实现的3个函数:USBInstallDriver,USBUnInstallDriver,USBDeviceAttachy有疑惑,不知他们是需要在哪里实现的!!
按照我的理解就是在选择了USB的3中应用的其中一个后:
catalog->Device Drivers->USB FUNCTION->USB FUNCTION CLIENTS->MASS STORAGE 就不需要再实现上面3个函数了???
看了我的BSP包里有个USBF文件夹下放了该驱动,其中的sources内容如下:

RELEASETYPE=PLATFORM
TARGETNAME=at91sam9261ek_usbfn
TARGETTYPE=DYNLINK


TARGETLIBS= \
  $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \

SOURCELIBS= \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib \
  $(_PLATCOMMONLIB)\$(_CPUDEPPATH)\at91sam926x_usbfn.lib \

SOURCES= \
  AT91SAM9261EK_usbfn.cpp \

DLLENTRY=DllEntry
DEFFILE=AT91SAM9261EK_usbfn.def
FILE_VIEW_RESOURCE_FOLDER= \
  AT91SAM9261EK_usbfn.reg \


根据我的观察,上面最终生成的DLL里并没有那3个函数的实现!

恳请高人指教一下,谢谢!!!

最新回复

我的爱国者L8250联机时PC提示找不到miniking device怎么办  详情 回复 发表于 2010-3-10 18:52
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
ARM9的USB设备驱动开发相关问题 请教USB DEVICE 驱动的一个问题 移植USB Mass storage Device驱动 百分求救:wdm USB驱动,两个device总是会互相影响 奇怪的问题(arm下驱动usb摄像头) 期待高手帮忙 usb 摄像头驱动问题
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
谢谢xilidecai指教!!

你所说的是在common.reg里和USB Device(与特定平台相关的USBFN)驱动下的注册表设置.
在common.reg里的我没有改,在平台下的reg我还得试试.

 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

4
 
在插上U盘之前我已经在该FLASH上建立了一个FAT32分区,并成功挂载,是否因为这样所以再想通过USB挂载它为U盘就会冲突??
请大家多多指教!!
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
将CE设备当做U盘使用,需要添加添加组件USB Function Bus Drivers下的选项,还要添加USB Function Clients下的选项Mass Storage!其他的好象也没什么特别的东西要做。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 13 楼 kkkcxf1981 的回复:
在插上U盘之前我已经在该FLASH上建立了一个FAT32分区,并成功挂载,是否因为这样所以再想通过USB挂载它为U盘就会冲突??
请大家多多指教!!


这个不会导致冲突
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 
mark
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

8
 
昨天我就遇到了这种问题 谢谢
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

9
 
回xingjling:
要添加USB Function Clients下的选项Mass Storage,这个我已经加了!
同时还添加了
core  os  service下面那个usb  host  support->usb  storeage  class  driver
至于你说的要添加USB Function Bus Drivers下的选项,我觉得不用了,它好象是针对特殊芯片才有效的
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

10
 
回unsway123:
昨天我将NOR FLASH 驱动的注册表里和文件系统有关的部分都注释掉了,只让它单单导出个流驱动接口,
在加载该驱动的时候比以前多了这样一句:[NOTIFY] HandleSystemEvent 7 /ADD DSK1:
同时也可以打开DSK1:了 如下:

3720637 PID:63aba496 TID:a3a91b3e 0x83a43640: UsbMsFn!STORE_Init: IOCTL_DISK_GETINFO passed
3720667 PID:63aba496 TID:a3a91b3e 0x83a43640: UsbMsFn!STORE_Init: bytes per sector = 512
3720692 PID:63aba496 TID:a3a91b3e 0x83a43640: UsbMsFn!STORE_Init: cylinders = 418
3720717 PID:63aba496 TID:a3a91b3e 0x83a43640: UsbMsFn!STORE_Init: flags = 0x8
3720742 PID:63aba496 TID:a3a91b3e 0x83a43640: UsbMsFn!STORE_Init: heads = 1
3720767 PID:63aba496 TID:a3a91b3e 0x83a43640: UsbMsFn!STORE_Init: sectors = 252
3720797 PID:63aba496 TID:a3a91b3e 0x83a43640: UsbMsFn!STORE_Init: total sectors = 105336
3720817 PID:63ae6b52 TID:a3a91b3e 0x83a43640: FSD_UnmountDisk(0xb98f0): unmounting...
3720842 PID:63ae6b52 TID:a3a91b3e 0x83a43640: FATFS!UnmountDisk: unmounting all volumes on disk 000B98F0

虽然打开了但PC上还是显示无法识别的设备,设备状态栏说是没有为该设备安装驱动,不知大家在这样做的时候,是否还需要在PC端做个windowsxp/2000 下的识别CE DEVICE 的驱动???
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

11
 
自己顶.

希望大家多多指教
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

12
 
你不会从0开始搞BSP吧?看你貌似没有BSP就搞起了,
这个没有做过真是帮不了了。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

13
 
LZ 多看看USBF下的文件
不会就只有sources吧
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

14
 
呵呵,我这有bsp的,上面生成dll的source都仔细看了,我的目的很简单,就是通过usb线将wince设备和PC相连,然后在PC上被识别为U盘,应该不用再添加USB HOST SUPPORT 功能了,gooogleman兄指点一下啊
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

15
 
再问一下:
不知大家是怎么做的,在PC端被识别为U盘,还需要借助ActiveSync 软件吗?还是自动被PC端的操作系统识别出来??
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

16
 
引用 5 楼 kkkcxf1981 的回复:
再问一下:
不知大家是怎么做的,在PC端被识别为U盘,还需要借助ActiveSync 软件吗?还是自动被PC端的操作系统识别出来??


这个没有做过,既然是u盘,应该不用这个软件了。
我看论坛前些日子有人给了答案了,你搜索一下吧。

貌似注册表以及驱动都要改一些的。
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

17
 
谢谢gooogleman老兄,呵呵
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

18
 
我的ce设备上有个NOR FLASH被作成了 FAT32,设备名就是 DSK1,注册表如下:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\FlashDrv]
    "Dll"="FLASHDRV.dll"
    "Prefix"="DSK"
    "Index" =dword:1
    "MemBase"=dword:40000000      
    "MemLen"=dword:04000000              
    "Order"=dword:0   
    "Profile"="FlashDrv"
    "IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}"
    ;"MountFlags"=dword:11
    "MountFlags"=dword:10
    "BootPhase"=dword:0

我打算把它作为U盘使用,可是当我插上USB时候,出现了以下问题,好象是无法打开这个设备的错误,这是为何??

705789 PID:839df756 TID:e3927fc6 0x838e1400: UsbMsFn!STORE_Init: DeviceName = DSK1:
705814 PID:839df756 TID:e3927fc6 0x838e1400: UsbMsFn!STORE_Init: Removable = 1
705839 PID:839df756 TID:e3927fc6 0x838e1400: UsbMsFn!STORE_Init: failed to open store DSK1:; error = 4319
705864 PID:839df756 TID:e3927fc6 0x838e1400: ERROR: c:\macallan\public\common\oak\drivers\usbfn\class\storage\transport\bot\bot.cpp line 907:

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 
楼主说的这个USB device是USB slave方面的驱动吗?根据我看你的source文件,因为有ufnmdd.lib所以我认为他是一个USB slave方面的驱动。根据你说的这个是要让PC机把你的板子当成一个U盘,那这就是一个slave的驱动了。。。
对于USB slave的驱动是不需要这3个函数的,这三个函数是USB host用到的三个函数,是为了让内核能加载你的驱动而实现的三个函数,这三个函数咋USBd里面。
对于USB slave的驱动,是主要通过UFNmdd.lib里面的流式接口来加载整个驱动的,这个lib他会去加载你写的那个slave 的dll.这些dll你可以通过public下的usbfn下的class中找到相应的来生成DLL,具体的你可以看那里面关于massstorage的代码
 
 
 

回复

1

帖子

0

TA的资源

禁止访问

20
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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