自己写的代码如下图所示,程序编译没问题,将m【5000】改为m【500】程序可以正常运行,但5000就不行,这是为什么啊?

2019-10-16 05:22发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
密耳
1楼-- · 2019-10-17 14:46
dengxingling8 发表于 2016-12-2 16:28
丝毫没有问题,片子SRAM大小8K,测试代码有问题,不过和讨论的问题无关了

你改的堆栈大小还是你的test[1000*1024]大小?你这样定义个局部变量。。???没问题?????????
dengxingling8
2楼-- · 2019-10-17 17:32
密耳 发表于 2016-12-2 16:36
你改的堆栈大小还是你的test[1000*1024]大小?你这样定义个局部变量。。???没问题?????????

keil在编译的时候,并不会检测栈使用量,所以定义的时候不会有问题,使用的时候,只要没有和需要用的地址重合或者给的地址不合法就不会产生问题,
螃蟹爱虫
3楼-- · 2019-10-17 20:39
LZ尝试改成全局变量看是否OK。
密耳
4楼-- · 2019-10-17 21:43
 精彩回答 2  元偷偷看……
dengxingling8
5楼-- · 2019-10-18 01:33
密耳 发表于 2016-12-2 16:49
我说的是你把堆栈的大小这块定义改大,,你看出报错不??我的为什么出??.....................

修改堆栈大小,编译的时候就直接拿出来那么多,这个时候加上全局变量什么的超过SRAM就会报错了。
梅小小
6楼-- · 2019-10-18 04:00
螃蟹爱虫 发表于 2016-12-2 16:44
LZ尝试改成全局变量看是否OK。

全局变量没问题

一周热门 更多>