ufnmdd.lib 在哪里?

-小仙- 2009-12-24 10:31:05
平台: 2440 +wince5.0
Q:将Samsung 的5.0 BSP 的USB驱动移植到自己的平台上!在sources文件里面看到 链接

了$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib ,但我在C:\WINCE500

\PUBLIC\COMMON\OAK\DRIVERS 下面的USB 和USBFN 里面都没有找到生成ufnmdd.lib的

sources文件!
在C:\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\MDD下找到了

ufnmdd.cpp和ufnmdd.h文件! 但这里是生成UFNMDDBASE.lib的!这个库里面也有

UfnPdd_Init()的调用,


下面是5.0BSP里面的USB\FUNCTION 下sources的原文:
TARGETNAME=sc2440usbfn
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
DLLENTRY=DllEntry
PREPROCESSDEFFILE=1
DEFFILE=sc2440usbfn.def
CDEFINES=$(CDEFINES) -DDEBUG
TARGETLIBS= \
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib

SOURCELIBS= $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib \
# $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmddbase.lib


SOURCES = \
sc2440pdd.cpp


-下面是-UFNMDDBASE.lib的sources原文------------------------

TARGETNAME = UFNMDDBASE
TARGETTYPE = LIBRARY

SOURCES= \
ufnmdd.cpp \
enum.cpp \
ufnbus.cpp \
pipe.cpp \
transfer.cpp
---------------------------
请问各位ufnmdd.lib在哪里,怎么生成的! 我用CTRL+F全搜索,奇怪的是我的平台release下面却有?
...全文
390 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1002890625 2012-06-14
  • 打赏
  • 举报
回复
困扰多久的问题今天终于得一见,感谢各位大侠
eka90 2010-07-15
  • 打赏
  • 举报
回复
根据名字,ufnmdd.lib是USB Function Driver的mdd层支持库,根据Wince驱动常识,MDD层代码由微软提供,不是用户或者OEMer写的,那为什么还找不到呢?
因为,微软只把你选中的那些功能的库编译出来放在刚才楼上的同胞们提到的目录中,因此,如果找不到这个文件,那一定是你在VS2005下没选中相应的功能。那怎么选呢?
在VS2005下,打开工程的Catalog栏,点击...CORE OS...USB Function Driver下的USB Function Driver选项,然后再重新Build->Advanced Build Commands->sysgen,就OK了,见下图:



什么?还不行..*&&^@^&@*$%? 不好意思,我同学叫我吃饭去了...
ayin668 2010-05-24
  • 打赏
  • 举报
回复
我也正在为这个问题困扰,帮你顶。
guopeixin 2009-12-25
  • 打赏
  • 举报
回复
有这种事,我也看看code
-小仙- 2009-12-24
  • 打赏
  • 举报
回复
刚才说错了!
是在 工程目录下projectname\WINCE500\smdk2440_ARMV4I\cesysgen\oak\lib\ARMV4I\retail 下找到了ufnmdd.lib!!???
seemknow 2009-12-24
  • 打赏
  • 举报
回复
编译DEBUG的ufnmdd.lib会报个错,要把defbuslib也拿出来编DEBUG,所以写了
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\defbuslib.lib
seemknow 2009-12-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 trueman_onlyme 的回复:]
如果ufnmdd.lib = ceosutil.lib + defbuslib.lib + ufnmddbase.lib 成立!
那么

USB\FUNCTION 下sources的原文:
TARGETNAME=sc2440usbfn
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
DLLENTRY=DllEntry
PREPROCESSDEFFILE=1
DEFFILE=sc2440usbfn.def
CDEFINES=$(CDEFINES) -DDEBUG
TARGETLIBS= \
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib

SOURCELIBS= $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib\
# $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmddbase.lib
怎么做这样的链接?
[/Quote]

你没看明白那个文章
把\WINCE500\PUBLIC\COMMON\OAK\DRIVERS\USBFN\CONTROLLER\MDD拷贝到自己的BSP目录里,编译出ufnmddbase.lib。
如果要生成ufnmdd.lib,可以创建个目录,建个sources文件:

TARGETNAME=UFNMDD
TARGETTYPE=LIBRARY
RELEASETYPE=PLATFORM

SOURCELIBS= \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ufnmddbase.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceosutil.lib \
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\defbuslib.lib

SOURCES=



系统的ufnmdd.lib没这个可见的sources,不知道是在sysgen的什么时候做的。
我看网上有人讲CE6就没ufnmdd,直接链接那3个lib,其实是一样的
-小仙- 2009-12-24
  • 打赏
  • 举报
回复
我就是想把别的BSP下的usb function的驱动直接拿到我的bsp下用
但现在不知道执行的! 看到他的sources里面链接了ufnmdd.lib \和ufnmddbase.lib

就想知道ufnmdd.lib怎么生成的!


这个usb function是samsung官网的! 我想直接拿过来用,应该可以的但是不行! 郁闷!

这个是原来的注册表设置项:

IF BSP_NOUSBSER !

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USB]
"Dll"="sc2440_usb_ser.Dll"
"IoBase"=dword:B1200000
"Irq"=dword:B
"IoLen"=dword:130
"Tsp"="Unimodem.dll"
"DeviceArrayIndex"=dword:0
"Prefix"="COM"
"Order"=dword:2
"DeviceType"=dword:0
"FriendlyName"="SC2440 USB Cable:"
; Eliminate flow control bit
"DevConfig"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00

[HKEY_LOCAL_MACHINE\Comm\USB\Linkage]
"Bind"=multi_sz:"SC2440USB1"

[HKEY_LOCAL_MACHINE\Comm\SC2440USB]
"DisplayName"="SC2440 USB Driver"
"Group"="Serial"
"ImagePath"="sc2440_usb_ser.dll"

[HKEY_LOCAL_MACHINE\Comm\SC2440USB\Linkage]
"Route"=multi_sz:"SC2440USB1"

[HKEY_LOCAL_MACHINE\Comm\SC2440USB1\Parms]
ENDIF BSP_NOUSBSER !



这个是新的设置项:
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SC2440USBFN]
"Dll"="sc2440usbfn.dll"
"Prefix"="UFN"
"Priority256"=dword:64
"IoBase"=dword:B1200000
"IoLen"=dword:1000 ; Use one page
"Irq"=dword:19
"Order"=dword:2
"BusIoctl"=dword:2a0048
"IClass"=multi_sz:"{E2BDC372-598F-4619-BC50-54B3F7848D35}=%b","{6F40791D-300E-44E4-BC38-E0E63CA8375C}=%b"

不知道怎么配置了才可以让他执行! 新的driver可以实现 class 和mass storage功能,原来的只能是class 功能! 有做过的吗?
博说医械研发 2009-12-24
  • 打赏
  • 举报
回复
我也没找到,关注中!
-小仙- 2009-12-24
  • 打赏
  • 举报
回复
如果ufnmdd.lib = ceosutil.lib + defbuslib.lib + ufnmddbase.lib 成立!
那么

USB\FUNCTION 下sources的原文:
TARGETNAME=sc2440usbfn
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
DLLENTRY=DllEntry
PREPROCESSDEFFILE=1
DEFFILE=sc2440usbfn.def
CDEFINES=$(CDEFINES) -DDEBUG
TARGETLIBS= \
$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib

SOURCELIBS= $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmdd.lib \
# $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ufnmddbase.lib
怎么做这样的链接?
-小仙- 2009-12-24
  • 打赏
  • 举报
回复
生成ufnmdd.lib的配置文件到底在哪里?? 天哪!
他的blog我都做了链接了! 确实不错
seemknow 2009-12-24
  • 打赏
  • 举报
回复
感谢互联网分享精神,感谢google。
找到一个老外MVP的blog,有一篇讲到usbmdd移植http://geekswithblogs.net/BruceEitman/archive/2008/08/21/platform-builder--cloning-an-mdd-lib.aspx.
ufnmdd.lib = ceosutil.lib + defbuslib.lib + ufnmddbase.lib

看了他的几篇文章,受益匪浅。
seemknow 2009-12-24
  • 打赏
  • 举报
回复
同问

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧