广东快3>WIKI库>学习嵌入式>嵌入式Uboot环境变量

嵌入式Uboot环境变量



Uboot环境变量使用


广东快3在我们完成PC开发板环境搭建课程的学习过后,应该说我们移植的前三个步骤就基本完成了。那么剩下的事情就是开始编译三大子系统然后进行相关的测试。当然这个测试其实也是在测试前三个步骤中,我们目标和主机数据通道是否是正常建立,以及我们之前配置的IP地址等信息是否正确,所以说下一个步骤,我们就来看看是如何把整个系统移植移植到我们的板子,也就是让我们的板子跑起整个系统。


当然这一次课程的安排,我们简单的说一下第一章探寻系统移植的世界,我们不会给大家介绍如何编译三大子系统。我们相当于是把后面我们编译好的子系统先提供给大家,然后我们把这三大子系统在我的开发板上逐一验证以及看一下三大子系统的衔接关系是如何的,也就是说让大家对于三大子系统在系统运行过程中有一个整体的思路。


广东快3以上就是我们的基本想法,下面我们就来看一下我系统移植的第一个步骤该干什么?


那么我们说肯定是我们开发板上运行的第一个程序,那么第一个程序,其实我们在arm中也提到过。叫做BootLoader的这样一个子功能,只是说在Linux系统移植中我们这个BootLoader现在给大家学习的一个软件叫uboot,那么这个地方我已经给大家提供出来叫“tiny210-uboot.bin”的文件如下图:


uboot1.png


如图,这个文件当然是个二进制文件,二进制文件大家通过我们的SD卡或者是USB线这些工具去想办法烧写到flash里面。


这样就保证了我们上电过后先运行的是“tiny210-uboot.bin”就可以了。那么怎么样子我们这个程序“tiny210-uboot.bin”是否烧写成功或者是是否正确。


那当然了,我在这个程序中也做了一些打印信息也就是说我们会做一些相互的交互信息,那我们如果看到这样的交互信息,说明我们现在的开发板就运行了这样一个程序。


现在回到我们的问题,如何来看我们开发板的一些输出信息,也就说我们标准输出和标准出错的信息给我们。回到我们之前的内容中,我们说过这个串口很显然,就是作为开发板的一个展示窗口,就是把板子也很多标准输出和标准错误的信息我们通过串口就可以发送到我们的PC端。所以这样的话我们一般在PC中需要配置一个串口的接收者。


那么这个串口的怎么配置一般情况下你的电脑是有串口的然后直接把线接上去就可以。如果说电脑没有串口的同学可能就要注意一下,我们需要使用一个USB转串口的一个转接器去把我们的PC中模拟一个串口。


那下面我们先说一下,这个串口在实际开发中是如何配置的。


广东快3首先第一步就是把设备管理器打开:


uboot2.png


广东快3如图,设备管理器打开后,如果说我们串口已经安装好,我们就会在设备管理器中的端口下方看到一个COM5如图片上。因为每个人的机器也不是我这个是COM5所以说记住就可以。也就是说,我们的电脑实际上现在有一个叫COM5的东西专门作为我们的接收。


广东快3而我们的PC可以像这样来理解:


uboot3.png


广东快3如图,相当于我们的PC中(图中右侧的大四边形。)有这么一个口子(图中右侧的大四边形上的圆圈)而这个口子的名字叫COM5,那么现在我们说我们的开发板(回左侧的正方形)其实也有一个口子(正方形下方的圆圈)那么我们开发板默认的uboot上把这个口子称为COM0。那么就把这个COM0作为我们的标准输出,所以说,我们就通过线把COM0和COM5连接在一起。


那么很显然,我们写关于开发板的程序是向COM0去发,但是我们的PC自然而然不能从COM0去取,因为PC是从COM5上去取,因为我们的线只是把它们连上而已,所以说我们后面就可以在PC上运行一款叫做终端的软件(如果右侧四边形上的正方形。),那我这个终端软件相当于从COM5上取,所以我们只需要把这个软件取数据的源配制成COM5口,那注意这个COM5跟COM0是两码事,也就是说,板子上叫做COM5和终端叫COM5是两回事,因为PC只关心PC的数据源从哪儿来。


广东快3至于怎么配,我们稍微快速的在看一下,我们有一个connect的软件,这个软件件大家应该都非常熟悉了。


uboot4.png


广东快3如图,在这我们可以新建,我已经新建好了我们直接看一下这个选项,串口还是一样我们这个uboot设计的跟arm是一样的,也是按照115200来设计的,所以说我们只需要点击ok然后点connect就可以。


广东快3这个时候因为我板子还没上电所以很显然这个时候的串口是没有任何数据来显示的,下面我们来上电试一下,当我们看到这个车的帅哥就有信息了。因为我这个uboot它本身里面就有一些东西,所以你就会发现它马上开始进入所谓的倒计时。


uboot5.png


如图,这个时候你也会发现一个新的现象,就是我们把网线接好过后那个网卡的灯也亮了。这个时候你的开发板和PC之间就是网线的物理层已经通了。


那么我们现在先简单说一下uboot是什么,因为uboot应该也算是在开源世界或者说嵌入式和linux系统中一个非常重要的软件。


Uboot其实就是bootloader的一个子功能,或者说是子软件而已。就跟我们在windows上聊天,可能第一个想的就是QQ,当然我们还有其他的一些,包括MSN,阿里旺旺都可以作为聊天软件。


所以Uboot其实就是bootloader的一个软件而已。只是uboot这个软件做得非常好所以太出名了。所以说很多在初学嵌入式的时候都会把这个软件作为我们的一个标杆,然后我们去学习它就可以。当然uboot里面的代码确实写的比较不错,在后面我们学习uboot的时候我们在看一下。


所以还是一样因为uboot是一个软件所以我们第一步要学会使用它,在我们刚刚开启的时候它有个倒计时功能而现在已经没有倒计时了,我们点击任意键把倒计时去掉。但是注意在“Smart210v”不是Linux所以敲ls是没有用的,它这里面支持的命令只是uboot已经集成的命令。


uboot6.png


如图,那么想看你这款uboot支持什么命令最简单的方法就是输入问号,然后点击回车键,你会发现uboot里面的信息量非常的大,也就是说很多命令都支持。所以说为什么我们选择uboot的原因也在这,就是说uboot现有已经很成熟了,它很多命令就是说我们不需要在从头到尾的开发,我们直接拿来用就可以。向我们之前在arm中讲的就不行,在arm中讲的ubootloader功能非常单一,可能写了一个“hello world”或者点了几个灯或者做了些其他事情而已,所以说相对而言比较单一的功能,而uboot的功能就比较复杂了,它包括网卡等这些驱动它都可能已经集成好了,我们只需要进行一定的修改。


广东快3所以uboot也是一个比较重要的开源软件项目。


下面我们对于初学系统移植的时候,我们对于uboot先要掌握怎么去使用,然后后面我们在说uboot是怎么编的或者是怎么改的,然后我们先看uboot,我们想要学习uboot就学它的命令就可以了,就跟我们学习shear是一样的,只有知道一些常用命令就可以了。


广东快3然后我们先看第一个命令叫做print,这个print我们可以缩写就叫pri当然如果不想偷懒也可以写print,点击回车后:


uboot7.png


如图,这个时候大家可以看到这个print一回车过后也会打印一堆东西,而这堆东西大家一定要注意,这堆东西不是我们所说的hello world,而是打印我们这款uboot中已经集成好的环境变量,而什么叫做环境变量,就相当于这个uboot要想工作,它本身是需要一些变量或者是一些目录进行相应的处理的,比如说像刚才我们的倒计时其实在图中第八行就可以看到,如果我们可以把这个变量从3改成10或者是从10改成3,你就会发现可能你的倒计时就从10秒或3秒开始倒,因为uboot根据环境变量中的不同的值做不同的东西。


广东快3所以说我们的print这个地方就是“查看uboot这个软件的环境变量”,这就是print的主要功能说到变量,要知道他在uboot中有一个非常重要的格式“变量名=变量值”这还是比较好记的,那么接下来我们这个print主要目的就是为了看,没有什么其他的方向。


下面变量的改法就是靠 setenv ,这个名字也很好记就是设置环境变量的意思。当然后面这个单词saveenv明显就是保存它,那么什么叫做保存什么叫做设置我们先看一下setenv 它的用法比较多,有很多种做法。


第一种做法就是setenv后面跟一个变量名,比如说是abc “setenv abc 100 200”这个跟shear不一样,Shear中你说等号而这个地方的第一个等号实际上是没有的,就是说你变量叫什么名字就是直接空格后面跟的就是你的变量名。比如是“setenv abc 100 200”这个时候就相当于把100 200这个字符串付给abc,这个就要注意第一个是我们的变量名(abc)后面的都是变量值。


广东快3然后大家可以来试一下:


uboot8.png


如图,输入后你发现没有反应但其实就是对的,一般在我们Linux中,没有反应就是最好的反应。点击回车键后:


uboot9.png


如图,我们可以看到abc后面等号出来了(abc=100 200)所以这就是我们变量的一个问题。


接下来我们再来看“setenv abc 100 200”给他起个名字叫“设置 添加一个变量值”当然这个命令还可以变,比如说“setenv abc”一个已经有的变量。


uboot90.png


如图,输入“setenv bootdelay 10”就是刚才的那个值,如果我输入它等于10然后点击回车键,bootdelay就等于10了。所以setenv 也比较好记它既可以设置 添加一个变量值也可以修改一个已有变量。


广东快3所以这是setenv 一个比较典型的使用方法。然后还有一个方法就比如setenv abc后我什么都不跟:


uboot91.png


如图,如果输入“setenv abc”点击回车就找不到abc,所以我们就可以把setenv abc叫做删除这个变量,所以说uboot这个软件对于环境变量的操作中我们就可以记住其实就两个入口一个是看一个是改。看就是print改就包括添、删也就是setenv来做的。


广东快3以上就是我们要记住的比较常用的选项,记住这两个命令都是uboot的事情跟shear和Linux都没关系。



【本文由麦子学院独家原创,转载请注明出处并保留原文链接】

分享到:

目录