Board logo

标题: 请教高手,为什么LED在onchip_mem可以跑,在sram上就不可以 [打印本页]

作者: yuanzhen83    时间: 2005-9-16 11:09     标题: 请教高手,为什么LED在onchip_mem可以跑,在sram上就不可以

请教高手,为什么LED在onchip_mem可以跑,但是我在IDE里面把工程属性里设置跑在sram上就不行,LED完全不受控制.
    在软件调试时候明明是好的呀,查看PC寄存器,程序是走在sram内存里面的,看汇编代码值也是赋到LED端口地址去了,到底哪里会有问题呢?
大家帮帮忙
作者: yzhyyq    时间: 2005-9-16 19:37

你是在IDE的什么地方设置在SRAM上跑,我也正在想解决这个问题.
作者: yuanzhen83    时间: 2005-9-19 13:18

IDE工程上点右键,选最后一个属性,然后有个对话框,在system library里面右边就可以选择程序跑在哪个ram上面
晕了,搞了3天了,还是没有头绪..............
作者: yzhyyq    时间: 2005-9-22 18:58

我出现的类似问题是在system library选programm memory(.txt)在epcs_controller的时候编译就提示错误信息,如下,

-------------------------------------------------------------------------------
**** Incremental build of configuration Debug for project first_test ****

make -s all
Compiling hello_world.c...
Linking first_test.elf...
/cygdrive/d/altera/kits/nios2/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.1/../../../../nios2-elf/bin/ld: region epcs_controller is full (first_test.elf section .text). Region needs to be 13172 bytes larger.
/cygdrive/d/altera/kits/nios2/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.1/../../../../nios2-elf/bin/ld: address 0x15a38 of first_test.elf section .epcs_controller is not within region epcs_controller
collect2: ld returned 1 exit status
make: *** [first_test.elf] Error 1
Build completed
--------------------------------------------------------------------------------

如果选onchip_memory编译就没问题 (我没有用SDRAM),不知道是什么原因。我用的是EPCS64,所以应该不存在真正的容量不够的问题。
我怀疑和 yuanzhen83 所说的问题是相似的,有明白的大侠不吝指教。
yuanzhen83如果解决问题了,也希望公布一下。
作者: yuanzhen83    时间: 2005-9-27 10:31

我的情况是,板子上没有sdram,现在想在片内虚拟一个sram出来,纯粹作个测试,这两天的进展是,在quartus里面自己定制了一个sram,并写好控制器,作为一个模块放在sopc里面,在IDE里面写了段小代码,来对sram读写,都成功了(程序是跑在onchip_memory上的).
唯一的问题是当把这个sram作为程序存储区的时候就不行了,仿真发现sram是空的, 程序没有加载上去,读的时候读到了一个随机值,仿真报错,请教高手指点
作者: yuanzhen83    时间: 2005-9-30 15:17

问题还是没有解决,sram是完好的,但是在上面跑程序就是不行,用modelsim仿真看到程序没有加载到sram上,实在是没有办法....
    sram的接口用的是32位的,读写时序也没问题.刚刚看了一下nios自带的sram是通过三态桥连上去的,难道是这个问题?
    有人能启发我一下吗?
作者: yzhyyq    时间: 2005-9-30 17:38

你的SRAM是用SSRAM还是SDRAM,没有必要用tri-state bridge,因为它是给flash用的,应该要加时钟锁相。
作者: admiral1    时间: 2005-10-1 13:11

sdram 才要加时钟锁相  sram 不用
你就这么凭空说 没有软件反馈的语句
我也不知道怎么回答你
作者: job3001    时间: 2007-1-1 22:44

哥们,我也遇到一样的问题,到现在也没有解决,不知道,哥们现在有什么高见,谢谢,job3001@126.com
作者: wmin97    时间: 2007-1-4 12:07

to 4楼,好象在system library选programm memory(.txt)中不能够设置为epcs_controller
作者: kzw    时间: 2007-1-4 22:18

programm memory不能放在epcs中,programm memory指的是程序的运行空间,一般放在ram中,epcs在nios系统中只有一个地址,肯定会报溢出。

你们说的sram的问题,代码放在sram中运行不会有什么问题的,看你的sram是什么连接方式的,你们采用32位的读写,sram的数据位是32位吗。sram是怎么加在nios上的。


作者: caopengly    时间: 2007-1-8 18:50

sram 要加tri-bridge!


作者: caopengly    时间: 2007-1-8 22:33

sram的rd#,wr#,要接上拉电阻,不然容易错


作者: kzw    时间: 2007-1-9 00:25

楼上说的正确,sram一定要放在tri-state上.


作者: pingfan    时间: 2007-1-11 21:28

很可能是用SRAM时,数据没有进到SRAM里。我的板子上有SRAM,就是下不进去,跑不起来,愁!
作者: caopengly    时间: 2007-1-12 13:08

yuanzhen83,

你的sram是片上的ram定义的,我觉得这是可行的不过有一下需要考虑的。

1。你所选用的sopc的sram接口对应的芯片的datasheet上的时序要和ram的读取、写入相同。

2。在sram上多了bhe&ble两个控制口,你是怎么处理的。

3。你所说的编写的sram控制程序模块必须对sopc来说等同于对真正硬件。

对于速度和其他因素要求可以满足,暂可以不考虑。还有就是要通过tri-bridge

caopengly


作者: amzzgscu    时间: 2007-11-30 01:19

fg




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0