在BSP的.bat文件下設置全局變量方法

用于多個產品共用一個BSP的時候,在BSP的.bat文件中設置全局變量,去掉不需要加載的驅動和不同點是很好的方法。

 

一,舉例:BSP中.bat的一段code:

set BSP_SMDK2443=1 

set BSP_SMDK2450=2

set BSP_TYPE=%BSP_SMDK2450%

 

這個就類似c中:

#define BSP_SMDK2443  1 
#define BSP_SMDK2450  2
#define BSP_TYPE  BSP_SMDK2450 

 

二,操作

1.我們先在.bat文件中聲明自己需要的定義上面類似的

set BSP_SMDK2443=1 

 

2.如果需要在BSP中C,C++等files里面能直接引用。必須要在BSP的根目錄下面sources.cmn文件中進行轉換一下,成為C可以調用的格式。以下兩行。每使用一個變量,都需要定義兩行。

ADEFINES=$(ADEFINES) -pd "BSP_SMDK2443 SETA $(BSP_SMDK2443)"
CDEFINES=$(CDEFINES) -DBSP_SMDK2443=$(BSP_SMDK2443)

 

ADEFINES=$(ADEFINES) -pd "BSP_SMDK2450 SETA $(BSP_SMDK2450)"
CDEFINES=$(CDEFINES) -DBSP_SMDK2450=$(BSP_SMDK2450)

 

ADEFINES=$(ADEFINES) -pd "BSP_TYPE SETA $(BSP_TYPE)"
CDEFINES=$(CDEFINES) -DBSP_TYPE=$(BSP_TYPE)

 

3.在c中引用。比如在OAL/Init.c中/OEMInit()中調用,就像#define一樣使用。

#if (BSP_TYPE==BSP_SMDK2443)

//--add

 

#elif (BSP_TYPE==BSP_SMDK2450)

//--add

 

#endif

 

4. build, make img即可。

原文地址:https://www.cnblogs.com/liang123/p/6325504.html