本帖最后由 过路人1024 于 2019-1-26 14:49 编辑
我UCOS中创建了两个任务,任务A,和任务B,任务B中满足特定条件会调用函数C。然后总是在第一次调用完任务C的时候系统就进入HardFault_Handler中断,最后发现是个for循环的问题。我在函数C中一开始进行了个for循环,循环15360次,本意是复制一个数组,把一个大小为15360的u8数组的值赋值给同样是15360大小的u8数组.
u8 array0[15360];
u8 array1[15360];
void functionC(void)
{
u32 i;
for(i=0;i<15360;i++)
{
array0[ i ] = array1[ i ];
}
...........
}
代码大概就是这样,两个数组是全局变量。把这个for循环注释后,就一切正常。另外,把循环次数改为200或500几百次的话就不会,另外把array0 = array1改为array0[15359] = array1[15359] 等固定值也不会发生了。。。好奇怪。。完全没头绪。。请问各位大神这哪里出了问题吗?
|