LK源码解析 9 总结
FORM:https://blog.csdn.net/xichangbao/article/details/51484635
little kernel做为Android系统的bootloader,最早用google工程师实现,其后由高通,MTK等芯片厂商做了各自平台的适配。
lk的主要功能:
初始化硬件模块,如时钟,中断,UART,USB,LCD,PMIC,eMMC/UFS等。
更新cmdline。其中重要的是区分启动模式。
选择和更新device tree。
设置好系统状态,跳转到kernel。 MMU = off, D-cache = off, I-cache = on or off,x0 = physical address to the FDT blob。
fastboot功能。
鉴权。
lk的链接脚本:
lk/arch/arm/system-onesegment.ld
从链接脚本中可以看到离开的入口函数为_start 。(ENTRY(_start) )
_start的定义在lk/arch/arm/crt0.S中。
追踪代码可以看到c语言的入口函数为kmain,定义在lk/kernel/main.c中。
然后用apps_init()函数调用lk中的另一个关键的c语言函数aboot_init()。
然后由aboot_init()调用boot_linux_from_mmc()。
然后由boot_linux_from_mmc()调用boot_linux()。
最后由boot_linux()调用entry()函数(32位kernel)或者scm_elexec_call()(64位kernel),完成lk到kernel的跳转。
---------------------
作者:xichangbao
来源:CSDN
原文:https://blog.csdn.net/xichangbao/article/details/51484635
版权声明:本文为博主原创文章,转载请附上博文链接!
LK源码解析 9 总结相关推荐
- 高通(Qualcomm)LK源码深度分析(三)
本编文章的内容主要是分析 boot/recovery 的启动过程,其中的 boot 就是 android 的kernel, 是整个 android 系统的核心.本文的分析是紧接着 aboot_init ...
- [源码解析] 机器学习参数服务器ps-lite (1) ----- PostOffice
[源码解析] 机器学习参数服务器ps-lite (1) ----- PostOffice 文章目录 [源码解析] 机器学习参数服务器ps-lite (1) ----- PostOffice 0x00 ...
- 谷歌BERT预训练源码解析(二):模型构建
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39470744/arti ...
- 谷歌BERT预训练源码解析(三):训练过程
目录 前言 源码解析 主函数 自定义模型 遮蔽词预测 下一句预测 规范化数据集 前言 本部分介绍BERT训练过程,BERT模型训练过程是在自己的TPU上进行的,这部分我没做过研究所以不做深入探讨.BE ...
- 谷歌BERT预训练源码解析(一):训练数据生成
目录 预训练源码结构简介 输入输出 源码解析 参数 主函数 创建训练实例 下一句预测&实例生成 随机遮蔽 输出 结果一览 预训练源码结构简介 关于BERT,简单来说,它是一个基于Transfo ...
- Gin源码解析和例子——中间件(middleware)
在<Gin源码解析和例子--路由>一文中,我们已经初识中间件.本文将继续探讨这个技术.(转载请指明出于breaksoftware的csdn博客) Gin的中间件,本质是一个匿名回调函数.这 ...
- Colly源码解析——结合例子分析底层实现
通过<Colly源码解析--框架>分析,我们可以知道Colly执行的主要流程.本文将结合http://go-colly.org上的例子分析一些高级设置的底层实现.(转载请指明出于break ...
- libev源码解析——定时器监视器和组织形式
我们先看下定时器监视器的数据结构.(转载请指明出于breaksoftware的csdn博客) /* invoked after a specific time, repeatable (based o ...
- libev源码解析——定时器原理
本文将回答<libev源码解析--I/O模型>中抛出的两个问题.(转载请指明出于breaksoftware的csdn博客) 对于问题1:为什么backend_poll函数需要指定超时?我们 ...
最新文章
- teechart属性和方法
- 国外版莆田系医院要凉了:谷歌禁止未验证、没有科学根据的医疗广告
- 80端口被屏蔽解决方法,80端口穿透之NAT端口映射技术
- python 回测模块_回测调用研究模块总结(慎用Python3 PacVer 2.0)
- ALV可输入状态下输入金额字段变小数的问题
- 2019/02/11-分布式数据库概述
- [luogu5008]逛庭院
- 与同步传递相关的获取-释放序列
- python discover()没有加载测试用例_Python系统学习 - Unittest
- 小米路由器MINI架设WEB服务
- digester java_在Digester中定位特定属性 - Java
- python解析地址
- 小程序数据分析工具:TalkingData
- altium room 布局_Altium Designer的PCB中ROOM的功用、放置、修改
- 数据挖掘学习日记1·有监督学习与无监督学习
- 程序员专属手机壁纸来了。。。
- 主流大数据调度工具对比(DolphinScheduler特点)
- 风控模型师面试准备--技术篇
- 跟alex学python_跟Alex学Python之
- Android手动控制软键盘的开启和关闭,判断软键盘是否显示;