2273|9

4771

帖子

12

TA的资源

版主

楼主
 

单片机的内存分配你了解多少? [复制链接]

本帖最后由 吾妻思萌 于 2023-6-30 13:21 编辑

单片机开发也是嵌入式开发中的一个大群体,有许多的的人是进行单片机逻辑开发的,也有些人是单片机+嵌入式实时操作系统,当然也有单片机+linux+人工智能技术的。

当然,不管你是什么样的组合方式,只要你最终开发的产品中有使用到MCU,进行程序开发时,都应该会涉及到内存的分配问题。只要是开发程序过程中有过动态申请内存的朋友,对malloc、free估计是不会陌生的。

很多时候单片机的内存分配是会让人感觉到头疼的,有些单片机的内存很大,可以肆无忌惮的申请,有些内存空间又很有限,捉襟见肘,既要完美的实现产品功能,又要考虑内存的问题,不断的各种优化进行适配。而且可能很多人玩了几年的单片机可能都不清楚单片机内部的内存是如何分配的。

想要清楚单片机内部的内存是怎么分配的,我觉得首先应该要知道单片机内部都有哪些可供使用的存储空间。

常见的单片机它的内存一般有两部分:ROM + RAM。这两个到底有什么不同呢?

此帖出自ARM技术论坛

最新回复

这玩意学起来真得劲   详情 回复 发表于 2023-9-6 10:16
点赞(1) 关注
 

回复
举报

6040

帖子

205

TA的资源

版主

沙发
 

咋就写了一半,继续,期待。。

此帖出自ARM技术论坛
 
 
 

回复

4817

帖子

4

TA的资源

版主

板凳
 
  1. ROM(Read-Only Memory,只读存储器):ROM是一种非易失性存储器,用于存储程序代码和固定的数据。它的内容在断电后不会丢失。ROM中的内容在制造过程中被写入,一般无法在运行时修改。ROM的特点是容量较大,但不能随意更改其内容。
  • 程序存储区(Program Storage Area):存放单片机的程序代码。程序代码在ROM中以二进制形式存储,由处理器执行。
  • 常量存储区(Constant Storage Area):存放常量数据,如常量字符串、常量数组等。这些数据在编译时就确定,并存储在ROM中。
  1. RAM(Random-Access Memory,随机存取存储器):RAM是一种易失性存储器,用于存储程序运行时需要读写的数据。RAM的内容在断电后会丢失,因此需要在程序中初始化或者运行时动态分配内存。RAM的特点是读写速度快,但容量较小。
  • 数据存储区(Data Storage Area):存放变量、数组和堆栈等数据。这些数据在程序运行时被创建和修改。
  • 栈(Stack):存放函数调用、局部变量和临时数据等。栈以先进后出的方式进行操作。
此帖出自ARM技术论坛
 
 
 

回复

1463

帖子

0

TA的资源

五彩晶圆(初级)

4
 
这个还真是从来没了解过,咋就写了一半,继续,期待。。
此帖出自ARM技术论坛
 
 
 

回复

6060

帖子

7

TA的资源

版主

5
 

对于裸机开发的人员来说,动态内存管理就是很繁琐  

此帖出自ARM技术论坛
 
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 

从来没有了解过单片机分配内存这一块的知识,几乎很少在单片机上做内存管理

此帖出自ARM技术论坛
 
 
 

回复

10

帖子

1

TA的资源

一粒金砂(中级)

7
 

单片机的存储结构可分为哈佛结构和冯·诺依曼结构。

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。

冯·诺伊曼结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

 

有了结构的概念,再来看不同结构下,程序存储和数据存储怎么划分,大体分为片内、片外,又分为只读、易失性存储等等

此帖出自ARM技术论坛
 
 
 

回复

7452

帖子

18

TA的资源

五彩晶圆(高级)

8
 

直接申请大数组!

此帖出自ARM技术论坛

点评

资源够随便用,资源不够挤挤用  详情 回复 发表于 2023-8-15 14:59
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

4771

帖子

12

TA的资源

版主

9
 
直接申请大数组!

资源够随便用,资源不够挤挤用
此帖出自ARM技术论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

10
 

这玩意学起来真得劲

此帖出自ARM技术论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表