如何把PB下的驱动移植到BSP?(以2410SD卡驱动为例子)

作者:wogoyixikexie@gliet

    此前,就听朋友说过关于把PB下的驱动移植到BSP的事情,甚至文件系统也移植到BSP下。——哈哈,很高级吧。现在我就以2410的SD卡为例子进行学习一下。

   先前我都不知道SD卡驱动会在PB的安装文件下的这么回事,先看看下面三个帖子——2410大容量SD卡的研究。

http://topic.csdn.net/u/20080911/16/111a849c-fd1f-4955-840d-6ddfba8ee1fa.html

http://topic.csdn.net/u/20080916/16/00d9a2be-e4f8-4bea-b892-f25e20ac4c83.html

http://topic.csdn.net/u/20081021/10/52df6b8b-c69b-4e7b-a278-0816e133f881.html

http://topic.csdn.net/u/20081104/13/5024b712-07f4-4b33-a015-f2d5baafa027.html

————待续..................

++++++++++++++++++++网速快了,继续............................................................

刚才看了C:/WINCE500/PUBLIC/COMMON/OAK/CSP/ARM/SAMSUNG/S3C2410X/SDHC/SDHC下的sources文件

发现了奇怪的问题,就是它里面没有出现RELEASETYPE

 

  1. !if 0
  2. Copyright (c) Microsoft Corporation.  All rights reserved.
  3. !endif
  4. !if 0
  5. Use of this source code is subject to the terms of the Microsoft end-user
  6. license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
  7. If you did not accept the terms of the EULA, you are not authorized to use
  8. this source code. For a copy of the EULA, please see the LICENSE.RTF on your
  9. install media.
  10. !endif
  11. SYNCHRONIZE_DRAIN=1
  12. TARGETDEFNAME=SDHC_SC2410
  13. DEFFILE=$(TARGETDEFNAME).def
  14. TARGETNAME=$(TARGETDEFNAME)_LIB
  15. TARGETTYPE=LIBRARY
  16. WINCETARGETFILE0=$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/$(DEFFILE)
  17. PREPROCESSDEFFILE=1
  18. SOURCELIBS=$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/SC2410_SDHCBase.lib
  19. INCLUDES=../SDHCBase;../../inc
  20. SOURCES = SDIOController.cpp /
  21.           

RELEASETYPE的作用:

RELEASETYPE:该宏设置两个环境变量RELEASEDIRRELEASELIBDIR,就是设置编译后生成文件存放的路径。具体值如下:

        PLATFORM,生成的文件在PLATFORM/<BSP NAME>/<Target>

        LOCAL,生成的文件在当前路径下

        CUSTOM,生成的文件在TARGETPATH指定的位置

        MANAGED,生成的文件在%_PROJECTROOT%/OAK/<Target>/Managed

        OAK, SDK, DDK,生成的文件在%_PROJECTROOT%/Oak/<Target>  

——————现在没有,那么他生成的lib放哪里去了呢?

非常神奇的事情是我居然在C:/WINCE500/PUBLIC/COMMON/OAK/LIB/ARMV4I/RETAIL找到了它生成的lib

——到底是在哪里指定了会把生成的lib放在上面的路径的?

还有微软的代码比较奇怪,就是他们都是在sources中指定生成lib,但是最后又不知不觉的的生成DLL了,这个又是怎么实现呢?

就连PXA系列也是如此

  1. !if 0
  2. Copyright (c) Microsoft Corporation.  All rights reserved.
  3. !endif
  4. !if 0
  5. Use of this source code is subject to the terms of the Microsoft end-user
  6. license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
  7. If you did not accept the terms of the EULA, you are not authorized to use
  8. this source code. For a copy of the EULA, please see the LICENSE.RTF on your
  9. install media.
  10. !endif
  11. TARGETNAME=pxa27x_sdhc
  12. TARGETTYPE=LIBRARY
  13. INCLUDES=../inc;../xllp/inc
  14.         
  15. SOURCES = Main.c /
  16.           SDControl.c

 

上面这个也没有RELEASETYPE出现?!!!!!!!!!!!!!!!!!!!!

————————————————————————————————————————————

但是奇怪的是在有些驱动指定了

C:/WINCE500/PUBLIC/COMMON/OAK/CSP/ARM/SAMSUNG/S3C2410X/SERIAL/sources(13):RELEASETYPE=OAK

————————————————————————

!if 0
Copyright (c) Microsoft Corporation.  All rights reserved.
!endif
!if 0
Use of this source code is subject to the terms of the Microsoft end-user
license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
If you did not accept the terms of the EULA, you are not authorized to use
this source code. For a copy of the EULA, please see the LICENSE.RTF on your
install media.
!endif

TARGETNAME=s3c2410x_serial
RELEASETYPE=OAK
TARGETTYPE=LIBRARY

INCLUDES=../inc

CDEFINES=$(CDEFINES) -DUSE_NEW_SERIAL_MODEL

SOURCES=pdds3c2410_ser.cpp
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

怎么会这样呢?微软到底是在什么阶段把这个lib变成DLL呢?

还有上面的没有RELEASETYPE又是怎么回事呢?我一定要搞个究竟!!!!!!!!!!!!!

——搞定了。

总结:直接把整个驱动文件夹复制到BSP下,修改sources等文件,RELEASETYPE设置成platform表示是BSP的驱动,会复制生成的DLL到指定的区域,对了把生成的lib改成生成DLL,并且把生成的DLL文件名字改掉,防止和微软下的冲突(有人说会覆盖微软的,这个不没有证实,也许应该做个实验。)然后再根据前面修改reg、bib文件就OK了。

转载请标明:作者wogoyixikexie@gliet.桂林电子科技大学一系科协,原文地址:http://blog.csdn.net/gooogleman——如有错误,希望能够留言指出;如果你有更加好的方法,也请在博客后面留言,我会感激你的批评和分享。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值