MTK平台创建Vendor方法(最大化复用代码)

需求分析:

实际项目中,我们往往需要在同一个git分支支持多个项目,为此我们需要为不同的项目创建各自的vendor,把项目的差异进行隔离的同时,也能最大化复用代码,保证项目的共性问题可以及时同步到其他的项目中。下面是详细的实现方法:

创建vendor:

1. ./vendor/mediatek/libs/spm8666p1_64_car

2../vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6771/spm8666p1_64_car

3. ./vendor/mediatek/proprietary/custom/spm8666p1_64_car

4 ../vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/spm8666p1_64_car

5. ./vendor/mediatek/proprietary/bootable/bootloader/lk/target/spm8666p1_64_car

6 ../device/mediateksample/spm8666p1_64_car

1、preloader

e3fcf90344c46467d60f0ce53b5bf4f78b2e7ed0

1)ca_mtk8666_android9.0_base3.0/vendor/mediatek/proprietary/bootable/bootloader/preloader/custom 下新建项目 spm8666+项目名+_64_car

2)修改文件名spm8666s203_64_car.mk -> spm8666+项目名+_64_car

2、lk

8ec65a2808f0201824ac0a4e836ff8a65bffa75c

对应目录:ca_mtk8666_android9.0_base3.0/vendor/mediatek/proprietary/bootable/bootloader/lk/

1)新建lk项目mk配置文件

project/spm8666s203_64_car.mk

2)新建项目文件夹,如下

lk/target/spm8666s203_64_car/

4、kernel

a0551d354948fec49b76cb8952c7086a765c8feb

1)新建dts

A       arch/arm64/boot/dts/mediatek/spm8666s203_64_car.dts

A       arch/arm64/boot/dts/mediatek/spm8666s203_64_car/cs199.dtsi

2)新建defconfig

A       arch/arm64/configs/spm8666s203_64_car_debug_defconfig

A       arch/arm64/configs/spm8666s203_64_car_defconfig

3)新建dws文件

A       drivers/misc/mediatek/dws/mt6771/spm8666s203_64_car.dws

备注:

系统如何制定用哪个dws文件?答案:spm8666s203_64_car.dts定义了

+#include <spm8666s203_64_car/cust.dtsi>

+#include "spm8666s203_64_car/cs199.dtsi"

粗体字部分必现跟项目名一致,编译阶段会自动解析并匹配spm8666s203_64_car.dws。

编译过程:spm8666s203_64_car.dws -> cust.dtsi -> merge其余dts文件,最终生成spm8666s203_64_car.dtbo

另外,defconfig的配置必现跟项目名一致。

CONFIG_BUILD_ARM64_DTB_OVERLAY_IMAGE_NAMES="mediatek/spm8666s203_64_car"

CONFIG_ARCH_MTK_PROJECT="spm8666s203_64_car"

5、device

a351fb2c5d3fbb69ee22e2d1a5ebaa8c20161169

1)device/mediateksample/目录新建项目:spm8666+项目名+_64_car

2)cd device/mediateksample/spm8666+项目名+_64_car,并修改各个文件的项目名为新项目名

3)修改文件名:full_spm8666s203_64_car.mk 为spm8666+项目名+_64_car

6、vendor

75b314654041b2d2316c4e6e73fca15838c4be85

1)ca_mtk8666_android9.0_base3.0/vendor/mediatek/proprietary/custom 下新建项目 spm8666+项目名+_64_car,并替换文件中的项目名

2)vendor/mediatek/proprietary/tinysys/freertos/source/project/CM4_A/mt6771/ 下新建项目spm8666+项目名+_64_car

3)vendor/mediatek/libs/ 下新建项目spm8666+项目名+_64_car

替换文本内容工具

首先搜索关键字,找到需要替换的文件。然后VIM打开,在VIM中用下面的方法替换:

:%s/被替换字符/新字符/g

例如:

:%s/spm8666s203_64_car/spm8666s311_64_car/g
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值