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应用程序开发之中,表示层的解决方案最多.因为在表示层自身的知识触角很多,需要解决的问题也不少,这也就难免造成与之对应的解决方案 ...
随机推荐
- char、pchar、string互相转换
1.string转换成pchar 可以使用pchar进行强制类型转换,也可以使用StrPCopy函数 var s:string; p,p1:PChar; begin s:='Hello Delphi' ...
- Flex 学习笔记
Flex布局是什么 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局 .box{ displ ...
- 学习笔记(10)- 智能会话框架rasa
https://rasa.com/ 阿里用过这个,贝壳也在用这个. 优点: 有中文版本(https://github.com/crownpku/rasa_nlu_chi): 2018年发布,文档多,业 ...
- HDU 5587:Array
Array Accepts: 118 Submissions: 232 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/ ...
- HTML5模板引擎 Thymeleaf 教程(转)
原文:http://www.open-open.com/lib/view/open1383622135586.html Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非 ...
- node.js中的事件轮询Event Loop
任务队列/事件队列 "任务队列"是一个事件的队列,IO设备完成一项任务,就在"任务队列"中添加一个事件,表示相关的异步任务可以进入"执行栈" ...
- ATT&CK实战系列——红队实战(一)
一.环境搭建 1.环境搭建测试 最近想要开始学习内网渗透,搜集了一些教程,准备先实验一个vulnstack靶机,熟悉一下内网渗透操作再学习基础知识. 靶场下载地址:http://vulnstack.q ...
- 1016 部分A+B (15 分)
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA.例如:给定 8,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 ...
- SpringMVC 自定义类型转换
类型转换可以将请求参数转换为指定的类型.指定的格式(数据的格式化),然后传给业务方法的参数. Spring MVC内置了常用的类型转换器.如果内置的类型转换器满足不了需求,可以使用自定义的类型转换. ...
- 「Luogu4556」Vani有约会-雨天的尾巴
「Luogu4556」Vani有约会-雨天的尾巴 传送门 很显然可以考虑树上差分+桶,每次更新一条链就是把这条链上的点在桶对应位置打上 \(1\) 的标记, 最后对每个点取桶中非零值的位置作为答案即可 ...