[转载]如何解決Nios II的『Leaving target processor paused
标签:
转载 |
分类: nios |
Abstract
『Leaving target processor
paused』是Nios II初學者常遇到的錯誤訊息,我今天又遇到了,我將我debug的過程跟大家分享。
Introduction
使用環境:Quartus II 8.0 + DE2-70 (Cyclone II
EP2C70F896C6N) + TRDB-LTM
在(原創) 如何解決Nios II的『Leaving target processor paused』的錯誤訊息? (IC Design) (Quartus II) (SOPC Builder) (Nios II)中,我曾討論過解決『Leaving target processor paused』常用的方法,但這個錯誤訊息引起的原因很多,只能case by case解決,今天剛好用遇到這個錯誤訊息,順便將我debug的方法跟大家分享。
錯誤訊息
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/NiosIILeavingtargetprocessorpausedIISOCN_119D2/pause00_1b508d48-ca41-4d61-9a38-4f85581c133f.gifII的『Leaving
關鍵在這一行
已經告訴我們在0x4000000 and 0x400F547這個範圍有錯,趕快將SOPC Builder打開:
http://images.cnblogs.com/cnblogs_com/oomusou/WindowsLiveWriter/NiosIILeavingtargetprocessorpausedIISOCN_119D2/pause01_c1b1905e-3c5b-456b-a860-f0fb6c8014aa.gifII的『Leaving
原來是SDRAM有問題!!最少已經將目標鎖定在SDRAM!!
若你是直接使用Nios II的reference design做Nios II開發,如((原創)
DE2_NIOS_Lite 1.1 (SOC) (Nios II) (SOPC Builder) (μC/OS-II)
(DE2)或(原創)
哪裡有DE2-70的Nios II reference design可以參考? (SOC) (DE2-70) (Nios II)
(SOPC
Builder)),就不會遇到這種問題,因為這些範例已經將你的SDRAM搞定了,但若你是將原本DE2/DE2-70的範例自己加上Nios
II,準備做軟硬體設計,就可能像我一樣,必須將原本Sdram_Control_4Port控制的SDRAM,改成由Avalon
Bus所控制的SDRAM,這時SDRAM的pin腳必須自己重新接過。
2
3
7
9
15
19
25
29
30
35
36
43
這樣乍看之下,一切都很正常,所有SDRAM的pin腳全部被SOPC接管,假如你也這樣認為,就會跟我一樣遇到 『Leaving
target processor paused』的錯誤訊息。
Solution
原因是因為還有兩個port忘了指定:
assign oDRAM0_CLK = SRAM_CLK;
assign oDRAM1_CLK = SRAM_CLK;
將這兩個clock補上後,結果就會正常了。
完整程式碼下載
DE2_70_D5M_LTM_NIOS_ltm_master.7z
Conclusion
『Leaving target processor paused』是初學者常遇到的錯誤訊息, 透過failed
address,最少可以將debug目標鎖定在某個ip上,有可能是C的問題,有可能是Verilog的問題。像我這次忘了去指定SDRAM的clock,也是很容易忽略的錯誤,若你也遇到SDRAM的錯誤,別忘了查查看是不是跟我一樣,忘了指定SDRAM
clock。

加载中…