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

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

存储器分类

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

单片机芯片中的RAM与flash到底有什么作用_第1张图片

 

概念

(1)RAM

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

(2)flash

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

举例

举一个例子说明

单片机芯片中的RAM与flash到底有什么作用_第2张图片

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

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

当前为

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

(只改变code的大小)

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

单片机芯片中的RAM与flash到底有什么作用_第3张图片

可以看到 

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

 (只改变data的大小)

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

单片机芯片中的RAM与flash到底有什么作用_第4张图片

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

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

你可能感兴趣的:(知识,单片机,嵌入式硬件)