数组过大程序不能正常运行

2019-07-21 00:22发布

本帖最后由 stm32我爱你 于 2016-1-8 15:19 编辑

u16 color_buf[1920];
u8 color_buf1[3840];
如上图所示,这两个数组是在子函数里定义的局部变量,程序开始能正常运行;如果把第一个数组的大小从1920改为2048,则程序会卡死在这个函数里面,谁知道这是什么原因吗?如果一定要定义一个2048甚至是4096大小的数组,应该怎么解决这个问题呢?谢谢各位了。



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
xkwy
1楼-- · 2019-07-23 06:58
堆、栈,都是具有可读可写属性的,当然是放在内存里啦

kube24
2楼-- · 2019-07-23 09:59
看  局部变量和全局变量之类的位置在哪里就可以了
Mcu_learning
3楼-- · 2019-07-23 10:48
stm32我爱你 发表于 2016-1-8 15:34
开大了
把       Heap_Size       EQU     0x00000200
修改为Heap_Size       EQU     0x00000400

你要变成1000 000,如果是u8类型的,1000 000字节,除1024是多少k了?超过设置的栈了。在初始化代码里,栈默认设置的是1k。
stm32我爱你
4楼-- · 2019-07-23 15:27
 精彩回答 2  元偷偷看……

一周热门 更多>