您现在的位置是:首页» windows系统» linux开发中必学的命令,linux常用命令reboot

linux开发中必学的命令,linux常用命令reboot

2024-07-13 13:35:18
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。uboot的通用命令1.a与Linux相似的终端行缓冲命令行线缓冲意味着:当我们输入命令到终端命令行时,这些指令不会立即被系

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

uboot的通用命令

1.a与Linux相似的终端 行缓冲命令行

线缓冲意味着:当我们输入命令到终端命令行时,这些指令不会立即被系统识别,相反,它被缓存(即系统认为我们还没有进入它),当我们按下返回键时,系统认为我们已经完成输入,然后将缓冲区的所有输入作为分析和处理的命令.

在Linux端口设计中,有三个类型的缓冲机制:没有缓冲,线性缓冲,完全缓冲

一些命令具有简化异名,例如 printenv命令可以简化为 print,例如 setenv可以简化为 set

(4)有些命令有参数(注意格式是固定的),每个boot命令都有预定义的格式。有些命令没有参数。例如, printenv/print命令;有些命令有可选参数(可以拖动或不拖动,当然,执行结果是没有参数的,有些命令有必要的参数(例如setenv/set命令)。

(5)使用"help+command name"查询命令的细节,只在输入帮助时打印命令列表。

1.命令中的特殊符号(例如单个引用)

(1)一些uboot命令条的参数非常长,为了告诉uboot一个非常长且有大量中间空间的参数是他的整个参数,一个单个参数被用来引起一个非常长且有中间空间的参数。

其他符号也可能存在,并具有特殊意义。当您遇到在boot命令行中的一个特殊符号时,请小心不要弄错,但要有一个特殊意义。

1.有些命令是命令的家族(例如movi)

(1)命令家族意味着许多命令都以相同的命令键开始,但后面的参数是不同的,这些命令的函数和功能是不同的。

(2)同一指令家族的所有命令都高度相关,例如从movi开始的命令与moviNand(EMMC,iNand)操作有关。

1.第一项命令: printenv/print

(1)打印命令没有参数,该函数是打印系统中的所有环境变量。

(2)环境变量就像程序的全球变量。在程序中的任何地方都可以根据需要调用或更改环境变量(通常是所有调用),环境变量和全球变量之间的区别是:一个全球变量的生命周期是在一个程序运行期间,出生计划结束时死亡,开始运行时死亡,程序的下一个运行从开始开始开始;但环境变量存储在Flash的另一个专门区域(Flash有一个环境变量区),一旦我们在程序中保存了环境变量,然后,环境变量的值将与下一次启动时为最后更改保存的值保持一致。

Uboot的通用指令2

2.1,设置(添加/更改)环境变量: setenv/set

使用:设置名称值

2.2.保存环境变量的变化: saveenv/save

saveenv/save命令没有参数,直接执行,该函数是将内存环境变量值同步到Flash中的环境变量段。注:环境变量的保存是整体覆盖物的保存,这意味着所有内存的环境变量将被整个覆盖,在Flash中将环境变量的原始内容分开。

摘要:要完全改变环境变量的值,需要两个步骤:

第一步: 设置命令以更改内存环境变量

第二步: 将它与保存命令同步到Flash中的环境变量的一个分区 。

有时我们只是想测试这个环境变量而不影响下一个启动,所以我们只是设置未保存,这样当前运行的启动会在设置后被激活,下一个启动会恢复到原来的状态,而不保存。

2.网络测试指南:针 g

(1)说明使用: ping IP地址

注意: ping是测试开发板与主机之间的网络连接。请注意以下步骤:

1)首先插入互联网线路。

请注意,线路网络卡的地址设置在Windows(设置本地连接)中。设置主机窗口的本地连接IPv4地址为

步骤3确认在开发板上启动中的几个与网络有关的环境变量值是错误的。最重要的是,ipaddr(这个环境变量代表当前开发板的IP地址),它必须与主机窗口的IP地址在同一网络段。

网络分段的概念:IP地址分为两个部分,一部分是网段地址,另一个部分是网络段中的主机地址(分层网 masking以区分哪个部分是网络段地址,该部分是IP地址。如果子网是加密的,本IP地址(192).1.)的头三个部分属于网络分段地址,第4(10)部分属于主机地址。

开发板和主机 ping连接器

3.1,开发板运行Linux和主机Windows pings

(1)首先将开发板刷转换为Linux+QT镜子(见裸机刷 Tutorial第3节),然后启动到Linux命令行端口。

(2)在Linux下使用 ifconfig命令将Linux系统在开发板上的IP地址设置到与主机窗口相同的网络段(为类的方便,之后修正:主机窗口地址,开发委员会的地址:boot或Linux,虚拟机ubuntu地址(为)

(三)在这个点,开发板最终会 ping 窗口。

(4)在窗口中的 ping 开发板也是可能的。

注意:首先,开发板和主机的网络硬件良好,网络连接良好,主机窗口的网络软件设置良好。

3.开发板在虚拟机上运行Linux和Ubuntu的 ping通

虚拟机的网络卡设置可以通过多种方式配置, 最常见的是NAT和桥接.

(2)虚拟机和开发板只能通过桥梁通过网络进行通信。

(三)如想由平通开发虚拟机,请设置以下步骤:

步骤1:虚拟机设置为桥梁。

步骤2:虚拟机菜单中有一个虚拟网络编辑器。这个是为桥梁接收一个有线网络卡而设置的. (默认是自动的,自动化通常影响 ping 。因为计算机现在一般有两个网络卡:一个有线和一个无线。 如果选了自动,因此虚拟机会自动连接到无线网络卡,但是我们通过一个有线网络卡连接到开发板上,自然ping不通)

步骤3:在虚拟机器ubuntu中设置IP地址(可以通过/etc/network/interfaces文件设置静态,然后重新启动;也可以直接设置命令行 ifconfig)

这时开发版的虚拟机器ubuntu应该运行.

(5)在虚拟机器ubuntu中的 ping 开发板也是目前可能的。

3.3,开发板在boot和主机Windows pinging下运行

当开发板运行Linux时,主机窗口和虚拟机ubuntu被拨号,表明硬件和连接以及主机设置是正确的。

(2)在此点,开发板重新启动boot,设置ipaddr, gatewayip,然后进入png窗口查明它是否不正常。

(3)然后在同样的案例中尝试拨打虚拟机ubuntu,理论分析不应该有效,事实上发现它有效。

3.开发板在uboot下运行,并 ping到虚拟机ubuntu上

uboot和虚拟机ubuntu互相拨号(前提是虚拟机ubuntu设置为桥,桥接收有线网络卡,IP地址设置正确)

结论:在开发板上运行的uboot是一个小错误, Ping窗口不正常, Ping虚拟机ubuntu不正常。

uboot常规命令3

4.下载tftp的指令:tftp

(1)boot本身的主要目标是启动内核,为了完成内核的初始化,必须能够部署内核,为了部署内核,boot需要从主机下载内核镜子,然后将其烧成本地闪光。如何启动从主机(窗口或虚拟机ubuntu)下载镜子到开发板? 有很多种方式,主要方法是:快速启动和tftp。

快速启动方法是通过USB线传输数据.

tftp的实现方式是通过一个有线网络。一个典型的方式是通过网络。

(二)在Tftp模式下下载时, uboot实际上扮演Tftp客户端程序的角色,在主窗口或虚拟ubuntu中必须有一个tftp服务器,然后您要下载的镜像文件将放在服务器的下载目录中,然后使用开发板上的uboot tftp命令下载它。

有些人习惯于在窗口中建立Tftp服务器,它通常由一些软件(例如tftpd32,一些人习惯于在Linux下建立tftp服务器,你可以在磁盘上的虚拟机下载目录中参阅教程「集成开发环境建设-基于14」这包含了一个关于如何在ubuntu建立一个tftp服务器的教程,你也可以尝试自己搜索教程。如果你直接使用我的虚拟机,那就已经搭建好了,不要再创建它;如果它是新的,那将是一个参考文档构建;如果它与我的版本不同,则构建过程可能不同)

(4)在虚拟机构建时设置的tftp下载目录是/tftpboot,下载的镜子将被复制到这个目录中。

(5)检查开发板上boot的环境变量,注意 serverip必须设置到虚拟机ubuntu的ip地址。 (serverip指主机tftp服务器的ip地址)

(六)然后在开发板的boot下先 ping一下虚拟机ubuntu,然后尝试下载: tftp 0x300 zImage-qt(即,在服务器上下载zImage-qt的文件到开发板内存储器的0x300地址。 )

(7)在图像被下载到开发板的DDR后,uboot可以用movi命令烧掉图像。

注意:

如果您在窗口下使用tftp服务器,uboot serverip将设置在窗口下与windwos serverip相同的IP地址(在窗口下设置tftp服务器软件时的一个步骤是允许您设置服务器的IP地址,这个ip地址和主机窗口必须在一个行。

Uboot的通用指令

5.1,SD卡/iN及操作指示

(1)开发板使用SD卡/EMMC/iN和Flash,boot中运行Flash的命令是movi(或mmc)

(2) movi命令是一个包含许多子命令的命令集,具体使用可以帮助movi查看它们。

莫维命令是莫维阅读和莫维写的集合,movi读取用于读取iN和 DDR,Movi write是用于在DDR中写入iNand的内容。理解这些指令需要注意两个有关的硬件:iNand和 DDR内存。

(4)movi read {u-boot | kernel} {addr} 这个命令使用通用描述方法来描述: 没有在movi 之外的标签,表示每个使用这个命令是可选的; bracket {} 的一个部分是可选的; bracket 中的垂直表是可选的; middle bracket [] 表示一个可选参数

(五)手册有多种用途,例如, movi读取u-boot 0x300,这意味着在iN中读取u-boot分区到DDR的0x300启动位置。( uboot代码将iNand分成许多分区,每个分区都有其地址范围和分区名称,在boot程序操作中,您可以使用直接地址操作iNand分区,也可以使用分区名称来操作分区。注意,0x300也可以直接写在这里。所有boot命令行中的数字按默认处理为16位。无论你添加0x还是不加0x,都是一样的。

5.nandFlash操作指令

理解方法和操作方法完全类似于Movi指令

5.记忆操作说明:mm,mw,md

(1) DDR中没有分离(我只听说了硬盘和闪光分离,我没听说过记忆的分区。但使用记忆时要小心,你不能越过别人的边界。因为boot是一个裸体的计算机程序,与整个系统管理所有内存的操作系统不同,该系统负责分配和管理,系统将确保内存不会超出限度.然后在裸机程序上,boot不管理所有的内存,记忆是一个离散的工具,因此,如果程序员(使用uboot)不注意自己,那么他可能掩盖自己的数据。(所以你想知道为什么我们把 uboot放在23E00地址上)

(2)md是用于显示内存内容的内存显示器。

mw是写内容到记忆的内存书

修改存储器是修改存储器的一部分,无论是写还是写(如果需要修改每个批量存储器的单位,最好使用mm)

5.启动内核命令:bootm,go

(1)boot的最终目标是启动内核,内核在boot中被表示为命令,并且在boot命令行中调用将启动内核(因此这个命令是死线,不管成功还是失败)。

(2)差异:bootm启动内核并同时发送到内核,Go命令不会通过内核启动。bootm实际上是普通的启动内核命令,这是常用的;“去”命令不是专门用来启动内核的,内部的“去”命令实际上是一个函数指向存储地址,然后直接调用该函数。执行命令的本质是PC直接跳到一个运行的内存地址。该命令可以用于执行任何裸程序在boot中(有一个方法去调试裸程序是先启动boot,然后在boot中下载裸机程序,使用“去”命令执行裸机程序)

uboot1的通用环境变量

(英译汉)如何使环境变量参与程序的运行

(一)有两个环境变量,闪电中一个,另一份在DDR中。Uboot将从Flash到DDR的所有环境变量读取为启动时环境变量的初始值,然后在 DDR 中使用这个,用户可以使用saveenv命令在Flash中重写DDR中的环境变量来更新Flash中的环境变量。下次打开它, 你就会从Flash上读一遍.

(二)环境变量在boot中的字符串中被表示,即boot根据字符的匹配区分了各种环境变量。所以当使用时,请小心不要打错字。

1.自动运行计数时间:启动延迟

网络设置:ipaddr serverip

(1)ipaddr是开发局的本地IP地址

(2)serverip是developerboard通过tftp命令下载到tftp服务器时的tftp服务器的IP地址。

门户是开发局的本地门户地址

(四)网络面具是一个子网面具

(5)ethaddr是开发板上的本地网络卡的MAC地址。

Uboot的通用环境变量2

7.1.自动运行命令设置:bootcmd

(1)启动后自动计数启动延迟秒,如果没有人按重新启动按钮来中断启动,boot将自动执行启动命令启动内核。

当uboot启动器自动启动时,它实际上执行了一个与环境变量bootcmd的值相符的指令集: bootcmd=movi读取内核300800; bootm 300800

意思是: 读取iN的内核分区到 DDR内存的0x300800地址,并使用bootm从0x300800内存启动内核。

(3)设置 bootcmd printenv,然后 saveenv;然后重新启动,查看 printenv命令打印环境变量在重新启动后自动执行。

(4)设置 bootcmd环境变量:设置 bootcmd'movi读取内核300800; bootm 300800'

7.2,boot到内核:bootargs

(1)在Linux内核启动时,可以接收boot发送的启动参数,这些启动参数是uboot和内核商定的格式和内容,在这些启动参数的指导下,Linux内核完成启动过程。这种设计设计具有灵活性,内核可以以不同的方式启动,而不需重新编译。

(2)我们需要做的是:在boot环境变量中设置bootargs,bootm命令在启动内核时将自动传递bootargs到内核。

(3)环境变量

bootargs=console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3

意义解释:

console=ttySAC2,115200 控制面板使用串行端口2,频率为115200。

root=/dev/mmcblk0p2 rw root文件系统可以在SD卡端口0设备(iNand)的第二分区中读取和写入。

init=/linuxrc linux进程的路径1(init进程)

rootfstype=ext3 根文件系统类型是ext3

(4)核内部传输非常重要。在核移植过程中,新来者往往忘记将核传递给核,或者对核传递的参数不正确,导致核无法启动。

7.创建、修改和删除环境变量的方法

(一)使用set var值创建一个新的环境变量

(二)使用集合var值更改环境变量

(三)用setvar删除环境变量

注意:在环境变量完成后必须保存更改,否则将丢失下一个启动器的更改。

在boot中管理Flash和DDR

8.boot阶段闪光的分离

(1)所谓的分区是Flash中的块管理。

(二)在PC机器等产品中,因为每个人都在操作系统下使用硬盘,整个硬盘由操作系统管理。操作系统将使用文件系统来帮助我们管理磁盘空间。(管理确保文件不会重叠)因此用户不必对分区问题太担心。

在boot中没有操作系统,所以我们必须事先使用分区定义来管理Flash(相当于硬盘)(事实上,在boot和内核都有分区表,分区表是系统移植时Flash的整体管理分配方法. 有了这个界定后,当我们部署一个系统时,我们按照划分方法部署它,Uboot和内核软件也根据这个分区工作,就不会错。

(四)分离方法不确定,不固定,而且可以改变。然而,在移植中,必须在死亡前设计好,通常是在设计系统移植时做。标准是:

uboot: uboot必须从Flash启动地址开始储存(可能为0,也许是扇区1,也许是其他,取决于SOC的启动设计),uboot分区的大小必须确保 uboot一定被删除,一般设计为512KB或1MB(因为通常的boot绝对低于512KB,事实上,你也可以为那些更大的人工作。但是浪费);

环境变量:环境变量存储在通常连接到boot的分区中,其大小为32KB或以上。

内核:内核可以粘贴到环境变量存储器,通常是3MB或5MB以上。

rootfs: ······

其余部分是自由分区,通常在 kernel 启动时使用,并被上传到 rootfs

总 则 : 一般 规则 如下 :

每个分区是相互连接的,第一分区的结尾是第二分区的开始。

整个闪光从头到尾都充分利用它.

(三)boot必须在Flash上启动,其他分区的相对位置是变的。

(4)分区的大小由系统移植工程师自己决定,通常是适当的大小(不太小,不太小以容易溢出;不太大,不太多以浪费空间)

(五)在系统移植之前,要确定分区,在boot和内核中使用相同的分区表。在将来部署系统时,系统代码中的分区方法必须是相同的。

8.boot阶段 DDR的 विभाजन

(一) DDR 和 Flash 之间 的 区别 主要 是 因为 Flash 是 无价 的, DDR 是 无价 的, 所以 可以 说, 只有 当 系统 开始 部署 时 才 使用 DDR 。

存储区分主要是在Linux内核启动前进行的,在Linux内核启动后,内核的存储管理模块接管了整个存储空间,然后我们不需要处理它。

注意,对内存分区的关键是内存的哪个部分被用来分配好,为了避免使用相同的记忆来进行不同的功能,使彼此相互走动。例如,如果我们 tftp 0x23E00 zImage下载zImage到0x23E00的内存,它将是错误的,因为这个记忆实际上是uboot的镜子。这会使下载的zImage在内存中删除boot。

本文转载: (129个消息)为什么有uboot?_embedded Linux,博客-CSDN博客 https://blog.csdn.net/weiqifa0/article/details/102381430

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com