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前传的更多相关文章

  1. Vue.js 入门指南之“前传”(含sublime text 3 配置)

    题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...

  2. 博弈论(Game Theory) - 01 - 前传之占优战略均衡

    博弈论(Game Theory) - 01 - 前传之占优战略均衡 开始 我们现在准备攀爬博弈论的几座高峰. 我们先看看在纳什均衡产生之前,博弈论的发展情况. 我们的第一座高峰是占优战略均衡. 囚徒困 ...

  3. 博弈论(Game Theory) - 02 - 前传之重复剔除严格劣战略的占优战略均衡

    博弈论(Game Theory) - 02 - 前传之重复剔除严格劣战略的占优战略均衡 开始 "重复剔除劣战略的严格占优战略均衡"(iterated dominance equil ...

  4. 博弈论(Game Theory) - 03 - 前传之最大最小均衡

    博弈论(Game Theory) - 03 - 前传之最大最小均衡 开始 最大最小均衡是由人冯·诺依曼和摩根斯坦提出.冯·诺依曼和摩根斯坦也被认为是博弈论的创始人. 冯·诺依曼提出的"最大最 ...

  5. 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)

    根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ...

  6. Android-自定义View前传-View的三大流程-Layout

    Android-自定义View前传-View的三大流程-Layout 参考 <Android开发艺术探索> https://github.com/hongyangAndroid/FlowL ...

  7. Android自定义View前传-View的三大流程-Measure

    Android自定义View前传-View的三大流程-Measure 参考 <Android开发艺术探索> https://developer.android.google.cn/refe ...

  8. (转)Groupon前传:从10个月的失败作品修改,1个月找到成功 并不挶泥在这个点子上面,它反而往后站一步,看看他们已经做好的这个网站,可以再怎么包装成另一个完完全全不同的网站?所有的人所做的每件失败的事情中, 一定有碰到或含有成功的答案」在里面,只是他们不知道而已。 人不怕失败」,只怕宣布失败」

    (转)Groupon前传:从10个月的失败作品修改,1个月找到成功 今天读到 一个非常励志人心的故事 ,就像现在「叶问」有「前传」,最近很火红的团集购网站Groupon 也出现了「Groupon前传」 ...

  9. SpringMVC深度探险(一) —— SpringMVC前传

    在我们熟知的建立在三层结构(表示层.业务逻辑层.持久层)基础之上的J2EE应用程序开发之中,表示层的解决方案最多.因为在表示层自身的知识触角很多,需要解决的问题也不少,这也就难免造成与之对应的解决方案 ...

随机推荐

  1. vue父孙组件传值($attr及$listeners)的使用

    父组件 <template> <div> <!-- 将值传给子组件 子组件可以获取自己想要的值 也可以忽视掉需要传给孙子组件的值 --> <!-- 同时获取通 ...

  2. 并发编程之GIL

    目录 GIL 什么是GIL锁 为什么需要加锁 带来的问题 如何解决 关于性能的讨论 计算密集型任务:进程执行更快 IO密集型:线程执行更快 自定义锁与GIL的区别 GIL 什么是GIL锁 官方解释: ...

  3. 最简单、最常用的一些Git命令

    ---------------------------------------------------------------------------------------------------- ...

  4. exp之shellcode的理解

    原题请见 https://www.jarvisoj.com/challenges from pwn import * io = remote("pwn2.jarvisoj.com" ...

  5. java 实现图片上传功能

    1:jsp 页面上传图片按钮在这里我就写相关的代码 <div class="control-group"> <label class="control- ...

  6. nodeJS - 定义全局变量

    定义 : global.变量名=‘xxxx’; 取出 :    global.变量名

  7. 刷题56. Merge Intervals

    一.题目说明 题目是56. Merge Intervals,给定一列区间的集合,归并重叠区域. 二.我的做法 这个题目不难,先对intervals排序,然后取下一个集合,如果cur[0]>res ...

  8. 最新获取SkyDrive音乐外链mp3地址方法20131003

    最新获取SkyDrive音乐外链方法20131003在文章底部更新,欢迎使用! 这已经是第三次写获取SkyDrive音乐外链mp3地址方法的文章了,因为第一次.第二次都失效了.三篇文章都有个共同点,都 ...

  9. [Linux] day06——文档管理

    文档管理===================mkdir 创建目录 -p /路径/目录名  (父路径不存在 -p) ---------------------------------------  t ...

  10. layer open type值类型

    参考:http://layer.layui.com/api.html layer提供了5种层类型: 0:信息框,默认 1:页面层 2:iframe层 3:加载层 4:tips层