10629|36

86

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

(gooogleman向各位提问)关于wince5.0自带驱动的sources文件的疑惑 [复制链接]

各位老兄,昨天玩押宝游戏,把全部身家都压上去了,现在已经变成乞丐,没有分数发帖了。
现在只能用这个ID来求救,希望各位帮忙。谢谢了。
——————————————————————————————————————————
刚才看了C:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\SDHC\SDHC下的sources文件

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



!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

SYNCHRONIZE_DRAIN=1

TARGETDEFNAME=SDHC_SC2410
DEFFILE=$(TARGETDEFNAME).def

TARGETNAME=$(TARGETDEFNAME)_LIB
TARGETTYPE=LIBRARY
WINCETARGETFILE0=$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\$(DEFFILE)
PREPROCESSDEFFILE=1

SOURCELIBS=$(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\SC2410_SDHCBase.lib

INCLUDES=..\SDHCBase;..\..\inc

SOURCES = SDIOController.cpp \
           

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

        PLATFORM,生成的文件在PLATFORM\\

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

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

        MANAGED,生成的文件在%_PROJECTROOT%\OAK\\Managed

        OAK, SDK, DDK,生成的文件在%_PROJECTROOT%\Oak\  

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

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

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


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

就连PXA系列也是如此

!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=pxa27x_sdhc
TARGETTYPE=LIBRARY

INCLUDES=..\inc;..\xllp\inc
         
SOURCES = Main.c \
          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又是怎么回事呢?


——————请各位指点迷津,谢谢。

最新回复

非常好的讨论,顶一下:)  详情 回复 发表于 2010-6-12 13:08
点赞 关注

回复
举报

87

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
多找找各种RESOURCE文件看看
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 xqhrs232 的回复:
多找找各种RESOURCE文件看看


找了,我发现微软自己的驱动的确是这样,估计在他们在后面有个后期制作
——但是这个我找不到啊。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

4
 
自己顶...........
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

5
 
你看看在bsp根目录下面的sources.cmn文件中有RELEASETYPE=PLATFORM,这样的句子吗?
这些控制语句可以在驱动的sourc文件中定义,也可以在bsp的sources.cmn中定义。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

6
 
编译链接的时候系统首先去bsp目录下面的sources.cmn中去获取定义的环境变量,然后才去驱动目录下面的source文件去获取一些定义。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
RELEASETYPE
This macro definition sets two flags: RELEASEDIR and RELEASELIBDIR, which specify which output directory to place binaries and libraries in after they are built.

The default value builds the binaries and libraries for the target device and places them in the %_PROJECTROOT%\Oak directory.

 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 4 楼 Ricky_hu 的回复:
你看看在bsp根目录下面的sources.cmn文件中有RELEASETYPE=PLATFORM,这样的句子吗?
这些控制语句可以在驱动的sourc文件中定义,也可以在bsp的sources.cmn中定义。

这个不是在BSP下的啊
C:\WINCE500\PUBLIC\COMMON\OAK\CSP\ARM\SAMSUNG\S3C2410X\SDHC\SDHC下的sources文件
是微软自带的驱动。

BSP下的所有驱动都是RELEASETYPE=PLATFORM,这个是毫无疑问的
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 Seven_zhangxw 的回复:
RELEASETYPE
This macro definition sets two flags: RELEASEDIR and RELEASELIBDIR, which specify which output directory to place binaries and libraries in after they are built.

The default value builds the binaries and libraries for the target device and places them in the %_PROJECTROOT%\Oak directory.


哦,太感谢Seven_zhangxw 老兄了,俺没有看帮助文档呢
——好,现在解决了一个问题,但是微软生成lib之后是在哪里再设置转换成DLL的呢?
谢谢。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 8 楼 gooogleman 的回复:
引用 6 楼 Seven_zhangxw 的回复:
RELEASETYPE
This macro definition sets two flags: RELEASEDIR and RELEASELIBDIR, which specify which output directory to place binaries and libraries in after they are built.

The default value builds the binaries and libraries for the target device and places them in the %_PROJECTROOT%\Oak directory.


哦,太感谢Seven_zhangxw 老兄了,俺没有看帮助文档呢 …


_PROJECTROOT是:_PROJECTROOT=C:\WINCE500\PBWorkspaces\ARMSYS2440\WINCE500\smdk2440a_ARMV4I
里面的确有OAK文件夹,但是OAK下并没有出现什么lib等,几乎是什么都没有。看来并不在这里。
不过我去C:\WINCE500\PUBLIC\COMMON\OAK\LIB\ARMV4I\RETAIL找到了它生成的lib
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

11
 
DLL是在Makefile里定义生成的
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 hzdysymbol 的回复:
DLL是在Makefile里定义生成的

really?为什么BSP下却是直接定义生成DLL呢?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

13
 
千真万确
BSP下面生成出DLL跟Public下面通过Makefile生成DLL有什以关联吗?
你BSP下面也可以通过写Makefile来生成DLL啊
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 12 楼 hzdysymbol 的回复:
千真万确
BSP下面生成出DLL跟Public下面通过Makefile生成DLL有什以关联吗?
你BSP下面也可以通过写Makefile来生成DLL啊


这个BSP下的驱动也是调用Makefile来生成DLL的
——————————————————————————————————
!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

#
# DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want to add a new source
# file to this component.  This file merely indirects to the real make file
# that is shared by all the components
#
!INCLUDE $(_MAKEENVROOT)\makefile.def
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

15
 
总之,这个关键点是不知道哪里有个BAT文件控制wince自带驱动生成了DLL。
——————————————————————————————————
继续等待..........
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

16
 
你研究过Makefile了吗?
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

17
 
再说我指的Makefile也不是Makefile.def
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

18
 
楼主可以看看wince500目录下的build.log文件,
里面记录了从lib到dll的过程。

我的理解是,在编译系统时对于Public目录下的源代码是不进行编译的,
直接利用已经编译好的lib和sources文件生成DLL。

在BSP中,你也可以先生成lib,再生成dll。
只是一般没有必要这么做。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

19
 
不编译public下面的代码?你指的是只编译BSP的时候吗,那当然不编译
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 18 楼 hzdysymbol 的回复:
不编译public下面的代码?你指的是只编译BSP的时候吗,那当然不编译


我说的不是编译BSP的时候,
而是Sysgen,编译整个系统时,它并不会编译public目录下的源代码。

如果你修改了public目录下的代码,需要先手动编译对应的目录,再Sysgen。
PB5.0中有一个编译选项是编译所有源代码的,Build and Sysgen,但最好不用。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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