我正在尝试写入和读取命令行界面以操作调试器工具,但我在处理流时遇到问题。
我们有一个新产品在工作,它有 2 个微处理器(Microchip 和 Freescale Arm M4),需要在生产过程中进行编程。我们使用 ICD3 调试器对 Microchip PIC 进行编程,使用 JLink Ultra+ 对 Freescale 芯片进行编程,并使用定制设计的工具来操作电路板并将其置于正确的编程状态。
我发现这两个调试器工具都有一个命令行界面(看起来就像 Windows 命令提示符)。使用:
process.start("C:\Program Files (x86)\Microchip\MPLABX\v3.25\mplab_ipe\ipecmd.exe", "-F" + PIC350HEXFilePath + " -M -P18F46J11 -TPICD3")
我可以运行 ICD3 调试器并成功编程 Microchip PIC。但是,我似乎无法让 JLink 命令行界面接受多个命令。因此,我想传递一个命令,从命令行读取输出并传递下一个命令。这是我到目前为止所拥有的:
'handles data from stream of jlinkProcess
Private Sub jlinkProcessDataHandler(sendingProcess As Object, outLine As DataReceivedEventArgs)
Dim data_read As String
data_read = outLine.Data
rtxtboxStatusText(vbNewLine + outLine.Data)
If data_read = "J-Link>Unknown command. '?' for help." Then
End If
End Sub
Private Sub btnK70program_Click(sender As Object, e As EventArgs) Handles btnK70program.Click
btnLoadCurrentTimeEnable(True)
jlinkProcess.StartInfo.UseShellExecute = False
jlinkProcess.StartInfo.RedirectStandardOutput = True
jlinkProcess.StartInfo.RedirectStandardInput = True
jlinkProcess.StartInfo.FileName = "C:\Program Files (x86)\SEGGER\JLink_V512e\JLink.exe"
jlinkProcess.StartInfo.Arguments = "-device MK70FN1M0xxx15"
jlinkProcess.Start()
jlinkProcess.BeginOutputReadLine()
End Sub
当 RedirectStandardInput 为 false 时,它适用于读取。当然,当它为假时,我尝试写入输入流的任何代码都会引发错误。当为 True 时,处理程序永远不会执行,我无法读取任何内容。关于如何读取和写入应用程序的任何建议?谢谢。