zl程序教程

您现在的位置是:首页 >  后端

当前栏目

U-Boot搭建tftp及命令基本操作(STM32ML157)

Boot命令 搭建 基本操作 tftp
2023-09-11 14:18:27 时间


前言

这里使用的是百问网的STM32MP157开发板,在开发板上电后,一直按空格键进入到U-Boot命令模式。如下
在这里插入图片描述


U-Boot常用命令

当我们不知道有哪些命令。可以通过?命令查看U-Boot支持的命令

在这里插入图片描述

print

可以缩写为pri
功能:打印U-Boot的环境变量
在这里插入图片描述

setenv

setenv abc 100 200 (abc=100 200)
功能:设置,添加一个变量值
修改一个变量值
setenv abc :表示删除abc这个变量

如下:

在这里插入图片描述重启后,abc变量会被删除,因为此时abc存储在RAM上。
在这里插入图片描述

saveenv

功能:保存设置的U-Boot的环境变量写到存储器中。(重启后不会被删除)

nand

功能:取决于第一个参数的设置
命令:

nand	[erase] [nandflash的内部地址] [搬移大小]   擦除nandflash上指定区域的内容(写0)
nand [write]   [内存地址] [nandflash的内部地址] [搬移大小]   将内存中的指定地址写到nandflash的指定区域
nand [read]   [内存地址] [nandflash的内部地址] [搬移大小]   将nandflash中的指定地址读到内存的指定区域
**注意:写之前,一定要先擦除**

示例:

nand中5M空间读到内存210000000 1K
5M=5x1M=0x500000
nand read 21000000 500000 1024

擦除: nand erase 500000 1024
写:nand 21000000 500000 1024

bootm

内核启动命令,只使用于uImage(uBoot)
命令:

bootm  [uImage内存地址]

go命令适用于其他的image,但是需要进行一些操作

内核启动条件

主要是对bootargs变量的值设置。
root=启动的根文件系统在那个设备,设备信息RAM,NFS,Flash
init进程
init=内核启动后,第一个可执行文件init进程从哪里来 linuxrc
console=内核启动时,使用那个设备作为控制台

tftp搭建及命令使用

U-Boot的网络设置

U-Boot的网络与ipaddr这个变量有关
在这里插入图片描述因此为了使得网络层,我们的PC和开发板能够通信,需要我们的两者的IP地址处于同一个网段中。

这里我的虚拟机的IP地址为
在这里插入图片描述
因此这里需要更改开发板的ipaddr(setenv,saveenv)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
互ping来验证,但是我们通常用开办版ping外面,因为U-Boot为了精简,没有设置当外面ping自己的时候,不会返回数据包

传输层验证 tftp命令

通过设置serverip来指定客户端的连接(UDP传输协议)
端口port是已经被程序写死了的

命令

tftp  [内存地址]  [设置tftp下载目录中的文件]

文件系统的烧写

ramdisk(多用于最终产品生成)

randisk:指的是内存磁盘。(将文件系统放在内存中)
内核参数设置
root=/dev/ram
initrd=0x21000000,8M(0x21000000表示froot的基地址,8M表示文件系统的大小)
init=/linuxrc
console=ttySAC0,115200

nfs(多用于开发测试)

服务端:
Windows安装nfs:sudo apt-cache search nfs- (进行搜索)
在这里插入图片描述
安装上面标红的nfs服务器

配置:

vim /etc/exports

在这里插入图片描述

共享那个目录
生效配置文件

sudo /etc/init.d/nfs-kernel-server restart

使用指令进行nfs挂载

mount -t 文件系统类型 -o nolock,vers=版本号 服务器地址:服务器挂载目录 本地挂载目录

启动内核参数(bootargets)

root=/dev/nfs
nfsroot=ip:共享目录(ip:serverip)
ip=Linux的ip
init=linuxrc
console=ttySAC0,115200

setenv  bootargs root=/dev/nfs nfsroot=192.168.10.110:/home/...  ip=192.168.10.222 init=/linuxrc   console=ttySAC0,115200

自运行

bootdelay

启动倒计时

bootcmd

倒计时到了以后,执行的命令