外部 Flash 写函数,如果我在函数内直接定义数组:
[mw_shl_code=c,true]void EXFLASH_WriteData(u8 *p, u16 len, u32 addr)
{
u8 buf[4096];...;
}[/mw_shl_code]
程序会卡在这边(工程还有mmalloc,FATFS等);
我是觉得这里数组存在栈里,所以爆栈了?
如果我放外面:
[mw_shl_code=c,true]u8 pbuf[4096]
void EXFLASH_WriteData(u8 *p, u16 len, u32 addr)
{
u8 *buf = pbuf;
}[/mw_shl_code]
就不会有事了,这是为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2、malloc从堆上分配内存,动态分配,程序员管理;
3、外部、全局变量、静态变量,从全局取分配内存,编译时已经确定。
回炉重炼C语言内存分配知识。
一周热门 更多>