0

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

它可能与什么有关?任何点击都非常感谢。

4

1 回答 1

1

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

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

不过,我对 OMAPL138 没有任何问题。一直在 ARM9 和 C674x DSP 上运行信号处理应用程序。

于 2016-06-17T16:29:10.820 回答