背景: gd32通过串口升级,在ps端使用securecrt软件通过ymodem协议进行升级,参考下面的文章。
但是实际使用场景是linux系统,也不希望通过打开minicom软件来进行升级,就这样写了一个脚本通过sz命令来发送升级文件。
#!/bin/bash
#定义变量
HOST="192.168.1.33"
USER="user"
PASSWD="user"
FILE_NAME="boot1.bin"
#连接FTP服务器
ftp -v -n $HOST <<EOF
if[$? -eq 0];then
echo "ftp connect successfully"
else
echo "ftp connect failed"
fi
#open host port
#$HOST
user $USER $PASSWD
binary
prompt
get $FILE_NAME
bye
EOF
DEV=/dev/ttyUSB0
stty -F $DEV 115200 cs8 -parenb -cstopb
stty -F $DEV -crtscts
# send command is 1
echo 1 > $DEV
#send ymodem file
sz -ybe $FILE_NAME > $DEV < $DEV
ftp接收升级包,然后打开串口,写1发送升级标志,通过sz命令发送升级包升级。