デバッガー ツールを操作するためにコマンド ライン インターフェイスに読み書きしようとしていますが、プロセス ストリームに問題があります。
生産中にプログラムする必要がある 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 コマンド ライン インターフェイスで複数のコマンドを受け入れるようには見えません。したがって、1 つのコマンドを渡し、コマンド ラインから出力を読み取り、次のコマンドを渡したいと考えています。これが私がこれまでに持っているものです:
'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 の場合の読み取りに機能します。もちろん、 false の場合、入力ストリームに書き込もうとするコードはすべてエラーをスローします。True の場合、ハンドラーは実行されず、何も読み取ることができません。アプリケーションから読み書きする方法に関するアドバイスはありますか? ありがとう。