打印

急求!定义了个大的数组,结果使得far段和cinit段都很大,ram不够了

[复制链接]
2211|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
whnyao1314|  楼主 | 2015-4-28 19:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在.h中定义了一个超级大的数组,整型,大概在30000个数据,在.c中用到,结果此数据存在了far段中,且定义后也会使cinit段同样很大,超出了内部ram的大小,且程序按照需求只能运行在内部ram中,求助各位大神,如何解决此问题,

相关帖子

沙发
whnyao1314|  楼主 | 2015-4-28 19:35 | 只看该作者
芯片用的是C6713,理论上来说不是已初始化的变量会存放在cinit中吗?怎么会在far中呢?

使用特权

评论回复
板凳
shiny12| | 2015-5-26 10:17 | 只看该作者
遇到同样的问题  我的 .far也不够用,所以想一部分文件产生的。far放在l2上,另一部分放在DDR上  但具体怎么编程呢,求问

使用特权

评论回复
地板
xlhust| | 2015-5-26 14:21 | 只看该作者
28系列DSP,全局变量初始值存在cinit中,只在初始化时复制到ebss,程序运行时调用ebss中内容。
6000系列应该是同理

使用特权

评论回复
5
wowow| | 2015-5-27 09:51 | 只看该作者
1.改进算法,分段搬移到l2,处理完结果搬出去。
2.了解C6000的cache,改进算法最大化利用cache。
TI的这套视频讲得不错,有关优化算法和利用Cache
http://processors.wiki.ti.com/in ... hop&redirect=no
这几个文档可以看一下:
TMS320C6000 DSP Cache User's Guide
Cache Usage in High-Performance

使用特权

评论回复
6
shiny12| | 2015-5-27 12:30 | 只看该作者
wowow 发表于 2015-5-27 09:51
1.改进算法,分段搬移到l2,处理完结果搬出去。
2.了解C6000的cache,改进算法最大化利用cache。
TI的这套 ...

我的想法是把一部分文件的.far放在L2上,另一部分放在DDR上,这样的想法可行不,,,若可行的话分配语句该怎么写呢,求支招

使用特权

评论回复
7
wowow| | 2015-5-27 17:33 | 只看该作者
代码里:
#pragma  DATA_SECTION( LargeBufA, ".ddr2" )
unsigned short                    LargeBufA[1024];

cmd里:
    .ddr2       >   DDR2
前者见:
C6000 Compiler Version 7.4 User's Guides > C6000 Optimizing C/C++ Compiler User's Guide > TMS320C6000C/C++ Language Implementation > Pragma Directives
6.9.6. The DATA_SECTION Pragma

cmd部分应该会吧?

使用特权

评论回复
8
smalling6| | 2015-5-29 09:38 | 只看该作者
wowow 发表于 2015-5-27 09:51
1.改进算法,分段搬移到l2,处理完结果搬出去。
2.了解C6000的cache,改进算法最大化利用cache。
TI的这套 ...

这个视频不错 mark下

使用特权

评论回复
9
598330983| | 2015-5-31 08:35 | 只看该作者
你想法缩小那个数组啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝