使用 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 可以通过串行端口(@987654321@)从 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.binsha1sum
左右来证明完整性并将其发送到远程,以便 U-Boot 可以在编写之前对其进行测试。以上是关于使用 u-boot 通过串口更新文件的主要内容,如果未能解决你的问题,请参考以下文章