uboot前传
1.uboot到底是干嘛的
- uboot主要作用是用来启动操作系统内核。
- uboot还要负责部署整个计算机系统。
- uboot中还有操作Flash等板子上硬盘的驱动。
- uboot还得提供一个命令行界面供人来操作。
2.uboot必须解决哪些问题
- 自身可开机直接启动
- 能够引导操作系统内核启动并给内核传参:uboot的终极目标就是启动内核,uboot事先把要传递的参数放在特定的位置,这些参数将被用来指导linux内核的启动过程
- 能提供系统部署功能
- 能进行soc级和板级硬件管理 
3.uboot的“生命周期”
- uboot的入口就是开机自动启动,uboot的唯一出口就是启动内核,启动内核命令一旦执行就回不来了。
4.uboot的工作方式
- uboot的本质就是一个裸机程序,由若干个.c文件和.h文件组成,配置编译之后会生成一个uboot.bin,这就是uboot这个裸机程序的镜像文件。然后这个镜像文件被合理的烧录到启动介质中拿给SoC去启动
- uboot启动后大部分时间和工作都是在shell下完成的(譬如uboot要部署系统要在shell下输命令、要设置环境变量也得在命令行地下,要启动内核也要在命令行底下敲命令)
- uboot的环境变量和操作系统的环境变量工作原理和方式几乎完全相同,环境变量可以被认为是系统的全局变量,环境变量名都是系统内置的,系统或者我们自己的程序在运行时可以通过读取环境变量来指导程序的运行。这样设计的好处就是灵活,譬如我们要让一个程序更改运行方法,不用去重新修改程序代码再重新编译运行,而只要修改相应的环境变量就可以了。
5.uboot的常用命令
- printenv/print:打印、输出
- setenv/set:设置环境变量
- ping:网络测试指令 设置IP命令:Ifconfig eth0 192.168.1.20
- tftp:下载指令 tftp 0x30000000 zImage-qt
- movi:SD卡/iNand操作指令 movi read u-boot 0x30000000,意思就是把iNand中的u-boot分区读出到DDR的0x30000000起始的位置处
- nand:NandFlash操作指令
- mm、mw、md:内存操作指令
- 显示内存中的内容(md)、将内容写到内存中(mv)、写内存(mm)
自动运行倒数时间:bootdelay
- 网络设置:ipaddr serverip
- 自动运行命令设置:bootcmd
- uboot给kernel传参:bootargs
- 新建一个环境变量:set var value
- 更改一个环境变量:set var value
- 删除一个环境变量:set var
6.uboot中对Flash和DDR的管理
- uboot必须从Flash起始地址开始存放,uboot分区的大小必须保证uboot肯定能放下,一般设计为512KB或者1MB
- 环境变量分区一般紧贴着uboot来存放,大小为32KB或者更多一点
- kernel可以紧贴环境变量存放,大小一般为3MB或5MB或其他
- 一般kernel启动后将自由分区挂载到rootfs下使用
uboot前传的更多相关文章
- Vue.js 入门指南之“前传”(含sublime text 3 配置)
		题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ... 
- 博弈论(Game Theory) - 01 - 前传之占优战略均衡
		博弈论(Game Theory) - 01 - 前传之占优战略均衡 开始 我们现在准备攀爬博弈论的几座高峰. 我们先看看在纳什均衡产生之前,博弈论的发展情况. 我们的第一座高峰是占优战略均衡. 囚徒困 ... 
- 博弈论(Game Theory) - 02 - 前传之重复剔除严格劣战略的占优战略均衡
		博弈论(Game Theory) - 02 - 前传之重复剔除严格劣战略的占优战略均衡 开始 "重复剔除劣战略的严格占优战略均衡"(iterated dominance equil ... 
- 博弈论(Game Theory) - 03 - 前传之最大最小均衡
		博弈论(Game Theory) - 03 - 前传之最大最小均衡 开始 最大最小均衡是由人冯·诺依曼和摩根斯坦提出.冯·诺依曼和摩根斯坦也被认为是博弈论的创始人. 冯·诺依曼提出的"最大最 ... 
- 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)
		根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ... 
- Android-自定义View前传-View的三大流程-Layout
		Android-自定义View前传-View的三大流程-Layout 参考 <Android开发艺术探索> https://github.com/hongyangAndroid/FlowL ... 
- Android自定义View前传-View的三大流程-Measure
		Android自定义View前传-View的三大流程-Measure 参考 <Android开发艺术探索> https://developer.android.google.cn/refe ... 
- (转)Groupon前传:从10个月的失败作品修改,1个月找到成功 并不挶泥在这个点子上面,它反而往后站一步,看看他们已经做好的这个网站,可以再怎么包装成另一个完完全全不同的网站?所有的人所做的每件失败的事情中, 一定有碰到或含有成功的答案」在里面,只是他们不知道而已。 人不怕失败」,只怕宣布失败」
		(转)Groupon前传:从10个月的失败作品修改,1个月找到成功 今天读到 一个非常励志人心的故事 ,就像现在「叶问」有「前传」,最近很火红的团集购网站Groupon 也出现了「Groupon前传」 ... 
- SpringMVC深度探险(一) —— SpringMVC前传
		在我们熟知的建立在三层结构(表示层.业务逻辑层.持久层)基础之上的J2EE应用程序开发之中,表示层的解决方案最多.因为在表示层自身的知识触角很多,需要解决的问题也不少,这也就难免造成与之对应的解决方案 ... 
随机推荐
- idea 设置自定义注释
			详细:idea如何设置类头注释和方法注释 2016年10月13日 15:09:11 标签: idea / 注释 / 97989 编辑 删除 idea和eclipse的注释还是有一些差别的. idea: ... 
- Vue学习笔记:计算属性
			使用函数的缺点 如果我们想要将数据经过转化后再显示,或者多个数据结合起来进行显示,一般可以直接在数据渲染或者数据绑定的时候书写表达式 如果表达式过于复杂,或者逻辑太多的时候,我们可以将其封装在函数里, ... 
- 吴裕雄--天生自然PythonDjangoWeb企业开发:学员管理系统后台
			需求 提供一个学员管理系统,一个前台页面,展示现有学员,并供新学员提交申请,一个后台,能够处理申请. pip install django==1.11.2 创建项目 使用控制台进入到一个目录下,具体是 ... 
- c++ 读取、保存单张图片
			转载:https://www.jb51.net/article/147896.htm 实际上就是以二进制形式打开文件,将数据保存到内存,在以二进制形式输出到指定文件.因此对于有图片的文件,也可以用这种 ... 
- 2019暑期集训第二讲 - 组合数学&概率&数学期望
			A - 容斥原理(CodeForces - 451E) 二进制状态压缩暴力枚举哪几个花选的个数超过了总个数,卢卡斯定理求组合数,容斥原理求答案 可以先把每个花的数量当成无限个,这样就是一个多重集的组合 ... 
- Codeforces Round #588 (Div. 2)D(思维,多重集)
			#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;long long a[7007],b[700 ... 
- 「CF1004E」Sonya and Ice Cream
			题目描述 给定一个 \(N\) 个点的树,要选出一条所含点的个数不超过 \(K\) 的一条路径,使得路径外的点到这条路径的距离的最大值最小. 数据范围:\(1\le K \le N \le 10^5\ ... 
- Vue 路由组件
			目录 组件数据局部化处理 路由逻辑跳转 组件传参 父传子 子传父 组件的生命周期钩子 路由传参 全家配置自定义 CSS 与 js 总结: 组件数据局部化处理 不管页面组件还是小组件,都可能会被多次复用 ... 
- 学成在线(第17天)用户认证 Zuul
			用户认证 用户认证流程分析 用户认证流程如下: 业务流程说明如下: 1.客户端请求认证服务进行认证.2.认证服务认证通过向浏览器cookie写入token(身份令牌)认证服务请求用户中心查询用户信息. ... 
- linux--redis学习
			redis redis在linux的安装 1.redis安装方式 yum安装(提前配置好yum源) yum install redis -y # 源代码编译安装 rpm包手动安装 2.编译安装redi ... 
