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

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

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

3. 代码组织
preloader主要有三处代码:
1. mediatek/platform/mt6582/preloader
2. mediatek/custom/mt6582/preloader
3. mediatek/custom/hexing82_wet_jb5/preloader
那么同lk类似,在执行custgen过程中,会将custom目录下的内容生成到out目录中,所以参与preloader编译过程的之后两个目录:
1. mediatek/platform/mt6582/preloader
2. mediatek/custom/out/hexing82_wet_jb5/preloader
编译完成之后在out目录下生成preloader_project_name.bin

注意在mediatek目录下还有个preloader目录,这个目录下主要是一些编译脚本和makefile,最后也会在该目录下生成最终的preloader的bin文件。

以上之处如又不对之处还望大家指正。

参考文档:MTK Alps Build System.ppt、Driver_All_In_One_V1_MT6575_4.0.pdf

mtk preloader相关推荐

  1. mtk preloader流程简介

    ## mtk preloader流程简介 **一.preloader流程简介 1.启动流程 (1)设备上电起来后,跳转到Boot ROM(不是flash)中的bootcode中执行把pre-loade ...

  2. [MTK] preloader中操作GPIO函数的实现

    本文讲解MTK preloader中mt_set_gpio_mode的实现.举一反三,preloader中其它的操作GPIO函数的实现都是雷同的. 环境:基于MTK mt6737m平台,Android ...

  3. MTK 驱动(73)---MTK 6761平台 android O bootloader启动之 Pre-loader -amp;gt; Lk

    MTK 6761平台 android O bootloader启动之 Pre-loader -> Lk 1.bootloader到kernel启动总逻辑流程图 ARM架构中,EL0/EL1是必须 ...

  4. MTK 6761平台 android O bootloader启动之 Pre-loader - Lk

    1.bootloader到kernel启动总逻辑流程图 ARM架构中,EL0/EL1是必须实现,EL2/EL3是选配,ELx跟层级对应关系: EL0 -- app EL1 -- Linux kerne ...

  5. 深入MTK平台bootloader启动之【 Pre-loader -> Lk】分析笔记

    1.bootloader到kernel启动总逻辑流程图ARM架构中,EL0/EL1是必须实现,EL2/EL3是选配,ELx跟层级对应关系:EL0 -- appEL1 -- Linux kernel . ...

  6. 【Android】MTK Android 编译命令

    命令格式:./maketek [option] [project] [action] [modules] Option: -t ,-tee :输出log信息到当前终端 -o , -opt=-- : 编 ...

  7. MTK Android 编译命令

    一.Target 编译命令 usage: (makeMtk|mk) [options] project actions [moudles] options:       -t,-tcc         ...

  8. Mtk Android编译命令

    一.输入命令: cbk@YCS:~/work/k6/alps$ ./mk help Usage: (makeMtk|mk) [options] project actions [modules] Op ...

  9. MTK android flash配置

    关于6573集成MCP nandflash的方法,driver_allinone 和Memory Customer Document pdf的说明里面漏了很多细节.在此补上. 1.首先确认flash型 ...

最新文章

  1. 使用 IDEA 解决 Java8 的数据流问题,用过的都说好!!!
  2. Linux(64位)下OpenBabel 2.4.1、python2.7和Ipython实战(三)
  3. Python_第一堂课
  4. 计算机专业论文关于天气预报的,关于天气预报论文范文写作 天气预报相关论文写作资料...
  5. POJ2104 (平方分割)二分查找理解。
  6. ApacheCN 未来发展方向(暂定)2019.8.2
  7. 超70家影视传媒单位联合500余位艺人倡议:立即清理未经授权短视频
  8. HDFS Shell API(常用)
  9. AdminLTE框架的基本使用
  10. 字模提取工具-PCtoLCD2002使用说明
  11. BoundsChecker下载
  12. MacOS苹果电脑使用PPPOE接入网络办法
  13. Linux系统接口ioc,Linux下SCSI API研究及应用
  14. java 人脸检测 人脸抓拍
  15. 珠海到各大机场的线路
  16. 如何做番茄炖牛腩——hadoop理解
  17. (笔记整理)公司vue平台用到redis,相关概念与登录(11)
  18. 神经网络学习小记录45——Keras常用学习率下降方式汇总
  19. 将自己的网站上传至服务器并通过域名进行访问
  20. 首席经济学家金岩石:区块链是机器创造的信任,这种信任是所有交易的基础

热门文章

  1. CS5266+MA8621做TYPEC转HDMI+PD+U3+2U+SD/TF七合一拓展坞方案设计|CS5266多口拓展坞PCB+原理图参考
  2. Linux中的古老缩略语
  3. 如何把js里var值赋值到input里去
  4. 使用C# 实现串口拨号器的SIM卡通信[修正版]
  5. mahout使用PFP和FPG算法
  6. 一个简单的pingpong程序测试mpi消息通讯的开销及并行计算通讯启动时间测算
  7. vue使用ttf字体包压缩 字蛛 font-spider
  8. 合泰HT32F52342/HT32F52352芯片Pack下载和工程例程下载
  9. 实习培训记录1-HTML
  10. OpenMV 线性回归巡线之一:赛道提取