尊敬的所有人:
我最近遇到了一个问题、我将向您解释一下您是否可以帮助我找到原因以及可能的解决方案。
我有许多不同长度的整数数数数组(int16)。 我想制作一个指向前面提到的每个数组的指针数组、但是这个列表相对较大。 我有532个数组、因此我需要532个指针数组。 没关系。 当我在 DSP 上编译和执行程序时、问题就会出现、因为它会变得´疯狂´。 我的意思是说我有一个可以正常工作的固件、但当我包含此代码(仅限指针数组的定义)时、该固件就无法正常工作。
其他可能有用的信息: 我将初始化值存储在闪存的 FLASHB 部分中、根据.map 文件、闪存扇区中仍有足够的空间用于该指针数组。
以下是我的代码示例:
int16 array1[3]={0、0、10000};
int16 array2[10]={9、-1、0、1、2、 3、4、5、2000、4000};
int16 array3[3]={0、10、30000};
int16 array4[5]={0、10、10000、2、5};
int16 array5[1]={-1};
(笑声)
int16 * list_for_array[532]={
array1、
array2、
array3、
array4、
array5、
(笑声)
第532列
};
此外、还有其他信息。 如果我对100个矢量执行此操作、一切都正常。 如果我用200执行、一切都可以正常工作、但如果用400或500执行、例如、它已经开始失败。 似乎存在一些内存分配错误或其他问题、我找不到该位。
如果有人告诉我问题的原因、如何调试和/或如何解决、我会非常感激。
谢谢、致以诚挚的问候。