本节书摘来华章计算机出版社《Linux设备驱动开发详解 A》一书中的第3章,第3.8节,作者:宋宝华 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.8 串口工具
在嵌入式Linux的调试过程中,目标机往往会提供给主机一个串口控制台,驱动工程师在80%以上的情况下都是通过串口与目标机通信。因此,好用的串口工具将大大提高工程师的生产效率。
在Windows环境下,其附件内自带了超级终端,超级终端包括了对VT100、ANSI等终端仿真功能以及对xmodem、ymodem、zmodem等协议的支持。
在调试过程中,经常需要保存串口打印信息的历史记录,这时候可以使用“传送”菜单下的“捕获文字”功能来实现。
SecureCRT是比超级终端更强大且更方便的工具,它将SSH的安全登录、数据传送性能和Windows终端仿真提供的可靠性、可用性和可配置性结合在一起。鉴于SecureCRT具备比超级终端更强大且好用的功能,建议直接用SecureCRT替代超级终端。
在开发过程中,为执行自动化的串口发送操作,可以使用SecureCRT的VBScript脚本功能,让其运行一段脚本,自动捕获接收到的串口信息并向串口上发送指定的数据或文件。下面的脚本设置了SecureCRT等待至接收到“CCC”字符串后通过xmodem协议发送file.bin文件,接着,当接收到“y/n”时,选择“y”。
#$language = "VBScript"
#$interface = "1.0"
Sub main
Dir = "d:\baohua\"
' turn on synchronous mode so we don't miss any data
crt.Screen.Synchronous = True
'wait "CCC" string then send f?ile
crt.Screen.WaitForString "CCC"
crt.F?ileTransfer.SendXmodem Dir & "f?ile.bin"
'wait "y/n" string then send "y"
crt.Screen.WaitForString "y/n"
crt.Screen.Send "y" & VbCr
End Sub
另外,在Windows环境下,也可以选用PuTTY工具,该工具非常小巧,而功能很强大,可支持串口、Telnet和SSH等,其官方网址为http://www.chiark.greenend.org.uk/~sgtatham/putty/。
Minicom是Linux系统下常用的类似于Windows下超级终端的工具,当要发送文件或设置串口时,需先按下“Ctrl+A”键,紧接着按下“Z”键激活菜单,如图3.14所示。
图3.14 Minicom
除了Minicom以外,在Linux系统下,也可以直接使用C-Kermit。运行kermit命令即可启动C-Kermit。在使用C-Kermit连接目标板之前,需先进行串口设置,如下所示:
set line /dev/ttyS0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set f?ile type bin
set f?ile name lit
set rec pack 1000
set send pack 1000
set window 5
之后,使用以下命令就可以将kermit连接到目标板:
connect
在kermit的使用过程中,会涉及串口控制台和kermit功能模式之间的切换,从串口控制台切换到kermit的方法是按下“Ctrl + ”键,然后再按下“C” 键。
假设我们在串口控制台上敲入命令,使得目标板进入文件接收等待状态,此后可按下“Ctrl + ” 键,再按“C” 键,切换到kermit,运行“send /file_name”命令传输文件。文件传输结束后,再运行“c”命令,将进入串口控制台。