关于uboot的简介——uboot常用的命令

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

linux终端设计有3种缓冲机制:无缓冲、行缓冲、全缓冲。

uboot提供类似linux终端的行缓冲命令行。当我们向终端命令行输入命令的时候,这些命令没有立即被系统识别,而是被缓冲到一个缓存区(也就是系统认为我们还没有输入完),当我们按下回车键(换行)后系统就认为我们输入完了,然后将缓冲区中所有刚才输入的作为命令拿去分析处理。

uboot的命令中,有些命令有简化后的别名,比如printenv命令可以简化为print;有些命令会带参数;有些命令带的参数非常长,此时可以使用单引号把参数引起来;有些命令是命令族,即好多个命令,它们的开头都使用同一个命令关键字,但是后面的参数不一样,完成的功能也不同,但往往有极大的关联,比如movi族,都和moviNand(EMMC、iNand)操作有关。

以下是uboot控制台下常用的命令。

printenv/print

print命令不用带参数,作用是打印出系统中所有的环境变量。

环境变量就好像程序的全局变量一样。程序中任何地方都可以根据需要去调用或者更改环境变量(一般都是调用),环境变量和全局变量不同之处在于:全局变量的生命周期是在程序的一次运行当中,开始运行时诞生程序结束时死亡,下次运行程序时从头开始;但是环境变量被存储在Flash的另一块专门区域(Flash上有一个环境变量分区),一旦我们在程序中保存了该环境变量,那么下次开机时该环境变量的值将维持上一次更改保存后的值。

setenv/set

setenv/set命令用于设置(添加/更改)环境变量。用法是“set name value”。

saveenv/save

saveenv/save命令用于保存环境变量。

saveenv/save命令不带参数,直接执行,作用是将内存中的环境变量的值同步保存到Flash中环境变量的分区。注意,环境变量的保存是整体的覆盖保存,也就是说内存中所有的环境变量都会整体的将Flash中环境变量分区中原来的内容整体覆盖。

更改环境变量的值需要两步:第一步set命令来更改内存中的环境变量,第二步用save命令将其同步到Flash中环境变量的分区。

ping

ping命令用于网络测试,用法是“ping ip地址”。

tftp

tftp命令用于下载。

uboot将镜像从主机(windows或者虚拟机ubuntu)下载到开发板的主流方式是fastboot和tftp。fastboot方式通过USB线进行数据传输,是近些年才发展的;tftp方式通过有线网络进行数据传输,是很传统与典型的方式。

使用tftp方式下载时,uboot扮演的是tftp客户端,主机windows或虚拟机ubuntu扮演tftp服务器。我们把被下载的镜像文件放在服务器的下载目录中,然后在开发板uboot的控制台下使用tftp命令下载即可。

在虚拟机中设置tftp下载目录是/tftpboot,把被下载的镜像复制到这个目录下。检查uboot的环境变量是否设置合适,是否能ping通虚拟机,然后使用指令“tftp 0x30000000 zImage-qt”进行下载。这指令表示将tftp服务器上名为zImage-qt的文件下载到开发板内存的0x30000000地址处。

镜像下载到开发板的DDR中后,uboot就可以用movi指令进行镜像的烧写了。

nfs

nfs命令用于启动内核。

movi

movie命令用于操作SD卡或者iNand。

开发板如果用SD卡/EMMC/iNand等作为Flash,则在uboot中操作flash的指令为movi(或mmc)。movi指令是一个命令集,有很多子命令,具体用法可以help movi查看。

movi的指令都是movi read和movi write一组的。movi read用来读取iNand到DDR上,movi write用来将DDR中的内容写入iNand中。这些命令涉及两个硬件,即iNand和DDR内存。

movi read  {u-boot | kernel} {addr}   

  • 这个命令使用了一种通用型的描述方法来描述。movi和read外面没有任何标记,说明它必选的。大括号{}表示大括号里的内容必选其一,竖线表示多选一。中括号[]表示可选参数(可以有也可以没有)。
  • 比如movi read u-boot 0x30000000,意思是把iNand中的u-boot分区读出到DDR的0x30000000起始的位置处。
  • uboot代码中将iNand分成很多个分区,每个分区有地址范围和分区名,uboot程序操作中可以使用直接地址来操作iNand分区,也可以使用分区名来操作分区。
  • 0x30000000也可以直接写作30000000,因为uboot的命令行中所有数字都被默认当作十六进制处理。

nand

nand命令用于操作NandFlash。理解方法和操作方法完全类似于movi指令。

mm、mw、md

这些命令都是用来操作内存的。

md就是memory display,用来显示内存中的内容。

mw就是memory write,将内容写到内存中。

mm就是memory modify,修改内存中的某一块,其实还是写内存,适合于批量地修改内存。

DDR是没有分区的(只听说过对Flash进行分区,没听说过对内存进行分区),因此使用内存时要注意,不能越界覆盖数据。

uboot不像操作系统那样,由系统来负责内存的分配和管理,从而保证内存不会随便越界。uboot并不管理所有内存,内存是随便用的,如果不注意就可能出现越界而导致数据覆盖。

bootm、go

这两个命令都可以用来启动内核。

uboot的终极目标就是启动内核,启动内核在uboot中表现为一个指令,在uboot控制台中使用这两个命令之一就会启动内核(不管成功与否,所以这个指令是一条死路)。

这两个命令的区别是,bootm启动内核时会给内核传参,而go命令启动内核时不传参。

其实bootm才是正宗的启动内核的命令,一般情况下都用这个。

go命令不是专为启动内核而设计的,它的实质就是PC直接跳转到一个内存地址去运行。在uboot控制台下,可以使用go命令执行任何的裸机程序(调试裸机程序的方法之一,就是事先启动uboot,然后在uboot中下载裸机程序,然后用go命令去执行裸机程序)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站分析

网网站分析(Web Analytics) 是种网站访客行为的研究。于商务应用背景来说,网站分析特别指的是来自某网站搜集来的资料之使用,以决定网站布局是否符合商业目标;例如,哪个登陆页面(landing page)比较容易刺激顾客购买欲。这些搜集来…

关于uboot的简介——uboot常见的环境变量

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 如何理解环境变量呢?环境变量就好像程序的全局变量一样。程序中任何地方都可以根据需要去调用或者更改环境变量(一般都是调用),环境变量和全局变量不同…

奋战杭电ACM(DAY9)1013

Digital Roots #include <iostream> #include <string> using namespace std;int main() {string s;//溢出神烦哈&#xff01;int m,n,i;while(cin >> s){ m0;if(s[0]0) break;for(i0; s[i]!\0; i)ms[i]-0;//转换为int&#xff0c;巧妙&#xff01;n ((m%…

工作两个月的感受随笔

转眼之间&#xff0c;已经离毕业三个月了&#xff0c;在格力凌达工作了近两个月&#xff0c;在这边的主要感受有&#xff1a;两不会&#xff1a;这也不会&#xff0c;那也不会。经过两个月的工作&#xff0c;学习&#xff0c;努力的学习WMS&#xff0c;MES&#xff0c;GW等系统…

BZOJ 1827: [Usaco2010 Mar]gather 奶牛大集会 树形DP

[Usaco2010 Mar]gather 奶牛大集会 Bessie正在计划一年一度的奶牛大集会&#xff0c;来自全国各地的奶牛将来参加这一次集会。当然&#xff0c;她会选择最方便的地点来举办这次集会。每个奶牛居住在 N(1<N<100,000) 个农场中的一个&#xff0c;这些农场由N-1条道路连接&a…

关于uboot的简介——uboot对Flash与DDR的管理

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、uboot阶段对Flash的分区 所谓分区&#xff0c;即对存储设备进行分块管理。 PC机等产品中&#xff0c;整个硬盘由操作系统统一管理&#xff0c;其使用文件系统帮我们管理硬盘空间&#xff0c;从而…

EF部署

2019独角兽企业重金招聘Python工程师标准>>> 部署 当应用程序使用EF后&#xff0c;可以通过Visual Studio来进行部署&#xff0c;即将数据库部署到真实环境中&#xff0c;可以作为正式上线使用环境。在进行部署前&#xff0c;我们也需要先做一些先前准备工作&#x…

1837Balance

看了题解的&#xff0c;有个高手跟我说这道题目要用到dp统计&#xff0c;把原点偏移&#xff0c;即把不能表示的部分移到能够表示的区域。这个想法可能是用在-7500那里 我的一开始的想法是dp[i][j] 其中i表示i码&#xff0c;j表示j钩&#xff0c;dp表示是否平衡&#xff0c;但…

uboot源码——根目录下的Makefile文件分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 uboot来源于uboot官网&#xff0c;或者SoC官方&#xff08;研发s5pv210这款芯片的公司推出的开发板叫SMDKV210&#xff09;&#xff0c;或者具体开发板的官方&#xff08;深圳市九鼎科技公司推出的…

linux(虚拟机中)与windows共享文件两种方法

Windows 下用 SourceInsight 与 Linux 协作编码习惯了用SourceInsight 读写代码&#xff0c;在Linux下一时没找到类似的工具&#xff0c;vi的操作也不熟&#xff0c;偶尔看看或小改动代码还行&#xff0c;项目一大就感觉就力不从心了&#xff1b;所以还是准备采用Windows下进行…

资源共享型智能指针实现方式

【1】资源共享型智能指针实现方式简述 资源共享型的智能指针有两种实现方式&#xff1a;一种是侵入式&#xff1b;一种是非侵入式。 网上以及书籍比较常见的是非侵入式的&#xff0c;它的实现完全放在智能指针模板类内。 模板类有一个用于保存资源类对象的指针变量和一个用于记…

uboot源码——根目录下的mkconfig文件分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、/mkconfig脚本概览 在uboot的根目录下执行“make x210_sd_config”进行配置时&#xff0c;x210_sd_config是目标。在主Makefile中2589行有如下代码。 x210_sd_config : unconfig$(MKCONFIG) …

springside 参考地址

2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/wind520/article/details/8917944 http://blog.chinaunix.net/uid-122937-id-3935052.html 转载于:https://my.oschina.net/china008/blog/330265

虚拟机下安装vmtool

Ubuntu 12.04下安装VMware Tools 安装前准备&#xff1a; 1、一定要先安装 build-essential 软件,否则不能够顺利安装 命令&#xff1a;sudo apt-get install build-essential 2、要安装linux-headers 包&#xff0c;这个包要在配置VMware-tools之前装&#xff0c;即可…

linux实例 批量修改图片文件名

1、如10.11一批这样的目录&#xff0c;10.11 10.12等等 然后里面的图片.jpg文件要修改成对应的日期.jpg&#xff0c;也就是说 编程1011.jpg这样的文件名 示例如下&#xff1a; #!/bin/bashfor filename in lsdoecho $filenamecd $filenamefile1${filename%%.*}file2${filename…

uboot源码——根目录下的config.mk文件分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 1、设置各种路径 ifneq ($(OBJTREE),$(SRCTREE)) ifeq ($(CURDIR),$(SRCTREE)) dir : else dir : $(subst $(SRCTREE)/,,$(CURDIR)) endifobj : $(if $(dir),$(OBJTREE)/$(dir)/,$(OBJTREE)/) src …

Asp.Net中using的使用的方法(转)

摘自&#xff1a;http://blog.sina.com.cn/s/blog_6aa9c73801018ggw.html 一、强制资源整理&#xff08;实用性非常强&#xff0c;希望大家多多使用&#xff0c;比try-catch-finaly效率高、好用&#xff09;用途&#xff1a;整理非托管资源&#xff0c;不受GC控制的资源。using…

android系统特效详解和修改方法

安卓系统特效相关文件&#xff1a; 存在于&#xff1a;framework-res.apk 反编译后的\framework-res\res\anim文件夹内&#xff01;anim文件夹下所有的文件都是特效文件原理 反编译framework-res.apk 替换anim文件夹下的文件达到修改特效的目的&#xff01;然后再重建frame…

认识伪类元素:before和:after

起因于不理解下图点的写法&#xff0c;后来发现是个很基础的东西 运用了伪类元素:before&#xff0c;如下 注意&#xff0c;他的css写法也是非常简洁高效的。 查阅了些关于伪类before和after的知识帮助理解&#xff0c;以下摘自&#xff1a;http://www.hulufei.com/post/about-…

uboot源码——内核启动分析

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 一、uboot作用简介 uboot的主要作用是用来启动linux内核。 CPU不能直接从块设备中执行代码&#xff0c;因此需要把块设备中的程序复制到内存中&#xff0c;而复制之前还需要进行很多初始化工作&…