【发布时间】:2014-08-14 14:34:04
【问题描述】:
我只是想了解RAM分配的区别。
为什么如果我在函数之前定义一个变量会导致 RAM 溢出,而当我在函数中定义它时就可以了?
例如:
/*RAM OK*/
void Record(int16_t* current, int i,int n)
{
float Arr[NLOG2] = {0};
for(i=0;i<n;i++)
Arr[i]=current[i*5];
}
/*RAM OVERFLOW*/
static float Arr[NLOG2] = {0};
void Record(int16_t* current, int i,int n)
{
for(i=0;i<n;i++)
Arr[i]=current[i*5];
}
这是消息:
无法为总估计数的部分/块分配空间 0x330b 字节的最小大小(最大对齐 0x8)在 (总未提交空间0x2f38)。
【问题讨论】:
-
是否显示消息 RAM 溢出?
-
n声明在哪里? -
这是消息:无法为 (总未提交空间 0x2f38)中总估计最小大小为 0x330b 字节(最大对齐 0x8)的部分/块分配空间。