Board logo

标题: 请教NiosII的存储器 [打印本页]

作者: pantree    时间: 2008-9-19 19:27     标题: 请教NiosII的存储器

EP2C35,明明说有483,840bits的RAM,也就是有470K左右,但是为什么我在SOPC Builder中只能设置onchip_rom,40k,onchip_ram,8k,再往上加的话,编译时就说can't filter all ram cells.
但如果不用外部ram的话,仅用onchip_rom和onchip_ram来存放.text,.rodata,.rwdata以及堆栈数据,NiosII工程中编译就会提示存储器不够用!尤其时有标准输入输出语句及文件操作的时候。比如我上面设置的,40k,8k,nios程序中就一个标准输出语句printf也会出错。
难道其他的RAM都被用光了?是不是有其他的设置选项?
恳请指点!谢谢了!
作者: caopengly    时间: 2008-9-21 08:43

楼主注意看看单位哦,前面的是470kbit,但是在计算ram或rom时我们习惯使用byte。

1如果楼主mem实在不够用可以将程序下到epcs中,

2其实如果是纯片上系统的话,可以不用定义rom,只要ram就可以跑,因为程序都是被初始化在epcs中的,楼主可以试试。


作者: pantree    时间: 2008-9-21 22:37

呵呵,是的,我没注意单位,其实也就60KBytes而已,系统本身还要占用一部分RAM资源。

而且2C35里的是M4K RAM块,哪怕其中的4K只用了1K,可能也不能用作其他了吧

我的程序是要放在Flash里的,启动在RAM里运行就行了,Nios里所有的东西都放在Ram里应该也没有问题吧,


作者: caopengly    时间: 2008-9-22 12:49

"

我的程序是要放在Flash里的,启动在RAM里运行就行了,Nios里所有的东西都放在Ram里应该也没有问题吧,

"

楼主所指的所有东西都放在ram中是指的什么东西啊?ram中就相当于电脑的内存,一般就是放系统运行中的数据,如将flash中的东西考到ram中跑,rwdata,stack等等。将exception设置为ram就可用了。


作者: pantree    时间: 2008-9-22 14:55

QUOTE:
以下是引用caopengly在2008-9-22 12:49:00的发言:
"

我的程序是要放在Flash里的,启动在RAM里运行就行了,Nios里所有的东西都放在Ram里应该也没有问题吧,

"

楼主所指的所有东西都放在ram中是指的什么东西啊?ram中就相当于电脑的内存,一般就是放系统运行中的数据,如将flash中的东西考到ram中跑,rwdata,stack等等。将exception设置为ram就可用了。

我说的放在RAM里不是说程序存在RAM,而是指的运行在RAM,也就是在Nios IDE中把.text,.rodata,

.rwdata,Heap Memory,Stack Memory全都设置为Onchip_ram。程序是存储在Flash中的,启动后COPY到Onchip_ram中运行。 onchip_rom起什么作用,是否可以不要onchip_rom?

[em01]
作者: caopengly    时间: 2008-9-22 16:30

其实片上的rom的作用就是作片外flash的作用,但是fpga可以将ram的值初始化在epcs里,所以就可以不用片上rom了,这个情况比较特殊,楼主可以做做实验。

但是在片外设备,程序的。text,是放在片外flash上的,这时片外存储设备是不能少的了。


作者: pantree    时间: 2008-9-24 11:35

恩,谢谢斑竹。我的系统有Flash做外部程序存储器,上电CPLD控制配置FPGA,此配置文件是由.SOF转换生成的.POF文件,用PS方式配置。

由于用的是片上RAM,所以在Nios II IDE里编译时会生成RAM的初始化文件onchip_ram.hex,然后在QuartusII中再次编译工程,就会把初始化代码onchip_ram.hex也综合到.SOF中去,所以根据此sof转换来的POF是包含FPGA的配置数据和NiosII中的软件的。这样在对Flash编程时就不需要分成两个映象文件了(configuration data 和 software data)。不知道我的理解对不对,恳请指点。


作者: caopengly    时间: 2008-9-25 14:05

是的,如果楼主的系统ram使用的都是片上的ram那么就可以不用片外的flash了,楼主不妨可以做做实验。
作者: wyj_whu    时间: 2010-4-23 16:51

版主你好!请问,我现在需要一个存储比较大容量图片缓冲的存储器,当然还需要一个程序存储器,不知道要怎么分配呢?估计那个缓冲存储器就只能用SDRAM了,因为的用的开发板SRAM不够用,所以就不知道程序存储器可以存储在哪里呢?SRAM应该也不行吧?FLASH?EPCS?我没有CPLD。。。谢谢版主帮忙分析下!谢谢~!
作者: syj518    时间: 2010-4-25 14:00

好东西呵呵
格力电器
美的电风扇
美的电水壶
作者: dstic    时间: 2010-7-21 10:28






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