Ant*_*een 6 serial-port communication gnu-screen
我通过串口连接到开发板,如此...
$ screen /dev/ttyUSB0 9600
Run Code Online (Sandbox Code Playgroud)
我现在已连接到启动加载程序,它要求我以srec格式发送文件.我有文件,但如何通过屏幕会话发送?
rze*_*erg 15
希望你自己已经解决了这个问题,但我会回答以防其他人有同样的问题.
GNU屏幕有一个命令readreg,您可以使用该命令将文件读入寄存器.在寄存器填充数据后,您可以使用该paste命令粘贴该数据.
在屏幕内按Ctr + a,然后:执行命令.然后你只需编写并按回车键:
readreg p /path/to/thefile
Run Code Online (Sandbox Code Playgroud)
执行完命令后,你应该发一条消息说Slurped X character into buffer.
然后,您可以再次按Ctr + a,然后按:,然后写入并按下回车键将数据粘贴到该缓冲区中:
paste p
Run Code Online (Sandbox Code Playgroud)
注意:p是寄存器的名称
而且你已经完成了.
您还可以使用该-X选项在屏幕会话外执行命令.如果您有一个名为"ucontroller"的屏幕会话连接到您的串行端口,您可以通过执行以下命令发送命令:
screen -S ucontroller -X readreg p /path/to/thefile
screen -S ucontroller -X paste p
Run Code Online (Sandbox Code Playgroud)
我提供的信息直接来自手册页screen(1),这里是手册页的相关部分:
readreg [-e encoding] [register [filename]]
做两件事中的一件,取决于参数的数量:使用零或一个参数,它将粘贴缓冲区内容复制到指定的或在提示符处输入的寄存器中.
有两个参数,它将命名文件的内容读入寄存器,就像readbuf将屏幕交换文件读入粘贴缓冲区一样.您可以通过-e选项告诉屏幕文件的编码.以下示例将系统的密码文件粘贴到屏幕窗口中(使用寄存器p,其中保留副本):
Ca:readreg p/etc/passwd
Ca:粘贴p