WinCE BSP中Dirs文件问题
小弟我自己在我们平台的BSP中增加了一个模块功能,然后想通过.bat文件中定义一个环境变量作为开关来控制是否编译我这个模块相关的内容。这个模块是一个驱动模块,因此我的这个模块的文件夹放在Drivers文件夹下,然后在Drivers文件夹下的Dirs文件中利用我在.bat文件中定义的环境变量来作为开关控制编译过程。Dirs文件的具体内容如下:
DIRS= \
DRVLIB \
UTLDRV \
I2C \
NANDFLSH \
touch \
swspi \
cpm \
# @CESYSGEN IF CE_MODULES_DISPLAY
display \
# @CESYSGEN ENDIF CE_MODULES_DISPLAY
# @CESYSGEN IF CE_MODULES_WAVEAPI
wavedev \
# @CESYSGEN ENDIF CE_MODULES_WAVEAPI
backlight \
pwrbtn \
Temperature \
dsp \
sdcard \
usbotg \
serial \
# @CESYSGEN IF CE_MODULES_KEYBD || CE_MODULES_POINTER
kbdmouse \
# @CESYSGEN ENDIF CE_MODULES_KEYBD || CE_MODULES_POINTER
camera\
GlideBar \
rds \
TS \
spi\
TCM\
gps\
sdmlc \
PerfMon \
BINFSCheck \
PWM\
VPP \
LBANAND \
CMMB \
BATTDRVR\
# @CESYSGEN IF BSP_SUPPORT_LCD_PARAM_ADJUST
LcdParamAdjust\
# @CESYSGEN ENDIF BSP_SUPPORT_LCD_PARAM_ADJUST
就是最后那项“LcdParamAdjust”,里面的功能就是一个调节Lcd控制器相关寄存器的驱动,因为我们点屏的时候,不同的屏可能参数有些不同,因此,这个功能是在调屏的时候才开放出来使用,发行版本的BSP是不会带这个功能的。
其中,“BSP_SUPPORT_LCD_PARAM_ADJUST”就是我在.bat文件中定义的环境变量。
现在的问题就是,怎么编译,不管是全编BSP,甚至是执行“Clean Sysgen”都不会编译我的这个模块,也就是说,我加的这个“# @CESYSGEN IF BSP_SUPPORT_LCD_PARAM_ADJUST”判断根本就不为真,我在.bat文件中确实是有“set BSP_SUPPORT_LCD_PARAM_ADJUST=1”的啊?
到底是为什么啊?
为什么上面的“# @CESYSGEN IF CE_MODULES_DISPLAY”行而我的“# @CESYSGEN IF BSP_SUPPORT_LCD_PARAM_ADJUST”不行呢?
望各位前辈们说一下各种缘由,给小弟我解解惑,万分感谢!!!
WinCE BSP Dirs文件
[解决办法]
1. Dirs 的寫法是在 sysgen 時才有作用, 而 sysgen 的變數我也沒自己新增過, 但好像不是只在 .bat 中設定那麼簡單.
2. Dirs 與 Sources 只要寫一個, 建議 LZ 在 Dirs 中不要用@CESYSGEN IF CE_MODULES_DISPLAY, 強迫它一定進去該 subfolder 去BUILD, 再於 sources 中加入條件式的 SKIPBUILD=1.
Paul, Chao @ Techware