lobster 陷阱

都知道 lobster 指令是用于编译整个文件夹,但是在这里大家往往会陷入一个误区 —— 直接编译所修改的某个 .cpp 或者 .c 文件所在的驱动文件夹,其实不然,下面以具体实例来说明:

修改驱动程序 Saa7111a.cpp 是 DISPLAY 的一部分,如果只编译 DISPLAY 是不行的,实际上编译 DISPLAY 可能无关紧要,真正需要编译的是 MBX 驱动---------------------------------------如何得到MBX?具体步骤如下:

1)例如你修改了 videoPort.cpp,那么可以看到 videoPort.cpp 所在的Source 文件中有 TARGETNAME=VIDEOPORT;

2)需要在Source Insight 中,查找VIDEOPORT(或者可以直接查找 videoport.lib)被包含到哪个 source 中;

3)可以看到有两个驱动的 Source 包含 videoport.lib,其中路径为

Sources(c:\wince600\platform\tt4x0bd\src\drivers\mbx\buildexe) 的Source 文件中的TARGETNAME 有 TARGETNAME=ddi_powervr,该 Source 是在MAX 驱动下;另一个路径为

Sources(c:\wince600\platform\tt4x0bd\src\drivers\display\buildexe)

该文件中有 TARGETNAME=ATLAS_LCDX;

4)此时,在Platform.bib 中有(也可通过搜索来找到):

IFBSP_DISPLAY_ATLAS_ONCHIP_DIRECTX

ddi.dll $(_FLATRELEASEDIR)\atlas_lcdx.dll NK SHK

ENDIF

IFBSP_SUPPORT_MBX

ddi.dll $(_FLATRELEASEDIR)\ddi_powervr.dll NK SHK

#include"$(_TARGETPLATROOT)\FILES\powervr.bib"

ENDIF

5)到此就得确认 BSP_SUPPORT_MBX 和 BSP_DISPLAY_ATLAS_ONCHIP_DIRECTX哪个开启;

6)易得:

SETBSP_SUPPORT_MBX=1

IF"%BSP_SUPPORT_MBX%"=="" (

SET BSP_DISPLAY_ATLAS_ONCHIP_DIRECTX =1

)

IF"%BSP_SUPPORT_MBX%"=="1" (

SET BSP_DISPLAY_ATLAS_ONCHIP_DIRECTX=

SET BSP_APPLY_MSQFE_09M02=1

)

从中就可发现,BSP_SUPPORT_MBX =1,而 BSP_DISPLAY_ATLAS_ONCHIP_DIRECTX反而未定义;

7)到这里,你就可以发现你所编译的驱动程序真正用到的反而是 MBX,而它的直属驱动 DISPLAY 反而没用到;

得出结论:修改了某一个驱动程序,需要编译的不一定是他的直属驱动!!!!

直观的看,就是用 lobster 编译,编译之后,可以看到最终修改了哪些 dll 文件,可以发现,如果只是单纯的编译 display 是没有 dll 驱动文件修改的!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值