打印
[Kinetis]

【原创】解析什么是Read 1s命令

[复制链接]
1985|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FSL_FAE_JiCheng|  楼主 | 2013-9-30 09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FSL_FAE_JiCheng 于 2013-9-30 09:36 编辑

       接上篇余热,继续低头码字(小说的感觉又来了啊有木有,呵呵)。


       最近在看Kinetis的Reference Manual的时候发现一个有意思的命令,即Read 1s。乍一看以为是读1秒的意思(你不要跟我说现在小米都出2s了iPhone都出5s了,这个“1s”太落伍了吧,咳咳,我只能说你手机看多了吧,我可不想落下个给手机做广告的嫌疑,呵呵),不过一结合上下文的话这意思可就差的十万八千里了,无奈之下只能安下心来仔细琢磨一会儿(说实话,这E文读的真是累啊,呵呵,要我说啊,为什么国内的科研水平相比于国外上不去,其中一部分原因是现在的科学文献几乎一色的E文,国人别说理解透彻,首先认全单词都得半天,汗,这效率可想而知了,哎,咳咳,当然我并不是反对英文的重要性,稍微替广大技术发烧友们吐槽一下,呵呵),这才发现其中奥妙,觉着挺有意思的,我google了一下还没有人正式的提到过这个问题,所以还是觉着有必要在这里分享出来,仅供参考。


       首先解释一些这个“1s”,其中“s”其实是英文复数的意思,也就是说很多个1,咳咳,这下长见识了吧,看来“1s”还是个多义词来,原来E文也是博大精深的嘛,哈哈。好了,言归正传,既然1s是多个1的话,那Read 1s就是读多个1出来,而且这个命令又是在Flash模块里用的,我们会联想到什么呢,呵呵,估计很多人都已经猜到了。我们都知道,flash存储器由于其架构的原理,对其读写尤其是写来说有两个过程,即先擦除然后再写,而每个字节被擦除后是为1的(我们对flash的写只能是由1写成0,是不能由0写成1的,这是原理性的问题,也解释了为什么我们写数据的时候要先擦除再写,这下知道原因了吧,呵呵),这下我们再联想Read 1s指令就有点“昭然若揭”了吧,结合文档中的内容我们不难理解“Read 1s”命令其实就是用来确认和验证某段Flash区是否被正确擦除了(全擦除了就读回来的全是1,有一个没擦除干净就会返回擦除错误)。下面我们来看一下K60 RM中的一段指令描述:



       从上图我们可以看到,K60有三个“Read 1s”命令,分别为Read 1s Block(验证某块是否被擦除)、Read 1s Section(验证某段区域是否被擦除)和Read 1s All Blocks(验证所有的块是否被擦除)。至于这几个命令的用处可就大了,在高安全领域的应用,假入我们想写一些重要敏感的数据到某段Flash区中,在对flash擦除之后,为了保险起见可以启动这个命令对擦除的区域进行验证,只有完全擦除了才能写进去,不然擦除的时候漏掉某个地址的字节,而这个字节数据又恰好要被用到,那就有可能发生错误。至于其他应用,靠大家自己去琢磨了,呵呵。

       这里我只是简单的说了说这个Read 1s命令,如果大家不理解可以去Kinetis RM上去慢慢啃慢慢理解,当然也欢迎博客下面留言,欢迎交流。不多说了,再聊,未完待续~


相关帖子

沙发
戈卫东| | 2013-10-7 17:01 | 只看该作者
不就是"BLANK CHECK"么?

使用特权

评论回复
板凳
三块石头| | 2013-10-7 18:26 | 只看该作者
那个 Read Once 和 Program Once是什么,这几个词读起来和 Read 1s英语读音是一样的很容易混淆。

使用特权

评论回复
地板
FSL_TICS_Jeremy| | 2013-10-9 15:07 | 只看该作者
学习啊,楼主要持续更新哦!!

使用特权

评论回复
5
countryside| | 2013-10-16 16:27 | 只看该作者
学习了学习了

使用特权

评论回复
6
钟毅| | 2013-10-17 18:22 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:技术源于积累,成功源于执着~ 欢迎访问我的博客http://blog.chinaaet.com/jihceng0622

9

主题

32

帖子

3

粉丝