LK(little kernel)第一行代码链接位置分析及lk启动过程
LK是(L)ittle (K)ernel的缩写,是一个功能及其强大的bootloader开源项目,但现在只支持arm和x86平台。
LK的一个显著的特点就是它实现了一个简单的线程机制(thread),和对高通处理器的深度定制和使用。因此高通平台android普遍采用LK作为其bootloader。但是,LK只是整个系统的引导部分。
1,lk的代码链接方式以及第一行代码的位置
本文以高通平台为例,编译lk的命令是make aboot,编译后生成一个emmc_appsboot.mbn image文件。mbn格式是高通包含了特定运营商定制的一套efs,nv的集成包文件。大致格式可以认为和elf相似。
确定bootloader/lk第一行执行的代码
整个系统的启动顺序是PBL加载运行SBL1,SBL1加载运行LK,LK加载运行kernel,kernel启动android。
关于这部分更详细的讲解可以参考linux驱动由浅入深系列:PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)
其中我们知道LK的image是 emmc_appsboot.mbn,它被PBL加载进内存后,其代码段第一条指令就是emmc_appsboot.mbn在编译链接时有ld链接脚本确定的。
查看lk相应的链接脚本发现
在
LK(little kernel)第一行代码链接位置分析及lk启动过程相关推荐
- 第一行代码android网课,linux内核分析(网课期末地面课期中)
堆栈变化过程:html 计算机是如何工做的?(总结)--三个法宝git 存储程序计算机工做模型,计算机系统最最基础性的逻辑结构:程序员 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时 ...
- 怎么编写提醒人结账的短信息_我如何在短短8个月的时间里从编写第一行代码到获得$ 226K的工作机会...
怎么编写提醒人结账的短信息 I got offers from Google, Lyft, Yelp, cloud unicorn Rubrik, IBM Artificial Intelligenc ...
- 第一行代码第三版笔记
第3章 Activity 主acitivity:程序运行起来首先启动的activity manifest <?xml version="1.0" encoding=" ...
- 从零开始写安卓APP 《第一行代码》笔记 第一周
这是软件开发课的任务,本人其实不会java也不会安卓开发.以前只做过web端,因为某课程的爆炸实验单人撸了全栈.不过好在很早前就想学了,这里记录一下过程.放的主要是<第一行代码>的一些笔记 ...
- 基于第一行代码CoolWeather的小白天气开发
小白天气开发练习 小白基于guolin大神第一行代码CoolWeather开发,最后附上github链接 文章目录 小白天气开发练习 数据来源 CoolWeather目录结构 用例图&时序图 ...
- Android Studio 单刷《第一行代码》系列 05 —— Fragment 基础
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 04 —— Activity 相关
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 03 —— Activity 基础
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Android Studio 单刷《第一行代码》系列 02 —— 日志工具 LogCat
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
最新文章
- ALV GRID学习笔记----Double Click事件
- C++睡眠延时函数 Sleep() usleep()(windows.h、unistd.h)
- Vite与webpack优势
- python怎么打印出文件的内容_Python---进阶---文件操作---按需求打印文件的内容
- 会玩!抖音上线拉春联特效 “拜个抖音年”活动参与人数超65万
- 智慧工厂平台整体结局方案
- go数据类型之map
- 在java中如何定义一个方法,个人编程学习网 - Java-方法中的术语和如何定义方法...
- 通过windows远程访问linux桌面的方法(简单)
- 用户服务协议和隐私政策
- 阿里云ECS服务器的搭建过程小记
- 路由器04--OPKG
- 阿里云轻量级应用服务器设置外网访问端口
- html制作钟表盘,CSS3简易表盘时钟
- C语言每日一练——第66天:委派任务问题
- 东软云HIS医疗管理系统——技术栈【SpringBoot+Vue+MySQL+MyBatis】
- Flutter中如何选择StatelessWidget和StatefulWidget
- 看完数学概念背后的故事,让孩子的数学兴趣激增1000倍!
- zblog访问记录v2.5.0
- python tensorflow教程_真正从零开始,TensorFlow详细安装入门图文教程!
热门文章
- 【神经网络实验】Numpy手写多层神经网络
- Z-stack 协议栈基础知识
- blas daxpy dcopy函数的使用
- h5 localStorage
- MySQL 05 存储过程
- Intellij IDEA 中一次性折叠所有Java代码的快捷键设置 collapse all
- 计算机一级ms offecs试题,技能培训专题-中控ECS-700 用户程序 V2
- OS + Linux RedHat / redhat 5 / redhat 6 / redhat 7
- 若依框架刷新页面出现 正在加载系统资源,请耐心等待
- 读取EXCEL。POI的一个死坑。。文件的流不能close以及删除