3894|10

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教如何去掉BSP中不需要的驱动? [复制链接]

BSP 中有些驱动用不上的,可不知道该怎么去掉,在百度找了一篇删除不用驱动的方法,可讲得太深奥了,看不懂啊,希望高手能给我解释解释,详细一点点,感激不尽。

原文:
WinCE中如何删除一个驱动(原创小经验) 在使用wince的过程中往往需要去掉不需要的驱动,精简系统。而很多菜鸟拿着bsp却不知道如何下手。 经过试验 本鸟 step by step 的总结了在wince中如何删除不需要的驱动,以下以camera 驱动为例给出详细过程供菜鸟学习。 第一步 如下所示,删除掉文件 \src\drivers\dirs 中的 “ camera \ ”项 文件: \src\drivers\dirs 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 DIRS=ceddk \ keybd \ pwrbutton \ pccard \ serial \ usb \ nleddrvr \ Battdrvr \ Backlight \ Display \ camera \ 删除该行 IIC \ 第二步 如下所示,注释掉文件 Files\platform.bib 中的camera相关内容 文件: Files\platform.bib ;-------- Camera Driver ----------------------------------------------------------------------- ;IF BSP_NOCAMERA ! ; camera.dll $(_FLATRELEASEDIR)\camera.dll NK SH ;ENDIF BSP_NOCAMERA ! ;---------------------------------------------------------- 第三步 如下所示,注释掉文件Files\platform.reg 中的camera相关内容 文件:Files\platform.reg ;------------- Camera Driver ------------------------------------------------------------------------------------ ;IF BSP_NOCAMERA ! ;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Camera] ; "Prefix"="CIS" ; "Dll"="camera.dll" ; "Index"=dword:1 ; "Order"=dword:1 ; "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}" ;ENDIF BSP_NOCAMERA!

红色部分都看不懂啊?高手帮帮忙说得详细点。

最新回复

LS说的都很有道理,其实主要就是三方面 1.smdkxxx.bat,里面设置了环境的变量,可以用@REM注释掉 2.在FILES里面的注册表中,用;注释掉响应的驱动,或者用IF   ENDIF注释也可以 3.在FILES里面的platform.bib中,将把相应的驱动模块注释掉就OK了 好了,祝LZ好运!LZ别忘了给分,哈哈~~~~  详情 回复 发表于 2010-5-19 21:28
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
最简单的方法:
比如在你的BSP\FILES\platform.bib中有这么一句:
dm9000.dll                $(_FLATRELEASEDIR)\dm9000.dll                        NK        SH
那你在它前面加个分号就行了
;dm9000.dll                $(_FLATRELEASEDIR)\dm9000.dll                        NK        SH
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 nonya 的回复:
最简单的方法:
比如在你的BSP\FILES\platform.bib中有这么一句:
dm9000.dll $(_FLATRELEASEDIR)\dm9000.dll NK SH
那你在它前面加个分号就行了
;dm9000.dll $(_FLATRELEASEDIR)\dm9000.dll NK SH


呵呵,去掉注册表不加载就可以了,最好设置一个 IF语句控制即可
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

4
 
你可以在platform.bib中使用分号屏蔽驱动,这种方法最有效,也可以修改src\drivers目录修改
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 

删BIB中内容,删reg中内容
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
只要将release目录下的platfrom.bib中你想去掉的动态库直接删除。然后make image就可以了。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

7
 
多谢各位了,方法还真多啊,我得一一试试看先。
最怕的就是出错了,一出错都不知道怎么改,没经验啊。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

8
 
在注册表和bib中加环境变量后设置
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

9
 
这里可能操作的有下列文件,
1.DRIVERS下面有一个DIR文件,DIR文件里面包含了要编译的驱动文件夹名称,哪些驱动不需要的,让它的文件夹名不出现在这个DIR文件里面。
2.在FILES文件夹下面,有PLATFORM.BIB 跟PLATFORM.REG这两个文件,可以将不要的驱动部分的信息注释掉。
例如:不要CAMERA。

; camera.dll $(_FLATRELEASEDIR)\camera.dll NK SH

;[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Camera] ; "Prefix"="CIS" ; "Dll"="camera.dll" ; "Index"=dword:1 ; "Order"=dword:1 ; "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}" ;
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

10
 
其实你可以看一下BSP根目录中的.bat文件,这个文件里设置的环境变量就是设置是否加载某个驱动的,再分别对照一下platform.reg和platform.bib中对这个变量的使用,以及相应驱动中sources文件中对这个变量的使用就会明白了,比如:
.BAT文件中:set BSP_NOPOST=1
sources文件:
!if "$(BSP_NOPOST)" == "1"
SKIPBUILD=1
!endif
当BSP_NOPOST为1时就不编译这个驱动。
platform.reg文件:
IF BSP_NOPOST !
;====================================================
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Post]
   "Prefix"="PST"
   "Dll"="post.dll"
   "Index"=dword:1
   "Order"=dword:1
   "IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"
;=====================================================
ENDIF BSP_NOPOST !
BSP_NOPOST为1时不加载相应驱动。

platform.bib文件:
IF BSP_NOPOST !
    post.dll                $(_FLATRELEASEDIR)\post.dll                NK SH
ENDIF BSP_NOPOST !
BSP_NOPOST为1 时不将post.dll添加到NK。

所以一般情况下只要在根目录的.bat文件做些修改就可以了,操作简单。如果这几个文件中都没有相关的变量再考虑修改DIR、platform.reg和platform.bib
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

11
 
LS说的都很有道理,其实主要就是三方面
1.smdkxxx.bat,里面设置了环境的变量,可以用@REM注释掉
2.在FILES里面的注册表中,用;注释掉响应的驱动,或者用IF   ENDIF注释也可以
3.在FILES里面的platform.bib中,将把相应的驱动模块注释掉就OK了
好了,祝LZ好运!LZ别忘了给分,哈哈~~~~
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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