This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

Other Parts Discussed in Thread: 66AK2H14

大家好:

最近我升级我的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 的代码,都要冒着这样的潜在风险。