在用449做三相加窗插值FFT算法时,出现RAM不够的情况。IAR提示0x1114bytes needed,程序用了6418bytes的DATA memory,就是用了6.26KB的RAM.
我定义了float型大数组x[256],是256*4=1KB,共定义了6个这样的数组。程序是优化不了啦,只能扩展RAM.
请问449能外扩RAM么?怎么扩展RAM?
baoshuai wang:
很急的情况,跪求大神@TI员工
灰小子:
大数组可以存储到flash中去的。
Maka Luo:
扩展RAM比较麻烦,理论上都是需要总线接口才能扩展RAM的。
建议升级芯片,升级至RAM足够的其它芯片,如MSP430F6X。
或者用TI FRAM MCU,其FRAM可以当作code存储和RAM用,可以自由划分。
baoshuai wang:
回复 灰小子:
怎么把数组定义在FLASH中?尽管吧数组定义在flash中,程序运行时,还是要在RAM中开辟一个这么大的空间来暂存变量
baoshuai wang:
回复 Maka Luo:
谢谢。我还有几个疑问:
1,449能不能外接串行FRAM呢,例如FRAMC256。用SPI连接,就不用总线接口了吧。
2,MSP的FR6X和FR5X系列的FRAM需要自己在程序中定义作为RAM么?还是单片机在运行时自动分配?若需在程序中定义作为RAM使用,怎么定义呢?有相关文件参考么。谢谢
frry:
非标准的扩展RAM肯定不是首选方法1:修改功能实现,比如把大数据放入flash,分段使用方法2:升级芯片工程实现中,尽量不要采用别人基本不用的方案
baoshuai wang:
回复 frry:
请问怎么把大数组定义到FLASH中呢?不能加const,因为是实时采集的数据。谢谢大神