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

标签 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,这是一个可以放置的大空间 :)。

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

最佳答案

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

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

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

关于c++ - 额外的静态数组破坏了 omapl138 目标 (ccs5.2) 上的 DSP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37886228/

相关文章:

c++ - 具有两个参数的 vector 构造函数被解析为函数声明

c++ - 优化 .txt 文件中的字符串搜索

linux - OMAP 4430 Linux 与 DSP 的结合使用

c - Hello World ,裸机 Beagleboard

c++ - 使变量不可复制的紧凑方法

c++ - this_thread::sleep_for 影响其他线程

c++ - 在 QModelIndex 中存储两种不同的类型

c++ - 如何使用 DSP 加速 OMAP 上的代码?

embedded - ARM OMAP3515 处理器中除零异常

linux - 在 ARM 上用 DEBIAN 替换 YOCTO