linux uboot 源码分析,UBoot源码分析1.pdf
UBoot源码分析1
• UBoot源码解析(一)
主要内容
• 分析UBoot是如何引导Linux内核
• UBoot源码的一阶段解析
BootLoader概念
• Boot Loader 就是在操作系统内核运行之前运行
的一段小程序。通过这段小程序,我们可以初始
化硬件设备、建立内存空间的映射图,从而将系
统的软硬件环境带到一个合适的状态,以便为最
终调用操作系统内核准备好正确的环境
• 通常,Boot Loader 是严重地依赖于硬件而实现
的,特别是在嵌入式世界。因此,在嵌入式世界
里建立一个通用的Boot Loader 几乎是不可能的。
尽管如此,我们仍然可以对Boot Loader 归纳出
一些通用的概念来,以指导用户特定的Boot
Loader 设计与实现。
UBoot来源
• U-Boot 是 Das U-Boot 的简称,其含义是 Universal Boot
Loader GPL
,是遵循 条款的开放源码项目。最早德国
DENX 软件工程中心的 Wolfgang Denk 基于 8xxROM 和
FADSROM 的源码创建了 PPCBoot 工程项目,此后不断
添加处理器的支持。而后,Sysgo Gmbh 把 PPCBoot 移
植到 ARM 平台上,创建了 ARMBoot 工程项目。最终,
以 PPCBoot 工程和 ARMBoot 工程为基础,创建了 U-
Boot 工程。
• 而今,U-Boot 作为一个主流、通用的 BootLoader,成功
地被移植到包括 PowerPC、ARM、X86 、MIPS、NIOS、
XScale 等主流体系结构上的百种开发板,成为功能最多、
BootLoader
灵活性最强,并且开发最积极的开源 。目前。
U-Boot 仍然由 DENX 的 Wolfgang Denk 维护
UBoot存储空间分布
• UBoot OS
是用来引导 系统启动,那么它是如何引
OS
导 启动的呢?
启动参数
内核 根文件系统
bootloader
bootloader
bboooottllooaaddeerr
UBoot和内核的交互
• UBoot如何调用Linux内核?
– UBoot通过命令把Linux内核镜像文件从Flash中读取到内存的某一
, PC UBoot Linux
位置然后设置 寄存器执向该位置 调用 内核的
前提条件是?
– R0 =0
– R1= linux/arch/arm/mach-type
适当的机器码机器码的位置存放在
文件中
– R2 =启动参数标记列表在内存中的位置
– CPU必须设置为SVC模式并关闭中断
– MMU必须关闭
• UBoot如何给内核传递参数?
– UBoot和内核交互是单向的,两个程序不能同时运行,那么要实
现参数传递只能通过把参数存
linux uboot 源码分析,UBoot源码分析1.pdf相关推荐
- S5P210-uboot源码分析-uboot如何启动内核
uboot如何启动内核 7.1.uboot和内核到底是什么? 1.uboot是一个裸机程序 (1)uboot的本质就是一个复杂点的裸机程序,和我们arm裸机中写的程序没有什么本质上的区别. (2)ub ...
- 什么是U-Boot以及如何下载U-Boot源码
参考:什么是U-Boot以及如何下载U-Boot源码? 作者:一只青木呀 发布时间: 2020-10-20 11:05:59 网址:https://blog.csdn.net/weixin_45309 ...
- 【原创】【专栏】《Linux设备驱动程序》--- LDD3源码目录结构和源码分析经典链接
http://blog.csdn.net/geng823/article/details/37567557 [原创][专栏]<Linux设备驱动程序>--- LDD3源码目录结构和源码分析 ...
- 【Linux 内核】进程管理 ( 进程相关系统调用源码分析 | fork() 源码 | vfork() 源码 | clone() 源码 | _do_fork() 源码 | do_fork() 源码 )
文章目录 一.fork 系统调用源码 二.vfork 系统调用源码 三.clone 系统调用源码 四._do_fork 函数源码 五.do_fork 函数源码 Linux 进程相关 " 系统 ...
- (转)Linux设备驱动之HID驱动 源码分析
//Linux设备驱动之HID驱动 源码分析 http://blog.chinaunix.net/uid-20543183-id-1930836.html HID是Human Interface De ...
- Linux内核 eBPF基础:ftrace源码分析:过滤函数和开启追踪
Linux内核 eBPF基础 ftrace基础:过滤函数和开启追踪 荣涛 2021年5月12日 本文相关注释代码:https://github.com/Rtoax/linux-5.10.13 上篇文章 ...
- Linux内核 eBPF基础:kprobe原理源码分析:源码分析
Linux内核 eBPF基础 kprobe原理源码分析:源码分析 荣涛 2021年5月11日 在 <Linux内核 eBPF基础:kprobe原理源码分析:基本介绍与使用>中已经介绍了kp ...
- Linux内存管理 brk(),mmap()系统调用源码分析2:brk()的内存释放流程
Linux brk(),mmap()系统调用源码分析 brk()的内存释放流程 荣涛 2021年4月30日 内核版本:linux-5.10.13 注释版代码:https://github.com/Rt ...
- linux驱动开发之spi-omap-100k.c源码分析
代码分析 对于linux的驱动代码来说,我们要从后往前分析: /** OMAP7xx SPI 100k controller driver* Author: Fabrice Crohas <fc ...
最新文章
- Java主要知识结构
- 物联网将推动半导体产业继续增长
- 支付宝人脸数据被共享?李开复道歉
- 图像的泊松(Poisson)编辑、泊松融合完全详解
- 一文带你了解企业上云数据分析首选产品Quick BI
- R语言blotter包及相关工具
- linux 进程 读写锁,linux 下实现高性能读写锁(read/write lock)
- MySQL故障检测_mysql主从故障检测处理脚本
- jQuery框架总体分析
- ubuntu上virsh+kvm安装虚拟机
- 详述RFID服装智能管理方案
- 简单利用字典破解zip文件口令
- Iterator迭代器遍历Map集合
- 影子系统 重启蓝屏 开机蓝屏 安全模式蓝屏 进PE蓝屏 解决方案
- 浅聊一下车载以太网技术及其EAVB和TSN技术
- excel交换两列笔记
- csgo如何旋转跳?如何连跳
- matlab示波器有毛刺,在使用示波器时如何消除毛刺?
- 数据准备脚本:Python Pandas OR esProc SPL?
- 两个有序链表合并成一个有序的单链表
热门文章
- Java 11功能– Java飞行记录器
- 知识蒸馏 循环蒸馏_Java垃圾收集蒸馏
- 功能Java示例 第2部分–讲故事
- Spring JPA数据+Hibernate+ MySQL + Maven
- 简单的Spring Boot管理员设置
- eclipse中junit_在Eclipse中有效使用JUnit
- JUnit规则–引发异常时执行附加验证
- 带有Java Util日志记录的Java 8延迟调用
- jwebsocket传图片_Java中带有JWebSocket的WebServerSocket
- gson json和类转换_带有GSON和抽象类的JSON