• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

Flash写入问题

Spirit 2018-10-19 浏览量:978

都知道向Flash写入之前,要确保该扇区已经擦除过。

假如,Flash中某个地址原来的数据是0xAF,想把它改写为0x80。这种情况不需要擦除吧。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可是 flash 是块写入,能保证整个块都是这样的操作没事,有一个byte 不是这样的话,那写入的数据就是错的

    • 发布于 2018-10-19
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11

  • 1改0是可以的,但是大量数据这样得不到保障
    • 发布于2018-10-19
    • 举报
    • 评论 0
    • 0
    • 0

  • flash的写入特性其实对单个是可以1改0,但因为你不能保证所有的一块中都只涉及1改0,所以标准的做法还是先备份一块的数据,对应区域需要改写的在备份数据中进行改写,然后擦除块,然后写入整个块。
    • 发布于2018-10-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 理论上是可行的,但是有些flash有写保护,没有擦除是不允许写的

    而且要看flash介质,有些是只能0改1,有些只能1改0!!!

    • 发布于2018-10-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 你得先擦除,然后再重新编写,不然会被保护拒绝
    • 发布于2018-10-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种写入还真的可以不用擦除,但,flash写入的最小单元一般是4个字节的,要确保四个字节都是这种情形才行
    • 发布于2018-10-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 其实写FLASH 就是一个写0的过程,单独写1是写不了,只能通过擦除的方式才能置1.
    • 发布于2018-10-22
    • 举报
    • 评论 0
    • 0
    • 0

  • FLASH是按块为单位写入的,像你这种想法单字节写入根本是不能实现的,除非是批量的0xAFxiecheng0x80。不过0xAF->0x80只需要拉低几位就可以了,的确不需要先擦除。

    • 发布于2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是不能直接写1,一般都是要擦除的时候才能写1
    • 发布于2018-11-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个要按块写入,不能单个写入,否则会出现问题
    • 发布于2018-11-21
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

Flash写入问题