我建立了一个NIOS/S,SRAM(非标准的),UART的系统
运行HELLO LED 程序正常,而运行MEMORY TEST程序却报错:
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Processor is already paused
Reading System ID at address 0x00020830: verified
Initializing CPU cache (if present)
OK
Downloading 00000000 ( 0%)
Downloading 00010000 (78%)
Downloaded 82KB in 1.0s (82.0KB/s)
Verifying 00000000 ( 0%)
Verify failed between address 0x0 and 0xFFFF
Leaving target processor paused
其中SRAM地址为:0x00000000----0x0001FFFF
请问应该怎么解决
版主快来帮忙啊!!
难道没有人知道吗?
楼主所谓的运行hello_world正常表示的什么意思。是下载和运行都正常吗?
运行memory test表示什么,是写了一个memory的测试程序,然后下载不正常吗?
现在我通过2种方式对该问题做了试验
1、单独用sram,把sram一分为二,一半用作reset,一半用作exception。run as程序(hello_led),不报错并板子的LED灯闪烁,说明程序运行正常。但是run as程序(hello_world),就会报如Verify failed between address 0x0 and 0xFFFF的类似错误,其中报错所指的地址段为exception所指定的地址段前半部分。
2、用flash和sram,reset分配flash地址,exception分配sram地址。run as程序(hello_led),同样运行正常,但是run as程序(hello_world),依然报错,并且报的错误也是exception的那部分地址错误
怎么解决啊?
我怀疑有可能是<stdio.h>或“printf”的问题,当在能够正常运行的hello led程序中,增加<stdio.h>头文件和“printf”就会报如上所示的错误。
请各位前辈指点迷津!!
没看懂你在说什么,应该是你的SRAM配置有问题
[em01][em01][em01]那为什么led的程序,能够运行并有试验结果呢?
用hello_led是应为系统没有用到exception异常,所以不会出错。而printf用到了异常,所以出问题了。
你的exception设置就用系统默认的啊,不需要改那些偏移地址,把地址一分为二的。系统能够仲裁的。
按照您所说我尝试了一下
依然报地址错误,其中错误地址就是“exception设置”的地址
版主方便给我留个及时的联系方式吗?
我的QQ是:123700738
MSN:renqi7047@hotmail.com
有没有人能帮助我一下啊 !!!!
[em06]欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |