アルテラの TSE MAC を構成する Verilog で書かれた単純なコントローラーがありました。ここまでは、かなり単純でした。しかし、私が次にやりたかったことは、多くの Marvel PHY の設定を行うことと、PHY と MAC の両方で統計とエラーなどを監視し続けることです。HW でそれを行うのはやり過ぎに思えるので、Nios を組み込むことにしました。 CPU。しかし、コンポーネントをソフトウェアに実装する前に、System Console を使用してアイデアのプロトタイプをすばやく作成したいと考えていました。とにかく、ここに私のQSysベースシステムがあります:
MAC インスタンスが呼び出され、 CPU を介してtse_mac
読み取り/書き込みを行うことで構成するという考え方です。control_port
data_master
システムを起動して実行した後、System Console を使用して接続しました。master
サービスパスを取得できるため、通常は機能すると思います。
% get_service_paths master
{/devices/EP2AGX260@1#7-1/(link)/JTAG/(70:34 v3 #0)/nios2_0}
こちらも問題なく開きます。ただし、32 ビット値を書き込もうとするとすぐに失敗します。
% get_service_paths master
{/devices/EP2AGX260@1#7-1/(link)/JTAG/(70:34 v3 #0)/nios2_0}
% open_service master "/devices/EP2AGX260@1#7-1/(link)/JTAG/(70:34 v3 #0)/nios2_0"
% master_write_32 "/devices/EP2AGX260@1#7-1/(link)/JTAG/(70:34 v3 #0)/nios2_0" 0x400 0x00000000;
error: com.altera.systemconsole.internal.plugin.jtag.oci.Nios2DebugException: Can't do this while target is running
while executing
"master_write_32 {/devices/EP2AGX260@1#7-1/(link)/JTAG/(70:34 v3 #0)/nios2_0} {0x400} {0x00000000}"
while executing
"master_write_32 "/devices/EP2AGX260@1#7-1/(link)/JTAG/(70:34 v3 #0)/nios2_0" 0x400 0x00000000"
%
例外は次のとおりです。
Jul 22, 2012 12:17:39 PM com.altera.systemconsole.internal.core.SystemConsole logSevere
SEVERE: com.altera.systemconsole.internal.plugin.jtag.oci.Nios2DebugException: Can't do this while target is running
java.util.concurrent.ExecutionException: com.altera.systemconsole.internal.plugin.jtag.oci.Nios2DebugException: Can't do this while target is running
at com.altera.systemconsole.internal.core.SimpleFuture$Sync.innerGet(SimpleFuture.java:169)
at com.altera.systemconsole.internal.core.SimpleFuture.get(SimpleFuture.java:66)
at com.altera.systemconsole.scripting.StandardCommandSet.waitForFutureResponse(StandardCommandSet.java:233)
at com.altera.systemconsole.scripting.StandardCommandSet.peekMemoryService(StandardCommandSet.java:161)
at com.altera.systemconsole.scripting.StandardCommandSet.readByte(StandardCommandSet.java:120)
at com.altera.systemconsole.scripting.ScriptEngine$16.execute(ScriptEngine.java:1117)
at com.altera.systemconsole.scripting.ScriptEngine$LegacyCommandAdapter.execute2(ScriptEngine.java:199)
at com.altera.systemconsole.scripting.SystemConsoleThreadTCLInterpreter$2$1.run(SystemConsoleThreadTCLInterpreter.java:181)
at com.altera.systemconsole.internal.core.SystemExecutor$4.run(SystemExecutor.java:516)
at com.altera.systemconsole.internal.core.SystemExecutor$ComparableTask.run(SystemExecutor.java:148)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: com.altera.systemconsole.internal.plugin.jtag.oci.Nios2DebugException: Can't do this while target is running
at com.altera.systemconsole.internal.plugin.jtag.oci.Nios2Debug.readMemoryIndirect(Native Method)
at com.altera.systemconsole.internal.plugin.jtag.oci.Nios2Debug.readMemory(Nios2Debug.java:186)
at com.altera.systemconsole.internal.plugin.jtag.oci.OciMemoryService.peek(OciMemoryService.java:158)
at com.altera.systemconsole.internal.core.legacymaster.LegacyMasterChannel$1.run(LegacyMasterChannel.java:88)
at com.altera.systemconsole.internal.core.SystemExecutor.addTaskIfNecessary(SystemExecutor.java:536)
at com.altera.systemconsole.internal.core.legacymaster.LegacyMasterChannel.doReadMemory(LegacyMasterChannel.java:77)
at com.altera.systemconsole.internal.core.legacymaster.LegacyMasterChannel.readMemory(LegacyMasterChannel.java:69)
at com.altera.systemconsole.scripting.StandardCommandSet.peekMemoryService(StandardCommandSet.java:157)
... 9 more
これまで System Console を使用したことがなく、インターネットやマニュアルで関連するものを見つけることができませんでした。問題は、私が犯している不正行為は何ですか? 問題を解決する助けをいただければ幸いです。