Nios II出现Timestamp不match的错误怎么办

如题所述

有时候Nios II会出现以下恼人的错误讯息:

Using cable "USB-Blaster [USB-0]", device 1, instance
0x00

Pausing target processor: OK

Reading System ID at address
0x01101038:

ID value does not match:
read 0xFFFFFFFF; expected 0x4AE5D5A2

Timestamp value does not
match: image on board is older than expected

Read timestamp
7:59:59 1970/01/01; expected 18:41:20
2008/05/27

The software you are downloading may not run on the system
which is currently

configured into the device. Please download
the correct SOF or recompile.

Restarting target processor

出现这个错误讯息的原因是你Nios II软体编译所用的.sof,与你刚刚烧进DE2的.sof是不同一份。

若出现以下讯息,请依照以下方式检查

Step 1:

你用的Quartus II硬体.sof档,和Nios
II软体所用的.sof是不是为同一份,这是很容易犯的错误。尤其若你用的是Quartus II Web
Edition,会产生_time_limited.sof,而非原本project名称的.sof,但因为ptf对应的是_time_limited.sof,所以一不小心就可能烧错.sof。

若不成功,请试试Step 2。

Step 2:

将DE2 reference design的DE2_NIOS.sof烧进DE2,用Hello World project
template,成功後,再将自己project的.sof烧进去。详细原因不知,很可能是DE2版子的cache造成误判。

若不成功,请试试step 3。

Step 3:

将DE2电源off,然後重新on,先将你的Nios II的软体C语言程式备份,删除所有Nios II
project,将SOPC Builder重新generate .ptf,将Quartus II重新compile
.sof,然後重新建立Nios II project,将备份的C语言程式码还原。

Conclusion

这是Nios II的bug,常常会出现,目前我用的Quartus II 7.2
SP1,或许更新的版本有改进,不过Altera的工具常常大改,经常听到原来Quartus II 6.1与Quartus II
7.1所写的程式,在Quartus II 7.2无法编译,所以若你打算更新Quartus
II版本,或许你要慎重考虑相容性问题。
温馨提示:答案为网友推荐,仅供参考