MT6589开机启动简析
(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开机启动简析相关推荐
- 【Android源码分析】Android系统关键服务启动简析
一.关于Android系统重要的进程 (1).init进程:init进程是Linux内核启动完成之后,启动的第一个用户进程,Android系统就是在这个进程的基础上启动起来的,进程pid为1.init ...
- Android 启动过程简析
首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...
- Android开机启动流程简析
Android开机启动流程简析 (一) 文章目录 Android开机启动流程简析 (一) 前言 一.开机启动的流程概述 二.Android的启动过程分析 (1).总体流程 init简述 Zygote简 ...
- Linux的启动流程简析(以Debian为例)
Linux的启动流程简析(以Debian为例) 正文: 前面的文章探讨BIOS和主引导记录的作用.那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事 ...
- Python源码学习:启动流程简析
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> Python简介: python主要是动态语言,虽然Python语言也有编译,生成中 ...
- 基于libmad库的MP3解码简析
基于libmad库的MP3解码简析 MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3). ...
- 简析 .NET Core 构成体系
简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...
- Python源码学习:内建类型简析并简析int对象
Python源码分析 本文环境python2.5系列 参考书籍<<Python源码剖析>> 上一篇文章中已经大致分析了下,Python的启动执行流程,现在我们分析一下Pytho ...
- Android Jetpack组件App Startup简析
1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发中的问题,对代码的逻辑和UI界面实现深层解耦,打造数据驱动型UI界面. A ...
最新文章
- [html] 举例说明当我们在写布局时,都有哪些边界的情况需要关注的?
- Jmeter-基础篇
- php-cgi并发,对于php-fpm和cgi,还有并发响应的理解
- Java笔记-使用RabbitMQ的Java接口生产数据并消费
- 修改linux默认语言
- js中setTimeout与clearTimeout
- poj3253Fence Repair
- ctc5(ctc5160)
- 2017美团校招安卓岗
- oracle ora_p0,ORA-12801: error signaled in parallel query server P005
- Scala之特质特质Trait
- 饮食干预减轻癌症治疗相关症状和毒性
- 上传文件时,文件名中文乱码
- IPhone平滑滚动效果的实现
- LabVIEW 2013SP1视觉开发必备软件LV、VDM、VBAI、VAS
- 埃森哲java开发怎么样_技术丨埃森哲Data Privacy 、商汤科技、平安科技人工智能(AI)类日常实习...
- 自然语言处理核心期刊_中文自然语言处理的关键技术.ppt(1.63MB)-NLPIR.ppt
- linux 安装宝塔及配置关关采集(完整过程介绍)
- 鸿网互联远程端口修改工具( 无需要重启,系统防火墙自动放行远程端口)
- 红米note2是android系统,如何精简红米Note2的系统软件
热门文章
- SpringBoot 部署: 项目打包 手动部署到阿里云服务器上
- RTSP协议详解(先留着,以后用到时候好找)
- uber模式_Uber和Lyft的商业模式可能已经死了。 好。
- C语言输出同一字母菱形,C语言中,如何输出一个菱形!
- CentOS8上集群时间的同步
- 火狐浏览器打开GitHUb时,说“建立安全连接失败”,解决方案
- PAT 1136 stoi产生的错误
- 阿里云学生服务器(Windows)的配置以及安装Tomcat连接服务器的教程
- 湖北:当好长江经济带高质量发展生力军
- 微软HLK测试及驱动签名