OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1770|回复: 5

堆区设置大小、变量存储区域

[复制链接]

22

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
664
金钱
664
注册时间
2019-1-30
在线时间
111 小时
发表于 2019-5-23 11:07:04 | 显示全部楼层 |阅读模式
10金钱
一个其他人写的项目文件,在其中的一个.c文件中定义了一个超大的数组,static float LaserPointArray[201][6] = {0};        这个数组变量属于静态变量        ,静态变量、全局变量是存储在堆区的。在启动文件中堆区的大小是定义好的。Heap_Size       EQU     0x00000200 这样算来堆区的大小明显不满足需要的空间大小。但是程序不报错,并且能运行。为什么这样?另外堆栈都是属于RAM的,而RAM的空间大小是可以看到的。如下图所示: 截图未命名.jpg ,具有65536个字节大小,因此在启动文件中将Heap_Size       EQU     0x00000200通过更改0x00000200数据的大小是不是就可以直接更改堆区大小。堆区+栈区是不是就是RAM的空间大小,还是说堆区+栈区<=RAM的空间大小。理解这个概念才可以知道手动更改堆区大小,最大可以更改为多大。

最佳答案

查看完整内容[请看2#楼]

RAM分为堆区,栈区,静态区。通过malloc函数申请的内存是占用堆区大小,局部变量存储在栈区,静态变量和全局变量存储在静态区。常量存储在ROM区
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-5-23 11:07:05 | 显示全部楼层
RAM分为堆区,栈区,静态区。通过malloc函数申请的内存是占用堆区大小,局部变量存储在栈区,静态变量和全局变量存储在静态区。常量存储在ROM区
我的简书:https://www.jianshu.com/u/3e9efbf4a8c2
回复

使用道具 举报

22

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
664
金钱
664
注册时间
2019-1-30
在线时间
111 小时
 楼主| 发表于 2019-5-23 13:55:08 | 显示全部楼层
流年丶 发表于 2019-5-23 13:42
RAM分为堆区,栈区,静态区。通过malloc函数申请的内存是占用堆区大小,局部变量存储在栈区,静态变量和全 ...

如果内存溢出,MDK一般是不报警的,RAM的空间大小65536个字节减去起始文件中,堆区和栈区的大小,剩余的空间大小就是静态区的大小。可以这样理解吗?
回复

使用道具 举报

10

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2016-8-15
在线时间
413 小时
发表于 2019-5-23 14:04:16 | 显示全部楼层
zhangxiaolin 发表于 2019-5-23 13:55
如果内存溢出,MDK一般是不报警的,RAM的空间大小65536个字节减去起始文件中,堆区和栈区的大小,剩余的 ...

可以这么理解。
我的简书:https://www.jianshu.com/u/3e9efbf4a8c2
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-5-24 02:45:49 | 显示全部楼层
如果你没用C语言标准库的malloc和free函数,Heap_Size       定义成0就行了,节省内存。
回复

使用道具 举报

22

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
664
金钱
664
注册时间
2019-1-30
在线时间
111 小时
 楼主| 发表于 2019-5-24 08:35:20 | 显示全部楼层
正点原子 发表于 2019-5-24 02:45
如果你没用C语言标准库的malloc和free函数,Heap_Size       定义成0就行了,节省内存。

嗯嗯,谢谢原子哥。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 01:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表