其他静态阵列破坏了OMAPL138目标(CCS5.2)上的DSP应用程序



我正在使用omapl138 lcdk,并且我有一个基本的音频处理应用程序(某些过滤 均衡,没有什么特别的)。由于历史原因,我声明了很多静态和全局数据,变量,阵列和结构...

基本上我的应用程序正常工作。但是,如果我声明一个又一个静态变量阵列,我就会看到没有输出信号。同时,我不访问它,仅被声明。

最初我有以下.bss

c31031f0    c31031f0    000006a0   00000000    rw-
  c31031f0    c31031f0    000006a0   00000000    rw- .bss

和.far部分

c3000000    c3000000    0005c994   00000000    rw-
  c3000000    c3000000    0005c994   00000000    rw- .far

我正在尝试声明static float tmpArr[8]并查看失败。

这些部分与DDR内存有关,该记忆如下所示:

DDR                   c3000000   00800000  00103f56  006fc0aa  RW X

因此,未使用的尺寸为0x6fc0aa,这是一个很大的房间:)。

它可能与什么相关?任何命中都非常感谢。

这些问题可能很难调试。您需要查看目标系统的内存布局,并查看您的任何部分是否超过其边界。

在这种情况下,很难提供通用建议。花几天和几周的调试来找到原因(或没有)很容易。您可以尝试从构建中删除代码库的一部分,以感觉如何使其变得不可靠。集成可以是一些嵌入式系统的噩梦。

我对OMAPL138没有问题。在ARM9和C674X DSP上运行信号处理应用程序。

最新更新