MTK平台根据特定项目定义一个驱动中用到的宏方法

有如下需求

项目AIR与G30P用同一个LCD代码,但是两个项目的LCD代码稍有区别,现在是想在LCD中通过宏控制来达到AIR和G30P项目走不同代码

当然你可以给AIR和G30P项目将LCD代码分开,这不是此文讨论内容


MTK平台根据特定项目定义一个驱动中用到的宏方法

如想定义一个项目宏在Kernel/driver下这个宏都能在驱动代码中使用

按如下步骤

1:在kernel/drivers/Kconfig增加如下 

config CUSTOM_PROJECT_NAME

string "CUSTOM_PROJECT_NAME"

2:在kernel的配置文件中添加如下

kernel-3.18/arch/arm64/configs/xxxx_debug_defconfig

kernel-3.18/arch/arm64/configs/xxxx_defconfig

CONFIG_CUSTOM_PROJECT_NAME="air_m65_5u"

3:在kernel/drivers/Makefile中增加如下

CUSTOM_PROJECT_NAME := $(addprefix -D, $(shell echo $(CONFIG_CUSTOM_PROJECT_NAME) | tr a-z A-Z))

subdir-ccflags-y += $(CUSTOM_PROJECT_NAME)


CUSTOM_PROJECT_NAME := $(addprefix -D, $(shell echo $(CONFIG_CUSTOM_PROJECT_NAME) | tra-z A-Z))

subdir-ccflags-y += $(CUSTOM_PROJECT_NAME)

//此shell echo $(CONFIG_CUSTOM_PROJECT_NAME) | tr a-z A-Z 作用是将调用shell中德echo和tr及管道将CONFIG_CUSTOM_PROJECT_NAME的值全改成大写

// $(addprefix prefix,namelist)是将namelist中得每一个都加上前缀prefix

$(warning wangchaoqun $(CUSTOM_PROJECT_NAME))

//此句话供调试用,可以在编译的log中搜索wangchaoqun看是否有 wangchaoqun -DAIR_M65_5U,有说明宏定义成功


这样就在kernel/drivers/目录下的驱动代码可以使用AIR_M65_5U这个宏了

#ifdef  AIR_M65_5U

xxx

#else

xxx

#endif



同理对于lk的驱动只需要在

vendor/mediatek/proprietary/bootable/bootloader/lk/project/air_m65_5u.mk

加上

DEFINES += AIR_M65_5U
$(warning wangchaoqun $(DEFINES))

就可以在lk驱动中使用

#ifdef  AIR_M65_5U

xxx

#else

xxx

#endif



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值