我正在使用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内存的声明如下:
DDR c3000000 00800000 00103f56 006fc0aa RW X所以它未使用的大小是0x6fc0aa,这是一个要放置的大房间:)。
这可能与什么有关?任何点击都是非常感谢的。
发布于 2016-06-18 00:29:11
这类问题可能很难调试。您需要查看目标系统的内存布局,并查看是否有任何部分超出了它的边界。
在这种情况下很难给出通用的建议。花几天或几周的调试时间来找出原因(或不是原因)是很容易的。您可以尝试从构建中删除代码库的一部分,以获得可能使其变得不可靠的感觉。在某些嵌入式系统上,集成可能是一场噩梦。
不过,我对OMAPL138没有任何问题。一直在ARM9和C674x数字信号处理器上运行信号处理应用程序。
https://stackoverflow.com/questions/37886228
复制相似问题