(原創) 如何解決Nios II的『Leaving target processor paused』的錯誤訊息? (IC Design) (Quartus II) (SOPC Builder) (Nios II)

Abstract
『Leaving target processor paused』是Nios II初學者常遇到的錯誤訊息,本文提出解決方法。

使用環境:Quartus 6.0 SP1 + Nios II 6.0 + DE2 (Cyclone II EP2C35F627C6)

Introduction
C++在template部分,有一個讓人詬病之處是:compiler所回報的錯誤訊息很難debug,導致很多人對template避而遠之。Nios II也是如此,錯誤訊息並不明顯,初學者常看到以下錯誤訊息。

nios_faq01.jpg


導致這個錯誤訊息的原因很多,可惜Nios II並沒有在錯誤訊息中明確的告知錯誤原因,導致初學者不知該如何debug。

Solution
請依序檢查以下設定:

1.在Quartus II中將Unused Pins設成tri-stated
Assignments -> Device

nios_faq02.jpg


出現Setteing視窗,按下Device & Pin Options

nios_faq03.jpg


出現Device & Pin Options視窗,將Reserve all unused pins:選擇 As input tri-stated。

nios_faq04.jpg


2.在SOPC Builder中,將singnal設成Assign in Quartus II Project

nios_faq05.jpg


(當SOPC Builder中有設定Target Board時,才需設定此頁,若為Unspecified Board時,則無此頁設定。)

3.clk和reset_n也要加上pin assignment
初學者常忘記將clk和reset_n加上pin assignment,clk的pin assignment在DE2為PIN_N2 (50 Mhz),這沒問題,但reset_n要接什麼呢?這裡很tricky,一定要接上KEY!!接switch沒用!!

nios_faq06.jpg


pins.tcl

cmp add_assignment "hello_world" "" "clk" "LOCATION" "PIN_N2"
cmp add_assignment 
"hello_world" "" "reset_n" "LOCATION" "PIN_G26"


Conclusion
這是我和Quartus II、SOPC Builder和NIOS II博鬥數天的心得,原本也懷疑是不是DE2開發版有問題,換過5塊版子後,證明是設定的問題。老實說,Quartus II這類EDA工具,還是沒有軟體開發工具如Visual Studio那樣成熟,Visual Studio的錯誤訊息很明顯,很容易根據錯誤訊息debug,但Quartus II、Nios II的錯誤訊息都很含糊, 完全需靠『經驗』和不斷的嘗試錯誤。

See Also
(原創) 如何解決Nios II的Timestamp不match的錯誤訊息? (IC Design) (DE2) (Nios II) (Quartus II) (SOPC Builder)
(原創) DE2_NIOS_Lite 1.0 (SOC) (Nios II) (SOPC Builder) (DE2) 
(原創) (原創) 如何解決Nios II的『Leaving target processor paused』的錯誤訊息 (II)? (SOC) (Nios II) (SOPC Builder) (DE2-70)
(原創) 如何解決『Timestamp value does not match: image on board is older than expected』錯誤訊息? (SOC) (Nios II)

posted on 2007-12-01 18:59 真 OO无双 阅读(6766) 评论(17) 编辑 收藏

评论

#1楼 2008-02-18 22:10 JJS[未注册用户]

你的內容都很有幫助, 應該要謝謝你, 至少對初學者的我而言是如此!

在此分享我的心得 !!

我在使用DE2時, reset_n是使用 SW[0], 不過因為low active, 所以SW[0]必須設為on才會正常work!!


JJS
 回复 引用   

#2楼 2008-03-25 23:34 哈比兔[未注册用户]

今天我也遇到~~本人也是剛入門
搞好久才發現我有用FALSH 結果位置不能設0
 回复 引用   

#3楼 2008-05-12 21:41 阿暉[未注册用户]

想請問一個問題...

我在SOPC Builder 的環境下...選取左邊memory下的sram...

當我按add之後...下面出現error

ssram.s1 must be connected to an avalon-mm tristate master

請問這個erroe要如何解決~~~??

我去看了help 裡面avalon-mm也只有介紹而已...感恩
 回复 引用   

#4楼[楼主] 2008-05-12 22:57 真 OO无双      

@阿暉
要使用SRAM,請參考這一篇
http://www.cnblogs.com/oomusou/archive/2008/01/10/1033967.html
 回复 引用 查看   

#5楼 2008-06-17 18:37 邱劲松[未注册用户]

这个问题我今天也遇到,不过把reset_n拉固定的高电平就ok了!  回复 引用   

#6楼 2008-10-27 15:31 bobgeng[未注册用户]

明白RESET_N的接法了!接KEY可以,若接SW,应当将SW接高电平,即扮向上!  回复 引用   

#7楼 2009-03-19 10:54 请问个问题[未注册用户]

为什么我用altera里面自带的例子,还是出现这个错误呢????难道自带的例子里面引脚有错误????  回复 引用   

#8楼[楼主] 2009-03-19 11:01 真 OO无双      

--引用--------------------------------------------------
请问个问题: 为什么我用altera里面自带的例子,还是出现这个错误呢????难道自带的例子里面引脚有错误????
--------------------------------------------------------

Altera自帶的例子只適合Altera自己的版子
並不適用於DE2/DE2-70
 回复 引用 查看   

#9楼 2009-04-17 11:55 frankfly[未注册用户]

我現在用的是Cyclone starter kits的板子和Quartus8.1,但是在Run as hardware時還是出現了這個問題,按照樓主的方法一步步過來,但是問題始終出現。其中有一部就是board settings在sopc中怎么也找不到^_^

還請樓主幫幫忙...
 回复 引用   

#10楼[楼主] 2009-04-17 11:58 真 OO无双      

--引用--------------------------------------------------
frankfly: 我現在用的是Cyclone starter kits的板子和Quartus8.1,但是在Run as hardware時還是出現了這個問題,按照樓主的方法一步步過來,但是問題始終出現。其中有一部就是board settings在sopc中怎么也找不到^_^

還請樓主幫幫忙...
--------------------------------------------------------

這個錯誤有很多原因
大體上都是硬體的錯誤
nios ii只要不能動都就是丟這個錯誤訊息

至於board setting在quartus ii後來的版本都廢除了
印象中好像quartus ii 7.x就開始沒有了


 回复 引用 查看   

#11楼 2009-07-13 22:40 yeyan2[未注册用户]

../hello_led.c:98:36: altera_avalon_pio_regs.h: No such file or directory
../hello_led.c: In function `alt_main':
../hello_led.c:141: warning: implicit declaration of function `IOWR_ALTERA_AVALON_PIO_DATA'
../hello_led.c:141: error: `LED_PIO_BASE' undeclared (first use in this function)
../hello_led.c:141: error: (Each undeclared identifier is reported only once
../hello_led.c:141: error: for each function it appears in.)
make: *** [obj/hello_led.o] Error 1
楼主,我在做hello-led时出现上面的错误,是不是我的sopc配置的不对?该怎么解决?期待楼主的回答
 回复 引用   

#12楼 2009-07-23 16:28 小吉      

真的很有帮助~谢谢了~  回复 引用 查看   

#13楼 2009-07-29 22:53 nyc1893      

../hello_led.c:98:36: altera_avalon_pio_regs.h: No such file or directory
../hello_led.c: In function `alt_main':
../hello_led.c:141: warning: implicit declaration of function `IOWR_ALTERA_AVALON_PIO_DATA'
../hello_led.c:141: error: `LED_PIO_BASE' undeclared (first use in this function)
../hello_led.c:141: error: (Each undeclared identifier is reported only once
../hello_led.c:141: error: for each function it appears in.)
make: *** [obj/hello_led.o] Error 1
楼主,我在做hello-led时出现上面的错误,是不是我的sopc配置的不对?该怎么解决?期待楼主的回答

对于nios IDE自带的hello led 当中的程序:
IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, led);
这是给LED接口赋值的命令
要检查下sopc builder中对LED器件的命名情况。
如果命名的是LED_PIO才能使用上面的原程序;
如果系统当中的LED接口命名为LEDR0的话,那么程序就要改成IOWR_ALTERA_AVALON_PIO_DATA(LEDR0_BASE, led);
这样才不会出现未定义的错误。

 回复 引用 查看   

#14楼 2009-08-26 18:51 515666524      

向楼主请教:我用的是Quartus 6.0 SP1 + Nios II 6.0 +Cyclone EP1C6Q240C8
做流水灯实验在nios IDE中debug as niosII hardware时出现下面的问题:
Using cable "ByteBlasterMV [LPT1]", device 1, instance 0x00
Pausing target processor: not responding.
Resetting and trying again: OK
Initializing CPU cache (if present)
OK

Downloading 00000800 ( 0%)
Downloaded 1KB in 0.0s

Verifying 00000800 ( 0%)
Verify failed between address 0x800 and 0x9F3
Leaving target processor paused

网上有很多说用SDRAM,加PLL什么的.但是我配置是只是用了onchip_memory,这个地址校验错误是什么原因呢?
另外我这个在IDE里编译后再在Quartue2里运行并Download后缀为sof后给reset高电平后流水灯运转,但是此后只要一在IDE里run/debug as in hardware就会出现上面的错误,而且流水灯也停止了

希望帮忙解释一下,谢谢!!!!
 回复 引用 查看   

#15楼 2010-10-12 17:01 CanY      

帮了我这个小白的大忙
谢谢
 回复 引用 查看   

#16楼 2010-10-25 21:35 liyuegbd      

前辈,我也遇到了这个问题,不过我用的是你在你博客里给的教程,我按照你说的检查了下,应该不是你上面说的原因,搞得我很郁闷。具体情况是这样的,在NIOS上读写SDRAM,代码如下#include"system.h"
#include"string.h"
#include <io.h>

unsigned short * ram = (unsigned short *)(SDRAM_BASE+0x10000); //SDRAM地址

int main(void)
{
int i,j;
unsigned char temp[100];

memset(ram,0,100);
for(i=0;i<100;i++)
{
*(ram++) = i;
}

for(i=0;i<100;i++)
{
temp[i] = *(--ram);
}
for(j=0;j<100;j++)
printf("%d",temp[j]);

return 0;
}
当我的标准输入输出选择jtag_uart时是没有问题的,但是当使用LCD时,就会出现上面的问题,不知道是什么原因,希望你不吝赐教!!我用的是DE2-70的板子。
 回复 引用 查看   

#17楼 2010-11-21 14:31 闲适      

前辈你好!我也是遇到了这样的问题,但是在按照您的解决方法配置后,还是出现了
Error starting gdbserver - see console for details
的错误。。。请问该如何解决呢??
 回复 引用 查看   

导航

公告

emblem-2010

first2009-011

我是一個小小的數位IC工程師,從事SOC IP開發,業餘則喜歡研究FPGA、Embedded System、OS、MFC、NET與OOP相關技術。我並不是靠寫Blog或寫書維生,只是記下來怕自己忘記,所以不加任何廣告。所有文章與程式碼歡迎轉載使用。

昵称:真 OO无双
园龄:5年4个月
粉丝:281
关注:0

随笔分类(2100)