(meidatek\platform\mt6589\preloader\src\core\main.c)main()--->bldr_pre_process()--->

(meidatek\platform\mt6589\preloader\src\drivers\platform.c)platform_pre_init():这里主要是初始化串口和PMIC

(meidatek\platform\mt6589\preloader\src\drivers\platform.c)platform_init():这里主要是初始化看门狗和USB设备,检测是否是下载模式,初始化内存分区
上面这个main函数的主要是用来判断开机模式的,特别是判断是否下载模式,如果是正常启动模式,则加载UBOOT代码,跳转到下一个代码段运行, if (bldr_load_part(PART_UBOOT, bootdev, &addr) != 0) ,
bldr_jump(addr, BOOT_ARGUMENT_ADDR, sizeof(boot_arg_t))。 BOOT_ARGUMENT_ADDR 是UBOOT代码段存放的起始地址。
下面进入bootloader阶段,其实是一个lk,即little linux--->

(bootable\bootloader\lk\kernel\main.c)kmain()--->(meidatek\platform\platform.c)platform_early_init:这里主要是初始化中断、LCM和PMIC,注意这里是开机第一次初始化LCM显示,但是没有打印出LOG,原因是初始化LCM的代码在UART初始化之前,g_fb_size = mt_disp_get_vram_size();可以进入这个函数仔细研究。

(bootable\bootloader\lk\kernel\main.c)kmain()--->thread_resume--->(meidatek\platform\platform.c)platform_init():这里做的事情就多了,开背光,加载显示LOGO图片,初始化充电电池==
执行完这个main函数后就开始真正开机了,但还是需要一个boot引导,这个是一个fastboot,如下--->

(bootable\bootloader\lk\app\mt_boot\sys_commonds.c)cmd_boot--->

(bootable\bootloader\lk\app\mt_boot\mt_boot.c)boot_linux--->这里就真正跳到linux内核那里去了

MT6589开机启动简析相关推荐

  1. 【Android源码分析】Android系统关键服务启动简析

    一.关于Android系统重要的进程 (1).init进程:init进程是Linux内核启动完成之后,启动的第一个用户进程,Android系统就是在这个进程的基础上启动起来的,进程pid为1.init ...

  2. Android 启动过程简析

    首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...

  3. Android开机启动流程简析

    Android开机启动流程简析 (一) 文章目录 Android开机启动流程简析 (一) 前言 一.开机启动的流程概述 二.Android的启动过程分析 (1).总体流程 init简述 Zygote简 ...

  4. Linux的启动流程简析(以Debian为例)

    Linux的启动流程简析(以Debian为例) 正文: 前面的文章探讨BIOS和主引导记录的作用.那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事 ...

  5. Python源码学习:启动流程简析

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> Python简介: python主要是动态语言,虽然Python语言也有编译,生成中 ...

  6. 基于libmad库的MP3解码简析

    基于libmad库的MP3解码简析  MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3). ...

  7. 简析 .NET Core 构成体系

    简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...

  8. Python源码学习:内建类型简析并简析int对象

    Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一篇文章中已经大致分析了下,Python的启动执行流程,现在我们分析一下Pytho ...

  9. Android Jetpack组件App Startup简析

    1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...

最新文章

  1. [html] 举例说明当我们在写布局时,都有哪些边界的情况需要关注的?
  2. Jmeter-基础篇
  3. php-cgi并发,对于php-fpm和cgi,还有并发响应的理解
  4. Java笔记-使用RabbitMQ的Java接口生产数据并消费
  5. 修改linux默认语言
  6. js中setTimeout与clearTimeout
  7. poj3253Fence Repair
  8. ctc5(ctc5160)
  9. 2017美团校招安卓岗
  10. oracle ora_p0,ORA-12801: error signaled in parallel query server P005
  11. Scala之特质特质Trait
  12. 饮食干预减轻癌症治疗相关症状和毒性
  13. 上传文件时,文件名中文乱码
  14. IPhone平滑滚动效果的实现
  15. LabVIEW 2013SP1视觉开发必备软件LV、VDM、VBAI、VAS
  16. 埃森哲java开发怎么样_技术丨埃森哲Data Privacy 、商汤科技、平安科技人工智能(AI)类日常实习...
  17. 自然语言处理核心期刊_中文自然语言处理的关键技术.ppt(1.63MB)-NLPIR.ppt
  18. linux 安装宝塔及配置关关采集(完整过程介绍)
  19. 鸿网互联远程端口修改工具( 无需要重启,系统防火墙自动放行远程端口)
  20. 红米note2是android系统,如何精简红米Note2的系统软件

热门文章

  1. SpringBoot 部署: 项目打包 手动部署到阿里云服务器上
  2. RTSP协议详解(先留着,以后用到时候好找)
  3. uber模式_Uber和Lyft的商业模式可能已经死了。 好。
  4. C语言输出同一字母菱形,C语言中,如何输出一个菱形!
  5. CentOS8上集群时间的同步
  6. 火狐浏览器打开GitHUb时,说“建立安全连接失败”,解决方案
  7. PAT 1136 stoi产生的错误
  8. 阿里云学生服务器(Windows)的配置以及安装Tomcat连接服务器的教程
  9. 湖北:当好长江经济带高质量发展生力军
  10. 微软HLK测试及驱动签名