天嵌 ARM开发社区

 找回密码
 注册
查看: 2974|回复: 2

TQ2440 USB Function 分层驱动 mdd pdd

[复制链接]
raycmort 发表于 2010-11-2 16:42:37 | 显示全部楼层 |阅读模式
楼主你好。
我现在想用TQ2440作为USB设备和PC机连接,然后在TQ2440板上运行一个应用程序,这个程序可以通过USB发送数据,在PC机上的打开的txt文本中输出。
然后我看到天嵌的wince6.0 的BSP包中的D:\WINCE600\PLATFORM\TQ2440\Src\Drivers\Usb\Function中有个sc2440pdd.exe的文件,这个应该是TQ2440 USB Function的pdd层的驱动吧。
而对应的mdd层的驱动应该是在D:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\MDD里面的ufnmdd.cpp吧
我看到ufnmdd.cpp里面有UFN_xxx的流驱动接口。那么应用程序应该就是调用这些接口,然后mdd再调用pdd的吧
问题是,我在编写的应用程序中写入ret = DeviceIoControl(hUsb, 0x05, NULL, 0, &i, 8, NULL,NULL);之类的语句,然后在mdd层的UFN_IOControl函数中添加打印语句RETAILMSG(1, (TEXT("Ufn_IOControl \r\n")));,但SecureCRT没有输出。是不是TQ2440的USB mdd驱动不在这个位置?或者说我没有build到?build我是通过VS2005的 生成->Open Released Directory in Build Window 然后转到D:\WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\MDD目录下build的。
还是说注册表要改?注册表我没有改动,在应用程序中的创建语句为hUsb = CreateFile (TEXT("UFN1:"), GENERIC_WRITE|GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
请教楼主红色的问题,谢谢。
 楼主| raycmort 发表于 2010-11-4 16:44:55 | 显示全部楼层
还是我自己来回答吧。
使用createfile等函数调用到mdd里面的UFN_xxx之类的流驱动接口函数。mdd再将参数传递给pdd。
至于build mdd没效果是因为要用到菜单 生成->advanced build commands 里面的命令,不过要花费几个小时重新编译。
chenkejin 发表于 2011-3-6 04:21:35 | 显示全部楼层
你好 我现在 也遇到这个问题了 不知道BSP中的PDD和系统PUBIC中的PDD是怎么区分的 MDD又是怎样调用自定义的PDD的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-17 04:47 , Processed in 1.062500 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表