最近在工作中发现凡事多问几个为什么,会有很多不一样的收获

1、为什么有 nor flash 的存在? 为什么取名字为 flash?

讲一下历史:

杂谈闪存二:NOR和NAND Flash - 知乎

Intel很早就发明了EPROM,这是一种可以用紫外线擦除的存储器。相较于ROM,它的内容可以更新而且可以保持10~20年,老式电脑的BIOS都存储于此。

后来Intel在其基础上于1978年发明了电可擦除的升级版叫做EEPROM。不需要阳光的帮忙,方便多了,可是读取和擦除速度却非常缓慢

富士雄说,由于新发明的这种EEPROM擦除速度飞快,富士雄的同事建议他把这种技术取名Flash,暗合相机的闪光灯飞快闪烁之意

2、norf flash 与 flash 有什么优缺点

1。共性

A. 都是非易失存储介质。即掉电都不会丢失内容。

B. 在写入前都需要擦除实际上NOR Flash的一个bit可以从1变成0,而要从0变1就要擦除整块。NAND flash都需要擦除

2。特性

特性是决定使用哪种Flash的根据,我这里总结出一张表:

3、nor flash 为什么每次写之前都要擦除呢?

擦除从0变1,写入从1变0

nor flash的物理特性是,写入之前需要先进行擦除。擦除后数据为全0xFF,此时写入操作,实际上是将数据从1改成0。

一般先擦后写,但实际上擦除后每个位置是可以写入多次的,只要每次写入都是让某些bit从1变0即可。

例如在擦除后数据为0xFF,此时写入0x0F,可读出0x0F,再写入0x01,可读出0x01,再写入0x00,可读出0x00。

而对于0x00,就无法再改写成任何值了,因为此时每个bit都是0,想要改写就必须先擦除,让其恢复到0xFF,再进行写入改成目标值。

可以参考下面的文章:

nor flash之擦除和写入 - 云+社区 - 腾讯云

nor flash 基础篇相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第八章、Linux 磁盘与文件系统管理

    第八章.Linux磁盘与文件系统管理 最近升级日期:2009/08/30 系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分割槽不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文 ...

  2. 1-STM32+W5500+GPRS物联网开发基础篇-工控板简介

    最近这些日子都在忙活STM+W5500+GPRS的板子,所以前面的那块板子的教程耽搁了些时间. 这次的板子和上一版相比更贴近了使用,是因为有朋友督促我要做一块直接可以在工厂使用的板子,所以设计了这一块 ...

  3. 前端面试题汇总(css基础篇)

    前端面试题汇总(css基础篇) 1 css sprite是什么,有什么优缺点 概念:将多个⼩图⽚拼接到⼀个图⽚中. 通过 background-position 和元素尺⼨调节需 要显示的背景图案. ...

  4. Arduino 高级教程 01:基础篇

    我与 Arduino,以及为什么要写这个系列的文章 Arduino 这个已经火了好多年了,早就不是什么新鲜的技术.如果有人还不清楚 Arduino 是个什么东西,对不起,请自行搜索,随便翻开哪个维基百 ...

  5. 《Sony Vegas Pro 12标准教程》——第1章 基础篇——基础知识 1.1 影视剪辑的概念...

    本节书摘来自异步社区<Sony Vegas Pro 12标准教程>一书中的第1章,第1.1节,作者 糜正磊,更多章节内容可以访问云栖社区"异步社区"公众号查看. 第1章 ...

  6. 【Kotlin】学习小记-基础篇

    Kotlin学习小记-基础篇 Kotlin的介绍 入门基础篇 属性声明 关于val和final的小Tips 参数 1.可变参数 2.命名参数 函数返回值 1.默认返回Unit值 2.返回Nothing ...

  7. 疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇)----(十四)中断系统

    疯狂的大柚柚带你玩转MSP-ESP430G2(基础篇) (十三)中断系统 中断是暂停CPU正在运行的程序,转去执行相应的中断服务程序,完毕后返回被中断的程序继续运行的现象和技术. 中断源(中断分类) ...

  8. ESP32-C3入门教程 基础篇⑪——Non-Volatile Storage (NVS) 非易失性存储参数的读写

    文章目录 一.前言 二.NVS介绍 三.操作流程 3.1 读操作流程 3.2 写操作流程 四.关键函数 五.随机整数 读写示例 六.对象/数组 读写示例 七.总结 八.参考 一.前言 本文基于VS C ...

  9. Flask web开发实战之基础篇 Flask-数据库

    基础篇 第五章 Flask数据库 前言 5. 数据库 5.1 数据库的分类 5.1.1 SQL 5.1.2 NoSQL 5.1.3 如何选择? 5.2 ORM魔法 5.3 使用Flask-SQLAlc ...

最新文章

  1. TensorFlow 制作自己的TFRecord数据集
  2. BCH实用场景增加,Bitwage推出BCH工资单
  3. struts2相对路径解释
  4. 如何解决文件明明存在nginx却提示404
  5. 数据库被挂马的ASP处理方法
  6. 【unity基础系列】1、unity Texture Type设置为Advanced时纹理的格式列表
  7. linux7设备的挂载,centos7磁盘分区与挂载解析
  8. Pro*c源程序中使用宿主结构保存查询结果
  9. JPA学习笔记---JPA理解---第一个JPA程序
  10. 精伦盒子H1,插上USB,找不到对应的文件路径
  11. php7会不会出问题,升级到PHP7后会话不工作
  12. 离散数学第二章(知识点总结)续
  13. FedEx联邦快递查询寄件电子面单API接口接入教程-快递100API(以国际电子面单接口为例)
  14. vue系列(三)——手把手教你搭建一个vue3管理后台基础模板
  15. 亚稳态与同步器及其Verilog实现
  16. Android手机为何不再卡顿?性能优化才是安卓起飞关键
  17. 容联七陌助力VIPKID,优质客户服务赢得家长青睐
  18. 网络游戏开发成本,运营成本,收入
  19. 解决CitSpace分析新版本web of science文献报错“the timing slicing setting is outside the range of your data”
  20. @PersistenceContext 注解在spring中代理

热门文章

  1. Log4j输出格式控制--log4j的PatternLayout参数含义
  2. Java虚拟机学习(4):JDK可视化监控工具
  3. 特征检测器 FeatureDetector
  4. 数字图像处理:第四章 点运算
  5. 使用 Fluentd 和 ElasticSearch Stack 实现 Kubernetes 的集群 Logging
  6. underscore.js源码解析2
  7. USACO1.1Broken Necklace[环状DP作死]
  8. 新浪微博注册用户超3亿 六成活跃者使用移动端
  9. IL入门之旅(三)——Dump对象
  10. CaseStudy(showcase)界面篇-导出xaml以及放入Blend的技巧