写flash,要不要加个判断?

相关文章

既生Flash,又何生EEPROM?

存储器Flash页、扇区、块的区别

这是我一个知识星球朋友的提问

1fec7a6cdb999a77cf29ae06d83d957b.png

刚开始我没有认真去思考这个问题,之后我仔细查了下资料,里面的内容还挺多。

先看看EMMC的结构

EMMC 是在nand flash的基础上增加了一个控制器,cpu和emmc交流实际上是和它的控制器进行交流。相当于emmc多了一个管家。

2c969dc01a29f4f674927113fd9c3a43.png

NAND FLASH的特点

1)  初始存储为1

2)写0只要操作一个page

3)写1需要操作整个block,1个block包含多个page

---

假装解释下为什么写 FLASH前,要先判断里面的内容

从读写速度上解释

ef41a116f6a527dcea3fac611ac5c71c.png

上面是我从一个EMMC的规格书上截图出来的资料,EMMC的读写速度是不同的,不同的读写速度肯定是存在不同的读写时序,既然读写时序不同,那当然应该让代码越快越好。

所以,从这点上看,先读判断数值是应该的。

EMMC 可以无限次读写吗?

刚开始在微信群里面讨论的时候,得到的信息是,EMMC可以无限次读,但是不能无限次写。

因为写会意味着需要对存储区进行擦擦操作,这个我是可以理解的。

但是实际上是怎样的,我还是一知半解

然后,得到一个小姐姐指导之后,大概的理解是这样的。

EMMC完全写满后擦除算一次,普通的EMMC可以擦除3000次,所以容量*3000 就是EMMC可以写入的内容大小。「计算寿命这点我还是持怀疑态度

2da9a9df3f85dba680a6b41c70259c58.png

后面查资料了解到,不同的flash颗粒,它的擦除次数和速度是不同的,这就是不能无限写的关键原因。

7d8436b2b851d081051ae7892f2701f5.png

我们平时使用的EMMC是TLC种类,这样的EMMC一个cell有3个bit位,可以表示 2^3 = 8中电平状态。

状态越少,需要表示的电平就约不精细,计算也就会越快,当然了,价格越贵,体积会越大,这样反而不利于消费电子。

f457fd13cf07f57a4e96d6b5830e828b.png

如上图,SLC的速度很快,只需要两个电压级别。

TLC的速度会比较慢,需要8个电压级别来表示。

为什么EMMC的规格书上面都不写上最大擦除或者写入的次数?「也就是emmc的寿命」

到目前我也没有得到特别准确的答案,有了解的同学可以在评论区回答。我猜测是,因为EMMC有控制器,如果你不断的擦除一个位置,即使的超过最大次数,但是因为EMMC的控制器存在,它可以改变实际存储的EMMC地址,让你做不到在同一个区域不断的擦除。再加上容量的不确定,就不好确定EMMC的寿命了。

特斯拉召回是怎么回事?

e05225e4eb1c067dddbb5cb97bd1513b.png

我猜测,可能这个系统上的EMMC配置很小,可能就真的存在某个程序在不断的写入,导致EMMC擦除次数达到上限。

参考:

https://blog.csdn.net/weixin_42151788/article/details/114577735

https://szlin.me/2017/08/23/kernel_seccomp/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT 事业发展:树立自己的品牌

发展事业并达到事业顶峰是指树立自己的形象并进行自我推销。方法就在这里。 摘自 Sutton Hart Press (2011) 出版的《Fame 101》。 Jay 和 Maggie Jessup Fame 101 的基础以及成名公式很简单:成名 树立个人品牌 宣传 将自己的品牌推向市场 个人财务发展 宣传长…

mysql用户数据导入_mysql创建数据库、用户及导入数据_mysql数据库教程

怎样mysql创建数据库、用户及导入数据1. 修改MYSQL服务器字符集为utf8:1.1 当前MYSQL服务器字符集设置SHOW VARIABLES LIKE character_set_%;1.2 修改字符集mysql> SET character_set_client utf8 ;mysql> SET character_set_connection utf8 ;mysql> SET character…

谈谈JDK8中的字符串拼接

字符串拼接问题应该是每个Java程序员都熟知的事情了,几乎每个Java程序员都读过关于StringBuffer/StringBuilder来拼接字符串。 在大多数的教程中,也许你会看到用号拼接字符串会生成多个String,导致性能过差,建议使用StringBuffer/…

破解STM32F103芯片的方法

大家好,我是写代码的篮球球痴本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。该芯片主要应用非常广泛,日常消费类电子产品,工控设备,电机驱动,变频器&#xff…

排序算法之两路归并排序(Java)

将2个有序的数组合并为一个有序的数组 时间复杂度为O(nlogn) 默认是按升序进行排序&#xff1a; public class MergeSort { public static int[] sort(int[] data, int low, int high) {int mid (low high) / 2;if (low < high) {sort(data, low, mid);sort(data, m…

一天学一个模式_第一天:策略模式

概念&#xff1a;  策略模式定义了一系列的算法&#xff0c;并将每一个算法封装起来&#xff0c;而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 &#xff08;原文&#xff1a;The Strategy Pattern defines a family of algorithms,encapsula…

python标准库怎么用_Python常用标准库使用(一)

自学python一段时间&#xff0c;之前总是学习基本语法&#xff0c;对Python标准库没怎么接触&#xff0c;所以计划从常用的标准库开始&#xff0c;大体了解一遍&#xff0c;下面是学习过程中的笔记。一、OS模块主要对目录、或者文件操作。常用方法如下&#xff1a;os.listdir(p…

英伟达|jetson nano开发使用的基础详细分享

大家好&#xff0c;我是写代码的篮球球痴&#xff0c;最近我朋友写了一篇英伟达开发板的文章&#xff0c;分享给大家。前言&#xff1a;最近拿到一块jetson nano 2GB版本的板子&#xff0c;折腾了一下&#xff0c;从烧录镜像、修改配件等&#xff0c;准备一篇开箱基础文章给大家…

埃及乘法

乘法可以看成n个a相加&#xff0c;那么所需要的时间为O(n)&#xff0c;那么如何降低乘法的时间呢&#xff08;降低为logn)&#xff1f; 埃及乘法算法就是一种&#xff0c;分为奇数和偶数&#xff0c;&#xff08;例如计算n*a)偶数从1开始是a,然后1✖2&#xff0c;aa以此类推&am…

排序算法之快速排序(Java)

快速排序 平均时间复杂度 O(NlogN) 最差时间复杂度O(N*N) 不稳定 它的基本思想是&#xff1a;通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对这两部分数据分别进行快速排序…

shell 自动输入密码

原文地址&#xff1a;http://biancheng.dnbcw.info/linux/297018.html 在shell脚本中需要用root用的来执行指令&#xff1a; sudo 自动输入密码echo "password" | sudo -S netstat -tlnp-S The -S (stdin) option causes sudo to read the password from th…

和PP在腾讯

昨天晚上十点&#xff0c;我在会议室搞项目&#xff0c;PP发消息给我说 「你什么时候下班&#xff0c;等我一下&#xff0c;我下去见见你再走」。我说「你赶紧下来&#xff0c;我熬不住了」。因为确实比较晚&#xff0c;然后自己手上开发的事情也还没完成&#xff0c;有时还会冒…

python求回数_用python求回数

今天学到filter函数&#xff0c;做一道练习题&#xff0c;求回数的&#xff0c;我前前后后差不多用了半个小时才把它弄出来&#xff0c;先是有思路了然后写出来后一直报错&#xff0c;又改改换换&#xff0c;最后其实是某个小问题导致的&#xff0c;每次查这种小问题时都先怀疑…

第二章 寄存器

CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件。程序员通过改变各种寄存器中的内容来实现对CPU的控制。寄存器包括&#xff1a;AX、BX、CX、DX、SI、DI、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。 2.1 通用寄存器 8086CPU的所有寄存器都是16位的&#x…

排序算法之选择法排序(Java)

选择排序 时间复杂度 O(n*n) 不稳定的排序算法 思想是&#xff1a;每一趟从待排序的数据元素中选出最小的一个元素&#xff0c;顺序放在已排好序的数列的最后&#xff0c;直到全部待排序的数据元素排完。 下面是关键部分代码&#xff1a; public static void select_so…

周末生活日记|我们和楠哥

这周是双休&#xff0c;早上跟楠哥一起睡了一个大懒觉。早上11点起来&#xff0c;不过小米音箱在9点的时候就在客厅响音乐&#xff0c;我大叫一声「小爱同学&#xff0c;停止播放」&#xff0c;然后继续蒙头大睡。11点起来&#xff0c;哦&#xff0c;在我们家我还算起的早的&am…

lnmp基于fastcgi实现nginx_php_mysql的分离_LNMP基于FastCGI实现Nginx,PHP,MySQL的分离

LNMP基于FastCGI实现Nginx,PHP,MySQL的分离[日期&#xff1a;2012-11-12]来源&#xff1a;Linux社区作者&#xff1a;laoguang[字体&#xff1a;大 中 小]平时安装LNMP是把它们安装到同一台机器上&#xff0c;我想这个对大家来说丝毫没有挑战&#xff0c;下面我们实现把他们剥离…

green ethernet

green ethernet 今天老大让我测试交换机那个green ethernet 功能&#xff0c;我当时还纳闷&#xff0c;没听说这个概念&#xff0c;上网查了一下&#xff0c;原来是节能的一个功能。其主要作用有两个&#xff1a; 1,绿色节能交换机将自动侦测端口状态&#xff0c;如果某端口呈…

学习笔记=《你不知道的JavaScript(上卷)》第三章:函数作用域和块级作用域...

3.1 函数中的作用域 &#xff08;1&#xff09;JavaScript具有基于函数的作用域&#xff0c;每声明一个函数的时候会为其自身创建一个‘气泡’&#xff0c;这个气泡内声明的变量或函数外界无法访问。 函数作用域的含义是指&#xff0c;属于这个函数的全部变量都可以在整个函数范…

使用python game写一个贪吃蛇游戏

前言 最近在用python 做项目&#xff0c;也想对python有多一些了解&#xff0c;之前有用C语言和C写过python游戏&#xff0c;刚好可以通过这个游戏来对python多一些了解。 文章内容翻译自以下链接 https://www.edureka.co/blog/snake-game-with-pygame/ pygame 介绍 pygame是…