我是靠谱客的博主 光亮发夹,最近开发中收集的这篇文章主要介绍关于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

最后

以上就是光亮发夹为你收集整理的关于mtk lk的全部内容,希望文章能够帮你解决关于mtk lk所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(77)

评论列表共有 0 条评论

立即
投稿
返回
顶部