Linux bootloader
1、bootloader:初始化相关的硬件 loader:将操作系统从硬盘当中拷贝到内存当中去,,然后让CPU跳转到内存中执行操作系统。
2、boot阶段:(1)关闭影响cpu正常执行的外设 比如说:看门狗、中断
(2)初始化时钟 包括倍频、分频
(3)初始化内存控制器 DDRAM 验证内存,往里边写一个数值,然后再读出来,如果读出的正确,内存可以正常使用。
(4)初始化硬盘 nand flash 读驱动(从nand flash往外读数据)
3、loader阶段:
(1)从硬盘指定的地址加载到kernel到内存指定的地址。
(2)跳转到内存kernel所在的地址,执行
附加功能:
实现bootloader中的shell(命令解释器)
Linux bootloader的更多相关文章
- ARM Linux bootloader笔记
.text //指定了后续编译出来的内容放在代码段[可执行] .global //告诉编译器后续跟的是一个全局可见的名字[可能是变量,也可以是函数名] _start /*函数的其实地址,也是编译.链接 ...
- Linux启动过程详述
http://www.ibm.com/developerworks/cn/linux/kernel/startup/index.html Linux启动第1步:引导内核 Linux启动第2步:内核部分 ...
- linux 驱动学习笔记03--Linux 内核的引导
如图所示为 X86 PC 上从上电/复位到运行 Linux 用户空间初始进程的流程.在进入与 Linux相关代码之间,会经历如下阶段. ( 1 ) 当系统上电或复位时, CPU 会将 PC 指针赋值为 ...
- Bootloader的原理以及实现(转载)
BootLoader工作原理 BootLoader工作原理 BootLoader指系统启动后,在操作系统内核运行之前运行的一段小程序.通过BootLoader,我们可以初始化硬件设备.建立内存空间的映 ...
- 佳文赏析:How to uninstall Linux
来源:https://www.dedoimedo.com/computers/linux-uninstall.html This article was suggested to me by a re ...
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- Linux学习笔记——基于鸟哥的Linux私房菜
Linux学习笔记--基于鸟哥的Linux私房菜 ***** ARM与嵌入式linux的入门建议 (1) 学习基本的裸机编程:ARM7或ARM9,理解硬件架构和控制原理 (这一步是绝对的根基) (2) ...
- Boadload和Image$$??$$Limit含义
Bootloader 即引导加载程序,是系统加电后运行的第一段软件代码.简单的说它们都是bootloader,所完成的任务也大同小异. 熟悉x86体系结构的朋友肯定知道,x86平台上bootloade ...
- xen虚拟机操作整理
1,登陆物理机器 2,查看物理机建立虚拟机的列表 root:~ # xm li Name ID Mem VCPUs State Time(s) Domain-0 0 49450 8 r----- 52 ...
随机推荐
- canvas背景粒子动态变化动画
var canvas = document.getElementById("cas"); var ctx = canvas.getContext("2d"); ...
- 第十二篇视图层之视图函数(views)-三件套
视图层之视图函数(views) 阅读目录(Content) 视图层之视图函数(views) 一个简单的视图 HttpRequest HttpResponse redirect 函数 对比render与 ...
- Newtonsoft.Json版本冲突
如果项目中不同第三方类库分别使用了不同版本的Newtonsoft.Json,可以在配置文件中添加以下节点,将0.0.0.0-9.0.0.0此区间的Newtonsoft.Json使用全部强制指向到项目中 ...
- 学习spring的第4天
关于老式的spring+mybatis整合,使用了druid连接池,还使用了mybatis-spring依赖(用于整合的),但是这个依赖本身就使用了spring-jdbc的某些类来处理事务方面的内容, ...
- c++程序—if语句实践
三只小 #include<iostream> using namespace std; #include<string> int main() { //which pig is ...
- 关于数据库text字段
问题描述: maven项目中,使用MBG代码生成器自动生成的实体类对象时,当数据库中表的字段有 text 类型时,对应到java类中是String类型的,在前端页面通过ajax获取到 json 格式的 ...
- CGridCtrl设置行列不可拉伸
m_HFlexGrid.SetColumnResize(FALSE); m_HFlexGrid.SetRowResize(FALSE);
- Distributed--分布式架构
如果我们期望实现一套严格满足ACID特性的分布式事务,很可能出现的情况就是在系统的可用性和严格一致性之间出现冲突. 在可用性和一致性之间,永远无法存在一个两全其美的方案. 从集中式到分布式 集中式系统 ...
- oracle数据库语言(1)--数据定义语言
1.数据定义语言 (DDL)DATE DEFINITION LANGUAGE 作用是用于增删改 数据库对象 (1) 创建表格 CREATE TABLE EMP ( -------创建 名为 EMP ...
- Scrapy的学习和使用
1.安装 在windows下安装是真心复杂,不搞了,直接在linux下研究吧! sudo pip install scrapy 2.安装遇到问题 2.1.bz2 module not availabl ...