单片机芯片中的RAM与flash到底有什么作用

本文介绍了单片机中RAM和Flash两种存储器的基本概念和作用。RAM作为运行速度快但易失性的存储区域,主要用于存放程序运行时的变量和运算结果;而Flash则是非易失性存储,用于存储程序代码,即使断电数据也不会丢失。通过51单片机点亮LED的程序示例,展示了程序大小如何影响RAM和Flash的使用情况。
摘要由CSDN通过智能技术生成

简要总结:在单片机中RAM是存变量以及变量的运算的地方,flash是存程序的地方。

存储器分类

关于存储器的类型,在网上多种多样,同一存储器名字也有多种叫法,使初学者苦不堪言,同时为了方便读者理解,以下是具体分类。

 

概念

(1)RAM

掉电数据丢失,但运行快,正是因为运行快,所以程序中变化的数据都会在RAM中变化,变量也存储在里面。

(2)flash

 运行慢,但掉电数据不丢失,正是因为掉电不丢失,所以写好的程序会存在flash里面。

举例

举一个例子说明

51单片机点亮的程序, while(1);的作用:只执行一次led1=0;,然后一直执行空语句。(不是重点)

可以看到红色框框内有data xdata code,data与xdata表示的都是变量的大小,data存储是内部RAM,xdata存储在外部RAM,code就是程序大小。

当前为

也就是变量的大小为9个字节,程序有19个字节。

(只改变code的大小)

 当去掉while(1);这段代码,再进行编译。

可以看到 

data没有变,而code从19变成了18,也就是程序大小变小了。

 (只改变data的大小)

在上图的代码基础上加一行代码。char a;

可以看到data=10.0,从9变成了10,同时我们知道char型变量占一个字节,理论上data的大小也该加一,事实上也是如此。

详细见https://www.bilibili.com/video/BV1eJ41187Tn/?spm_id_from=333.788

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值