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 总结相关推荐

  1. 高通(Qualcomm)LK源码深度分析(三)

    本编文章的内容主要是分析 boot/recovery 的启动过程,其中的 boot 就是 android 的kernel, 是整个 android 系统的核心.本文的分析是紧接着 aboot_init ...

  2. [源码解析] 机器学习参数服务器ps-lite (1) ----- PostOffice

    [源码解析] 机器学习参数服务器ps-lite (1) ----- PostOffice 文章目录 [源码解析] 机器学习参数服务器ps-lite (1) ----- PostOffice 0x00 ...

  3. 谷歌BERT预训练源码解析(二):模型构建

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39470744/arti ...

  4. 谷歌BERT预训练源码解析(三):训练过程

    目录 前言 源码解析 主函数 自定义模型 遮蔽词预测 下一句预测 规范化数据集 前言 本部分介绍BERT训练过程,BERT模型训练过程是在自己的TPU上进行的,这部分我没做过研究所以不做深入探讨.BE ...

  5. 谷歌BERT预训练源码解析(一):训练数据生成

    目录 预训练源码结构简介 输入输出 源码解析 参数 主函数 创建训练实例 下一句预测&实例生成 随机遮蔽 输出 结果一览 预训练源码结构简介 关于BERT,简单来说,它是一个基于Transfo ...

  6. Gin源码解析和例子——中间件(middleware)

    在<Gin源码解析和例子--路由>一文中,我们已经初识中间件.本文将继续探讨这个技术.(转载请指明出于breaksoftware的csdn博客) Gin的中间件,本质是一个匿名回调函数.这 ...

  7. Colly源码解析——结合例子分析底层实现

    通过<Colly源码解析--框架>分析,我们可以知道Colly执行的主要流程.本文将结合http://go-colly.org上的例子分析一些高级设置的底层实现.(转载请指明出于break ...

  8. libev源码解析——定时器监视器和组织形式

    我们先看下定时器监视器的数据结构.(转载请指明出于breaksoftware的csdn博客) /* invoked after a specific time, repeatable (based o ...

  9. libev源码解析——定时器原理

    本文将回答<libev源码解析--I/O模型>中抛出的两个问题.(转载请指明出于breaksoftware的csdn博客) 对于问题1:为什么backend_poll函数需要指定超时?我们 ...

最新文章

  1. teechart属性和方法
  2. 国外版莆田系医院要凉了:谷歌禁止未验证、没有科学根据的医疗广告
  3. 80端口被屏蔽解决方法,80端口穿透之NAT端口映射技术
  4. python 回测模块_回测调用研究模块总结(慎用Python3 PacVer 2.0)
  5. ALV可输入状态下输入金额字段变小数的问题
  6. 2019/02/11-分布式数据库概述
  7. [luogu5008]逛庭院
  8. 与同步传递相关的获取-释放序列
  9. python discover()没有加载测试用例_Python系统学习 - Unittest
  10. 小米路由器MINI架设WEB服务
  11. digester java_在Digester中定位特定属性 - Java
  12. python解析地址
  13. 小程序数据分析工具:TalkingData
  14. altium room 布局_Altium Designer的PCB中ROOM的功用、放置、修改
  15. 数据挖掘学习日记1·有监督学习与无监督学习
  16. 程序员专属手机壁纸来了。。。
  17. 主流大数据调度工具对比(DolphinScheduler特点)
  18. 风控模型师面试准备--技术篇
  19. 跟alex学python_跟Alex学Python之
  20. Android手动控制软键盘的开启和关闭,判断软键盘是否显示;

热门文章

  1. python的冒泡排序
  2. 58同城网站在登录后,最近几天都不需要重新登录,这个功能是如何实现的
  3. 俄大神 lopatkin Windows 精简优化系统 - 工具软件
  4. 关于洛谷哪些题目(入门)
  5. AndroidStudio导入SVG图片
  6. web前端图片极限优化策略
  7. 【趣味】智能AI祝福语
  8. 发票查询,验证码无法刷新问题解决
  9. 计算机网络原理第二章答案
  10. TPM分析笔记(十)TPM 组织架构(TPM hierarchy)