MTK Preloader作用说明

preloader按照MTK的说法是MTK in-house developed loader,也就说是mtk内部开发的一个loader,那么单独编译preloader也是可以的,使用命令./mkproject_name n pl。

1. 启动流程

首先需要明确的是preloader、lk、kernelandroid这些系统镜像文件是存储在NANDflash中的,然后每个mtk芯片都有个boot rom,在上电时刻,boot rom开始启动,bootrom加载preloader到内部的SRAM中,为什么是加载到内部的SRAM中,而不是外部RAM中呢,是因为这个时候外部RAM还没有被初始化好,preloader被加载完成之后,程序就从bootrom跳转到preloader处开始执行,preloader初始化好外部RAM之后,preloader将lk(或Uboot)加载外部RAM中,然后跳转到lk(或uboot)中去执行,lk(或uboot)紧接着就加载bootimage(包括kernel和ramdisk)到外部RAM中,然后去执行kernel部分。启动过程如图所示:

 

Preloader启动说明总结:

1)上电时,系统从Boot Rom开始启动,Boot Rom加载Preloader到内部RAM(外部RAM还没被初始化)

2)Preloader被加载完后,程序跳入内部SRAM的Preloader执行,此时Preloader做如下工作:

&nBSP;  初始化外部RAM -> 将lk(或uboot)加载到外部RAM中

3)程序调到外部RAM中,执行lk(或uboot)代码,而lk(或uboot)会加载bootimage(包括kernel和ramdisk)到外部RAM,然后执行kernel.

*ramdisk是启动系统文件,包含一些对于启动android的很重要的文件,比如内核启动完后,加载的第一个进程init,一些重要的配置文件等.总之它控制着整个android的启动。

 

2. 下载流程

 

上面是启动流程,preloader除了具有启动功能之外,他还具有下载功能。首先还是需要明确的是mtk芯片都的有个bootrom,如果没有这个rom那么,那么程序是无法被下载到nandflash中的,然后此时的flash上是为空的,没有任何数据的。系统在上电之后它会检测是启动模式还是下载模式,如果是下载模式,它会初始化一个USB串口,将preloader加载到内部的SRAM中,跳转到preloader中去执行,初始化好flash和外部RAM之后,依次将preloader、lk、kernel、android下载到nandflash中去。下载过程如图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值