TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6678: 双核msmcsram冲突

Part Number:TMS320C6678

您好,想请教您一个dsp的问题
现象:
双核运行的情况下,比如一个变量a,赋值为128,但是程序跑的过程中被莫名改成了0。
排查:
由于双核在跑,我怀疑是否双核内存有冲突,我分别查了编译生成的map文件,我的代码和变量都是放在msmcram(8核共享的4M区域)里的,而两个核map文件里msmcram使用大小加起来已超过4M,这是不是会引起内存冲突,造成变量莫名被修改了?
疑问:
如何修改?是将大变量移到ddr中?还是修改cfg文件中.text等字段的映射,将这些段放在ddr里?
感谢您的回复

下图是我的cfg文件内存映射,两个核基本相同

Nancy Wang:

as a 说:这是不是会引起内存冲突,造成变量莫名被修改了?

也是有可能的,可以先测试一下都放到DDR上,看一下变量会不会被篡改。

,

as a:

您好,感谢回复

我把上图主核中cfg中内存section都由MSMCSRAM改为了DDR3,但是下载程序后程序无法运行,如下图

正常的都应该像从核一样,下面会有一个main() at …,但是主核下载了程序后下面什么也没有,点击运行后只有从核的程序运行了,主核没有任何动静,这是真么回事

,

Nancy Wang:

单独load到主核可以吗?

,

as a:

也不可以,单独load到主核也是无法点击运行按钮,下方也没有main() at…

,

Nancy Wang:

as a 说:双核运行的情况下,比如一个变量a,赋值为128,但是程序跑的过程中被莫名改成了0。

是在同一个核下观察的吗?单步调试看一下。

as a 说:也不可以,单独load到主核也是无法点击运行按钮,下方也没有main() at…

这个问题不太清楚,可以尝试将部分段分配到DDR看看。

,

as a:

我尝试将那个变量放在了每个核独有的512k内存上,该变量没有被篡改。是否就验证了内存冲突的问题?那我应该怎样修改呢,不可能所有的东西都放在512k上,空间有限也放不下。

,

Nancy Wang:

双核是共用的一个工程还是单独的工程?可以先阅读 DSP Code and Data Images :

www.ti.com.cn/…/sprab27b.pdf

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: 双核msmcsram冲突
分享到: 更多 (0)