关于MTK6573平台开发分支下配置多个项目的规范说明
### 关于MTK6573平台开发分支下配置多个项目的规范说明 #### 一、项目目录结构 在MTK6573平台开发分支下配置多个项目时,需要遵循一定的目录结构规范来确保项目的正常编译与运行。具体涉及以下几个关键路径: 1. **`build/target/product/$(project_name).mk`**:该文件用于定义特定项目的编译规则,如编译目标、依赖项等。 2. **`mediatek/config/$(project_name)`**:此路径包含针对特定项目的配置文件,例如硬件配置或特殊功能启用。 3. **`mediatek/custom/$(project_name)`**:这个路径主要用于存放与项目定制相关的配置文件,例如系统定制、设备定制等。 4. **`mediatek/custom/$(project_name)/uboot/inc/configs/$(project_name).h`**:这里是存放特定项目启动配置的地方,例如UBOOT相关的配置文件。 5. **`vendor/mediatek/$(project_name)`**:此路径用于存储供应商提供的特定于项目的文件,如驱动程序或库。 6. **`vendor/mediatek/$(project_name)/artifacts/out/target/product/$(project_name)`**:这是编译后的输出路径,存放编译完成的目标文件。 7. **`MI/$(project_name)`**:这里用于存放与特定项目相关的MI定制代码。 #### 二、链接与复制(Link & Copy) 为了保证不同项目之间文件的一致性和可维护性,需要对链接和复制的策略进行明确规定: - **Link**: 对于共享文件,建议使用链接(link)的方式,以避免文件重复和降低维护成本。可以通过`MI/tools/linky`工具来创建文件链接。 - **Copy**: 在某些情况下,如需对文件进行修改,则需采用复制(copy)的方式。需要注意的是,当选择复制模式时,应明确指出复制的目的和必要性。 #### 三、必要的项目定制 在MTK6573平台上开发时,可能需要对项目进行一些定制化操作,具体包括但不限于以下几点: 1. **Makefile 和 C/C++ 文件定制**: - 在进行项目定制时,除了常规的Makefile文件外,还需要注意对C/C++源文件的修改。这些文件通常位于`makefilecpph`目录下。 - 特别需要注意的是`mediatek/config/$(project_name)/ProjectConfig.mk`文件中的配置选项,例如: - `AUTO_ADD_GLOBAL_DEFINE_BY_NAME` - `AUTO_ADD_GLOBAL_DEFINE_BY_VALUE` - `AUTO_ADD_GLOBAL_DEFINE_BY_NAME_VALUE` 当项目需要支持MI特性时,可以通过设置`MTK_PRO_PROJECT_MI=yes`来启用相关功能。此时,还需要对`MI/$(project_name)/frameworks/featureoption/java/com/MI/MIfeatureoption/MIFeatureOption.java`文件进行适当的修改,以便支持特定的Java特性。 2. **APN和AGPS配置文件定制**: - 针对APN(Access Point Name)和AGPS(Assisted Global Positioning System)配置文件,需要在`vendor/mediatek/etc`目录下进行相应的修改。 - 具体来说,可以在`build/target/product/$(project_name).mk`文件中添加或修改以下行: ``` PRODUCT_COPY_FILES+=vendor/mediatek/etc/$(MTK_PROJECT)/apns-conf.xml:system/etc/apns-conf.xml PRODUCT_COPY_FILES+=vendor/mediatek/etc/$(MTK_PROJECT)/spn-conf.xml:system/etc/spn-conf.xml ifeq($(MTK_AGPS_APP),yes) PRODUCT_COPY_FILES+=vendor/mediatek/etc/$(MTK_PROJECT)/agps_profiles_conf.xml:system/etc/agps_profiles_conf.xml endif ``` 3. **蓝牙名称定制**: - 在`frameworks/base/core/jni/android_bluetooth_common.h`文件中,可以定制蓝牙的默认本地名称。例如: ``` #define BTMTK_ANDROID_DEFAULT_LOCAL_NAME "ANDROIDBT" ``` 4. **USB配置定制**: - 对于USB配置的定制,需要在`mediatek/custom/mt6573/kernel/usb/src/mtk_usb_custom.h`文件中进行修改。例如: ``` #define VENDOR_ID 0x2006 /* MI USB vendor id */ #define MANUFACTURER ``` 通过以上规范和说明,开发者可以更好地理解如何在MTK6573平台下进行多项目配置,并确保各个项目的正确运行与高效维护。
1.涉及的目录结构:共计7处,尤其第四处非常容易遗漏,请特别小心。
1.1)build/target/product/$(project_name).mk
1.2)mediatek/config/$(project_name)
1.3)mediatek/custom/$(project_name)
1.4)mediatek/custom/$(project_name)/uboot/inc/configs/$(project_name).h //这里特别注意,容易遗漏的点
1.5)vendor/mediatek/$(project_name)
1.6)vendor/mediatek/$(project_name)/artifacts/out/target/product/$(project_name)
1.7)MI/$(project_name)
其中$(project_name)均为新增的项目。如mi等。
2.LINK或者COPY原则(涉及以上第一点的目录结构增加对于内容的,请遵循2个凡是)
凡是2个项目一致的内容使用link. 凡是2个项目不一致的内容使用copy。
建议操作:
使用MI/tools/工具箱下提供的lns脚步,对新增的每个文件均采用单独link的模式,
如果遇到因为项目不同而需要单独区分的情况,请取消link为copy文件接口。
copy的情况下请特别注意,升级补丁需要照顾到多个项目。
3.其他一些需要配置多项目的内容涉及到的修改点
3.1 项目的宏定义文件,包含makefile,cpp,h,java(没有宏,使用静态class的形式)
makefile,cpp,h中的宏定义处
mediatek/config/$(project_name)/ProjectConfig.mk中
AUTO_ADD_GLOBAL_DEFINE_BY_NAME
AUTO_ADD_GLOBAL_DEFINE_BY_VALUE
AUTO_ADD_GLOBAL_DEFINE_BY_NAME_VALUE
在以上三个变量中增加对于的宏定义,分别代表宏是否定义,以及宏定义是否带有字符串值;定义
- ywy6202012-10-23好东西,多一些这样的资料就好,
- 人比黄瓜瘦20132013-10-15很难找到这么详细的资源了~
- 粉丝: 0
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- YOLOv8完整网络结构图详细visio
- LCD1602电子时钟程序
- 西北太平洋热带气旋【灾害风险统计】及【登陆我国次数评估】数据集-1980-2023
- 全球干旱数据集【自校准帕尔默干旱程度指数scPDSI】-190101-202312-0.5x0.5
- 基于Python实现的VAE(变分自编码器)训练算法源代码+使用说明
- 全球干旱数据集【标准化降水蒸发指数SPEI-12】-190101-202312-0.5x0.5
- C语言小游戏-五子棋-详细代码可运行
- 全球干旱数据集【标准化降水蒸发指数SPEI-03】-190101-202312-0.5x0.5
- spring boot aop记录修改前后的值demo
- 全球干旱数据集【标准化降水蒸发指数SPEI-01】-190101-202312-0.5x0.5