ufnmdd.lib 在哪里?

dx2004025   2009-12-24 10:31 楼主
平台: 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下面却有?

回复评论 (11)

刚才说错了!
是在 工程目录下projectname\WINCE500\smdk2440_ARMV4I\cesysgen\oak\lib\ARMV4I\retail 下找到了ufnmdd.lib!!???
点赞  2009-12-24 10:41
同问
点赞  2009-12-24 14:59
感谢互联网分享精神,感谢google。
找到一个老外MVP的blog,有一篇讲到usbmdd移植[url=http://geekswithblogs.net/BruceEitman/archive/2008/08/21/platform-builder--cloning-an-mdd-lib.aspx][/url].
ufnmdd.lib = ceosutil.lib + defbuslib.lib + ufnmddbase.lib

看了他的几篇文章,受益匪浅。
点赞  2009-12-24 16:36
生成ufnmdd.lib的配置文件到底在哪里?? 天哪!
  他的blog我都做了链接了! 确实不错
点赞  2009-12-24 16:42
如果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 16:50
我也没找到,关注中!
点赞  2009-12-24 17:08
我就是想把别的BSP下的usb function的驱动直接拿到我的bsp下用
但现在不知道执行的! 看到他的sources里面链接了ufnmdd.lib \和ufnmddbase.lib

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


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

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

  1. IF BSP_NOUSBSER !

  2. [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\USB]
  3.         "Dll"="sc2440_usb_ser.Dll"
  4.         "IoBase"=dword:B1200000
  5.         "Irq"=dword:B
  6.         "IoLen"=dword:130
  7.         "Tsp"="Unimodem.dll"
  8.         "DeviceArrayIndex"=dword:0
  9.         "Prefix"="COM"
  10.         "Order"=dword:2
  11.         "DeviceType"=dword:0
  12.         "FriendlyName"="SC2440 USB Cable:"
  13. ; Eliminate flow control bit
  14.         "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

  15. [HKEY_LOCAL_MACHINE\Comm\USB\Linkage]
  16.         "Bind"=multi_sz:"SC2440USB1"
  17.    
  18. [HKEY_LOCAL_MACHINE\Comm\SC2440USB]
  19.         "DisplayName"="SC2440 USB Driver"
  20.         "Group"="Serial"
  21.         "ImagePath"="sc2440_usb_ser.dll"

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

  24. [HKEY_LOCAL_MACHINE\Comm\SC2440USB1\Parms]
  25. 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 17:20
引用: 引用 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
怎么做这样的链接?


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

  1. TARGETNAME=UFNMDD
  2. TARGETTYPE=LIBRARY
  3. RELEASETYPE=PLATFORM

  4. SOURCELIBS= \
  5.     $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\ufnmddbase.lib \
  6.     $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceosutil.lib \
  7.     $(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\defbuslib.lib

  8. SOURCES=



系统的ufnmdd.lib没这个可见的sources,不知道是在sysgen的什么时候做的。
我看网上有人讲CE6就没ufnmdd,直接链接那3个lib,其实是一样的
点赞  2009-12-24 18:50
编译DEBUG的ufnmdd.lib会报个错,要把defbuslib也拿出来编DEBUG,所以写了
$(_TARGETPLATROOT)\lib\$(_CPUINDPATH)\defbuslib.lib
点赞  2009-12-24 18:53
有这种事,我也看看code
点赞  2009-12-25 17:29
我也正在为这个问题困扰,帮你顶。
点赞  2010-5-24 21:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复