通过 /dev/ttyUSB0 将固件写入嵌入式设备

通过 /dev/ttyUSB0 将固件写入嵌入式设备

我使用最后一个例子:这个帖子

我一直在wctx:file length=0追寻 sz 命令。实际上,我打开与 Minicom 的串行连接minicom会破坏传输。因此,当我进入press enter to begin updateminicom 窗口后,此时正常的过程是进入菜单,选择 S 发送,选择 Xmodem,找到固件文件并选择它,此时传输开始并几乎立即失败;

我移动到另一个虚拟终端窗口,然后运行,sz -X -k -b -vvv - /tmp/sz_fifo > /dev/ttyUSB0 < /dev/ttyUSB0然后我收到sz 0.12.21rc mode:1 sending s20806.lsz 0 blocks: give your Xmodem receive command now并移动到 minicom 窗口,它仍然显示to begin update press enter我按 Enter 键,并在 sz 窗口中得到这个,Xmodem sectors/kbytes sent 0/ 0kretry Timeout on sector ACK最后一部分重复了几次,然后retry count exceededmode:0

我不知道fifo是否为空,是否需要在minicom中选择Xmodem协议,或者什么!我准备尝试使用 Windows 来完成这项工作。我远非调制解调器协议和 fifo 方面的专家。尽管我是从 Debian Woody 开始的。

回应评论“在按 s 之前先按 Enter”,

使用 minicom,通过访问嵌入式卡的串行接口进行更新。嵌入式卡提供两个选项:CRCXmodem 和 1K-Xmodem。

我选择 1K-Xmodem,响应为“断开终端,将速度更改为 115,600,然后重新连接”。该卡会改变自己的速度。 Minicom 在端口设置速度更改后重新连接,嵌入式卡显示“按 Enter 开始固件更新”。

此时嵌入式卡手册中的书面说明为“发送固件更新文件”。我按 CTRLA + z 进入 minicom 菜单,选择“S”进行发送,此时我可以选择协议。我选择 Xmodem,然后出现一个文件浏览器,我用它来选择固件文件。

按回车键后,更新开始,但很快就会失败。如果我在 minicom 菜单中选择“S”之前按 Enter 键,则不会发送任何内容,并且更新失败。如果我在访问 minicom 菜单之前按 Enter 键,嵌入式卡上的计时器将到期并且更新失败。

我正在尝试 sz,因为它使用命名管道在我上面提供的链接中工作。如果没有 minicom,我不知道如何准备嵌入式系统来接收固件,但在那之后 minicom 就会失败。

我试图解决这个特定问题,特别是因为 minicom 没有专门针对 1K-Xmodem 的选项,只有 Xmodem。而 sz 具有用于 1K-Xmodem 的 -k 开关,如卡提供的选项中所指定。

相关内容