I'm working with OMAPl138 lcdk and I have a basic application for audio processing (some filtering + equalizering, nothing special). Due to historical reasons I have a lot of static and global data declared, variables, arrays and structures...
Basically my application works fine. But if only I declare one more static variable array I see no output signal. At the same time I do not access it, it's only declared.
Originally I have the following .bss
c31031f0 c31031f0 000006a0 00000000 rw-
c31031f0 c31031f0 000006a0 00000000 rw- .bss
and .far section
c3000000 c3000000 0005c994 00000000 rw-
c3000000 c3000000 0005c994 00000000 rw- .far
I'm trying to declare static float tmpArr[8] and see the failure.
These sections are related to DDR memory which is declared like the following :
DDR c3000000 00800000 00103f56 006fc0aa RW X
So it's unused size is 0x6fc0aa which is a big room to be placed :).
What could it be related to? Any hits are extremely appreciated.
These kinds of problems can be hard to debug. You need to look into the memory layout of the target system and look if any of your sections exceeds its boundaries.
Really hard to give generic advice in such cases. It's easy to spend days and weeks of debugging to find the reason (or not). You can try to remove parts of your code base from your build to get a feel what could make it become unreliable. Integration can be a nightmare on some embedded systems.
I didn't have problems with the OMAPL138 though. Have been running signal processing applications on both the ARM9 and the C674x DSP.