关于mtk lk

lk是little kernel的简称,是一种bootloader(作用同常见的u-boot差不多),是Travis Geiselbrecht开发的一个开源项目,github地址为git://github.com/travisg/lk.git,而mtk的代码中就用到了lk。

注意:这里分析的代码是mt6582的代码,不同的版本的代码可能会稍有不同。

如果只编译lk部分代码,可以使用命令./mk project_name n lk。

lk的代码在bootable/bootloader/lk目录下,同mtk相关的有两个地方:
1. custom -> ../../../mediatek/custom/out/
2. platform/mediatek -> ../../../../mediatek/platform/

所以最终参与lk编译的文件目录有:

1. bootable/bootloader/lk
2. media/custom/out/project_name/lk
3. media/platform/mt6582/lk

编译完成之后,最终将在out目录下生成lk.bin、logo.bin这两个文件。


那么既然这里有个media/custom/out这个目录,那么不得不进入看看这个目录了。

在前面编译lk时使用了命令./mk project_name n lk,那么这个命令将触发一个过程叫做custgen过程,可以单独使用命令./mk custgen来实现。我们知道同客户定制相关的东西mtk放在了media/custom目录下,那么这个目录下主要又有三个目录,common、project、mt6582,而custgen过程则会将这三个目录合并成一个目录,就是out目录,如图所示:

mediatek/custom/common/ ______________
mediatek/custom/hexing82_wet_jb5/ _____\mediatek/custom/out 
mediatek/custom/mt6582/ _______________/

也就是说最终参与编译的其实是mediatek/custom/out目录,生成out这个目录有个规则,如果在这三个目录下同时存在一个同名的文件,那么优先级顺序是 project > mt6582 > common。

同理mediatek/config下面也是一样的,也会执行上面的过程,生成mediatek/config/out这个目录。

从上面的名字可以看出common是通用的,表示所有工程都共享该目录下的内容,而project目录下是该工程(或项目)所特有的。

文中如有理解错误,还望大家指正。


参考文档:MTK Alps Build System.ppt

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值