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

Code section 的名字不同导致DSP 进入了死循环

大家好:

最近我升级我的DSP 代码,我发现我改变了函数运行的Code section 的名字,DSP 会停止,不执行任何代码。

我使用XDS Pro 去跟踪代码,发现代码进入了一个汇编执行代码的死循环。调试了很长时间,发现我改变了Code section 的名字后,代码正常。

这个令我非常困惑,以下两个问题:

1,为什么创建一个汇编执行代码的死循环?在我的执行代码中并没有循环语句?

2,为什么不同的Code Section 名字会导致不同的汇编执行代码的生成?

我使用的是C语言,在66AK2H14的K2HEVM上运行,使用CC7.3,  Proceesor SDK是 ti-processor-sdk-rtos-k2hk-evm-04.01.00.06 

以下操作过程

这个是我导致死循环的函数

这个是进入了死循环的代码

当我跟踪代码,发现进入以下的汇编执行代码,进入了死循环。

程序永远都是进入这个三句汇编代码,程序停止执行其他代码。

当我更换了Code section 的名字后,程序运行可以。

汇编的执行代码变了

但是 "ramisr" 和"runfastram" code section 都在同一memery中,不同的名字.

MEMORY{

……………….

dsp_L2_ram:       o = 0x00800C00  l = 0x0006F400

……………..

}

runfastram : > dsp_L2_ram

ramisr : > dsp_L2_ram

如果有高手知道为什么,请指点。不想每一次更改DSP 的代码,都要冒着这样的潜在风险。

Shine:

请问用的是哪个版本的compiler? 升级一下compiler试试。

JackyXiaodong:

回复 Shine:

您好,

使用的是以下版本

谢谢建议,我稍后升级compiler尝试一下。请问,有没有别的办法可以跟踪到执行代码如何生成?

我担心,我修改某些地方代码,会引起其他的地方错误。

祝好

赞(0)
未经允许不得转载:TI中文支持网 » Code section 的名字不同导致DSP 进入了死循环
分享到: 更多 (0)