使用 u-boot 通过串口更新文件

Posted

技术标签:

【中文标题】使用 u-boot 通过串口更新文件【英文标题】:Update files over serial port using u-boot 【发布时间】:2021-12-25 07:01:41 【问题描述】:

我正在使用 Cyclone V HPS,我的应用程序文件现在从 SD 卡启动。由于某些原因,我的 SD 卡现在固定在板上,无法从插槽中取出。因此,我正在尝试使用 u-boot 通过串行端口更新我的文件。据我所知,有一个命令名称 loady 可以通过串行端口(@98​​7654321@)从 PC 获取文件。我现在唯一担心的是,我不知道在传输新文件后我的旧文件会发生什么?新文件会覆盖旧文件还是它们是两个不同的文件?如果它们真的是两个不同的文件,那么有没有办法删除我的旧文件?

【问题讨论】:

文件首先被传输到 RAM,然后它们将被刷新。我怀疑 U-Boot 是否支持从 UART 直接写入,除了它非常脆弱。 【参考方案1】:

loady 命令将文件加载到内存中,参见。 https://u-boot.readthedocs.io/en/latest/usage/loady.html。它不涉及任何文件系统。

要验证完整性,您可以使用 sha1sum 命令。

如果要将上传的文件写入 SD 卡,则必须使用 save 命令。您可以覆盖旧文件或创建一个新文件。使用loady设置的变量$filesize来指定文件长度。

如果你使用 FAT 文件系统,可以发出 fatrm 命令来删除文件。

如果有任何命令可用,取决于您用于构建 U-Boot 的配置。

【讨论】:

感谢您的帮助。我已经通过这种方式将我的新二进制文件写入 SD 卡:首先,我使用 loady 命令并通过 ymodem 传输(TeraTerm 软件)通过串行端口传输我的新二进制文件。然后,我使用 u-boot 支持的 fatwrite 命令将我的新文件写入 SD 卡(我的命令是:fatwrite mmc 0 $loadaddr myfile.bin 。目前,我的应用程序现在已经更新到最新的文件了,说明我的写过程是成功的,但是我还是想知道这个过程有没有什么缺点? @JacobMuller,正如答案所述,您需要通过运行sha1sum 左右来证明完整性并将其发送到远程,以便 U-Boot 可以在编写之前对其进行测试。

以上是关于使用 u-boot 通过串口更新文件的主要内容,如果未能解决你的问题,请参考以下文章

IMX6ULL学习笔记——通过SD卡启动U-Boot

IMX6ULL学习笔记——通过SD卡启动U-Boot

IMX6ULL学习笔记——通过SD卡启动U-Boot

ARM9-----恢复出厂系统

2440|jz2440在u-boot中通过网络方式更新启动挂载镜像的几种方法

操作系统通过U-Boot启动