Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1373635
  • 博文数量: 478
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4833
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-28 11:12
文章分类

全部博文(478)

文章存档

2019年(1)

2018年(27)

2017年(21)

2016年(171)

2015年(258)

我的朋友

分类: Android平台

2015-11-23 11:37:04

[FAQ15079]L版本如何添加全局宏代码控制开关
2015-09-17
平台...
软件分支...
FAQs 6 of 87

内容

L版本及之后,MTK采用google 编译架构,不再采用kk版本之前架构,android,kernel,lk,preloader各模块相互独立,

projectconfig.mk 中定义的宏将仅作用到android 

Version >= android 5.0

 

[SOLUTION]

 

由于Projectconfig.mk只作用于Android,kernel lk ,和preloader 是不起作用的,需要宏控制对应代码时,请分别在对应地方定义。具体可参考以下:

 

preloader部分:

如需宏控制pl这部分代码时,需在alps/bootable/bootloader/preloader/custom/$project/$(project).mk中增加需要的宏。

lk部分:

如需宏控制lk这部分代码时,需在alps/bootable/bootloader/lk/project/$(Project).mk文件中添加控制宏。

kernel部分:

如需宏控制kernel这部分代码时,参考以下步骤新增kernel config.

1.请在您的driver code所在目录中的Kconfig文件增加您的宏定义

具体怎么写可以参考Kconfig中的其他宏定义

举个例子:

config MTK_FB

bool "MediaTek Framebuffer Driver"

depends on FB

default y

select FB_SOFT_CURSOR

---help---

This selects the MediaTek(R) frame buffer driver.

If you want to use MediaTek(R) frame buffer diver, say Y.

2.在您对应的kernel defconfig配置文件中(如:kernel-3.10/arch/arm/configs/$(project)_defconfig(useruserdebug版本时需在此文件中配置)$(project)_debug_defconfig(eng版本时需在此文件中配置))中设定您增加的宏的值, CONFIG_MTK_FB=y

3.在您的kernel代码中就可使用CONFIG_MTK_FB这个宏了

Android部分:

如需宏控制Android c,c++代码时,参考以下步骤

1.ProjectConfig.mk中定义您需要添加的宏CONFIG_XXX = yes

2.Android.mk中根据ProjectConfig.mk中添加的宏设定LOCAL_CFLAGS

ifeq ($(CONFIG_XXX),yes)

LOCAL_CFLAGS += -DCONFIG_XXX=yes

endif

3.接下来,您的code中就可以使用您定义的CONFIG_XXX宏了

务必注意,自L版本之后preloader/lk/kernel/android已经完全独立,代码不会有任何耦合,请参考以上方法设置控制宏。

 

阅读(2470) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~