C语言程序在内存中的空间分配

1. RAM理解下先

2.闪存理解下先

3.

说真的,没做过选型,买器件,到实际调试这些存储器,根本无法直观的清晰的掌握它们的功能及作用以及分类。

我只能从一些经验和描述中做出结论: 内存是用来临时存储程序代码段,数据段,然后再用符号段、栈、堆来运算程序数据的。

程序代码我们一般指的是指令代码,比如加减运算,放在应用层就是逻辑控制代码文本内容。

而实际数据的数据就是完成某一个功能所需要的模拟运算里用到的所有数据,

代码段、常量数据段肯定是只读的必加载到某个内存段,作为执行任务的准备资源。然后未初始化的放在符号段,这个暂时我能理解的是,内存还有个bss段,符号段。当然这些段啊段的。在单片机中,我们就是分段 存储整个固件程序了。如果在操作系统中有内存管理的环境下,这些段是动态维护的,一旦程序所谓退出。这些段里数据就给释放了。

4. 一些专业人士对程序分段的理解

可以理解到,这些分段其实就是内存中的一种分段方式,或者进程/程序在内存中存储方式。对于单片机的话,因为只有一个进程,所以就是整个程序内存空间的分段情况了,如果是unix系统的话,其实就是每个进程在内存上的存储情况(应该是这样,想起某个博友分享过一片关于进程存储的文章)。

那么问题来了,搞这么多时间去理解这个有毛用??

对于我来说,我是因为涉及到排查是否硬件故障,存储溢出的问题才来一步一步又不得不复习这些概念的......相信你将来也会遇得到的.....lucky

参考博主:https://www.cnblogs.com/yanghong-hnu/p/4705755.html

其他的刚关闭网页...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值