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

简要总结:在单片机中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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部