如何解决Nios II的"Leaving target processor paused
使用环境:Qus 6.0 SP1 + Nios II 6.0 + DE2 (Cyclone II EP2C35F627C6)
C++在template部分,有一个让人诟病之处是:compiler所回报的错误讯息很难debug,导致很多人对template避而远之。Nios II也是如此,错误讯息并不明显,初学者常看到以下错误讯息。
导致这个错误讯息的原因很多,可惜Nios II并没有在错误讯息中明确的告知错误原因,导致初学者不知该如何debug。
请依序检查以下设定:
1.在Quartus II中将Unused s设成tri-stated
Assignments -> Deve
出现Setteing视窗,按下Device & Pin Options
出现Device & Pin Options视窗,将Reserve all unused pins:选择 As input tri-stated。
2.在SOPC Builder中,将singnal设成Assign in Quartus II Project
(当SOPC Builder中有设定Target Board时,才需设定此页,若为Unspecified Board时,则无此页设定。)
3.clk和reset_n也要加上pin assignment
初学者常忘记将clk和reset_n加上pin assignment,clk的pin assignment在DE2为PIN_N2 (50 M),这没问题,但reset_n要接什么呢?这里很tricky,一定要接上KEY!!接switch没用!!
pins.tcl
cmp add_assignment "hello_world" "" "clk" "ATION" "PIN_N2"
cmp add_assignment "hello_world" "" "reset_n" "LOCATION" "PIN_G26"
原本也怀疑是不是DE2开发版有问题,换过5块版子后,证明是设定的问题。Quartus II这类工具,还是没有软体开发工具如Visual Studio那样成熟,Visual Studio的错误讯息很明显,很容易根据错误讯息debug,但Quartus II、Nios II的错误讯息都很含糊, 完全需靠经验和不断的尝试错误。