额外的静态数组会破坏omapl138目标上的DSP应用程序(ccs5.2)

时间:2016-06-17 16:24:14

标签: c++ omap

我正在使用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,这是一个很大的空间:)。

它有什么关系?任何热门歌都非常受欢迎。

1 个答案:

答案 0 :(得分:1)

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

在这种情况下,很难给出通用建议。通过几天和几周的调试来查找原因(或不是),这很容易。您可以尝试从构建中删除部分代码库,以了解可能使其变得不可靠的部分。在某些嵌入式系统上,集成可能是一场噩梦。

虽然我没有OMAPL138的问题。一直在ARM9和C674x DSP上运行信号处理应用程序。