1

我正在尝试写入和读取命令行界面以操作调试器工具,但我在处理流时遇到问题。

我们有一个新产品在工作,它有 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 时,处理程序永远不会执行,我无法读取任何内容。关于如何读取和写入应用程序的任何建议?谢谢。

4

0 回答 0