单片机断电后静态存储区里面还有数据吗_单片机存储程序的原理

欢迎关注“嵌入式干货铺子”,更多干货,每日分享。

日常工作中大家都会用到仿真器来烧写程序,那么单片机把程序存在哪里了呢,如何放进去的呢,今天我们来学习下相关的知识。

我们烧写进单片机的程序也是大多是bin文件,或者hex文件,这两类文件可以相互转换,hex文件比bin文件多了一些地址等信息,所以相对较大,两者没有本质区别,只是遵从不同的协议格式。

b3840588d5ef9aa9be2092cb84200211.png

我们的代码经过编译、链接生成的文件就以上图的形式烧写进入单片机的flash中,也就是非易失存储器。

关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失。

5666deb8293b8411ce8ab1a7d656c4fc.png

Flash的全名叫做Flash Memory,从名字就可以看出,这是种数据存储设备,存储设备有很多类,Flash属于非易失性存储设备,与此相对应的是易失性存储设备。这类设备,除了Flash。还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。

Flash的硬件实现机制

Flash的内部存储是MOSFET,里面有个悬浮门,是真正存储数据的单元。

其实在Flash之前,紫外线可擦除的EPROM,就已经采用了Floating Gate存储数据这一技术了。

5c717aad45b0a5c04b9b5430f22e0f26.png

数据在Flash内存单元中是以电荷形式存储的。存储电荷的多少,取决于图中的外部门所上施加的电压,这个电压控制存储单元中加入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth来表示,因此,Flash的存储单元的默认值,不是0(其他常见的存储设备,比如硬盘灯,默认值为0),而是1,而如果将电荷释放掉,电压降低到一定程度,则表述数字0。

就这样施加不同的电压就可以实现flash的擦除和写入,这样我们的程序就被存储在单片机里面了,而且掉电后也不会丢失,你明白了吗~~

欢迎大家留言讨论,原创不易,给个关注呗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值