我通过串口连接到开发板,如此......
$ screen /dev/ttyUSB0 9600
我现在已连接到启动加载程序,它要求我以srec格式发送文件。我有文件,但如何通过屏幕会话发送?
答案 0 :(得分:14)
希望你自己已经解决了这个问题,但我会回答以防其他人有同样的问题。
GNU屏幕有一个名为readreg
的命令,您可以使用该命令将文件读入寄存器。在寄存器填充数据后,您可以使用paste
命令粘贴该数据。
在屏幕内,按Ctr + a
,然后按:
执行命令。然后你只需写下并输入:
readreg p /path/to/thefile
执行完命令后,您应该发送一条消息Slurped X character into buffer
。
然后您可以再次按Ctr + a
然后再按:
将数据粘贴到该缓冲区中,然后输入并按Enter:
paste p
注意:p是寄存器的名称
你已经完成了。
您还可以使用-X
选项在屏幕会话外执行命令。如果您有一个名为“ucontroller”的屏幕会话,它连接到您的串行端口,您可以通过执行以下命令发送命令:
screen -S ucontroller -X readreg p /path/to/thefile
screen -S ucontroller -X paste p
我提供的信息直接来自screen(1)
的手册页,这是手册页的相关部分:
readreg [-e encoding] [register [filename]]
两件事中的一件,取决于参数的数量:零 或者一个参数,它将粘贴缓冲区内容复制到 注册指定或在提示符下输入。
有两个参数,它将指定文件的内容读入 注册,就像readbuf将屏幕交换文件读入 粘贴缓冲区。您可以通过-e告诉屏幕文件的编码 选项。以下示例将粘贴系统的密码文件 进入屏幕窗口(使用寄存器p,副本仍然存在):
C-a:readreg p / etc / passwd
C-a:粘贴p
答案 1 :(得分:0)
引用 AltairClone.com 在 UNIX/LINUX 下使用“screen”作为终端模拟器 https://altairclone.com/downloads/Using%20SCREEN%20as%20terminal%20emulator.pdf :
”
在UNIX/LINUX下使用“screen”作为终端模拟器
要开始会话,请键入“screen”,后跟串行设备名称和波特率:
Unix prompt> screen /dev/ttyUSB0 9600
要访问屏幕命令,请键入 ctrl-a 后跟一个命令字符。要查看命令列表,请键入 ctrl-a ? (ctrl-a 后没有空格,ctrl 不保留?)。
要退出当前屏幕,请键入 ctrl-a k
要退出所有屏幕(如果多个屏幕错误启动),请键入 ctrl-a
某些版本的屏幕可能需要 ctrl-a ctrl-\
要使用 XMODEM 发送文件,请键入 ctrl-a :(冒号是命令字符),然后在提示符下键入:
exec !! sx [-a] filename
(使用 -a 将单个换行符转换为 CR/LF 对。)
要使用 XMODEM 接收文件,请键入 ctrl-a :(冒号是命令字符),然后在提示符处, 类型:
exec !! rx [-a] filename
(注意:第一个 ! 告诉 sx/rx 通过 screen 的输入连接获取 stdin。第二个 ! 告诉 sx/rx 通过屏幕的输出连接路由标准输出。)
要在 XMODEM 传输之前更改波特率,请键入 ctrl-a :(冒号是命令字符), 然后在提示符下输入:
exec !! stty new_baud_rate
或者,通过输入 ctrl-ak 退出屏幕,然后以新的波特率(例如)重新启动屏幕:
Unix prompt> screen /dev/ttyUSB0 new_baud_rate
要简单地发送 ASCII 或二进制文件(即未使用 XMODEM),请键入 ctrl-a :(冒号是命令 字符),然后在提示符处键入:
exec !! cat filename
”