跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. FEE是如何进行数据保护的?是否需要多备份?

FEE是如何进行数据保护的?是否需要多备份?

已定时 已固定 已锁定 已移动 YTM32B1M系列
10 帖子 3 发布者 221 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • hjkjH 离线
    hjkjH 离线
    hjkj
    写于 最后由 编辑
    #1

    1、写的途中掉电后FEE是如何保护的,此次因为异常写入失败后下次读取是否会使用上一次成功写入的数据?

    2、当BLOCK没有写入数据时使用Fee_Read之后Fee_GetJobResult是返回MEMIF_JOB_FAILED还是MEMIF_BLOCK_INVALID?

    3、当BLOCK写过数据,但是数据校验和出现不对的时候是否会返回MEMIF_JOB_FAILED还是MEMIF_BLOCK_INCONSISTENT还是MEMIF_BLOCK_INVALID? 此时应用软件应该进行多备份恢复处理

    1 条回复 最后回复
    0
    • houjun_xiaoH 离线
      houjun_xiaoH 离线
      houjun_xiao YunTu
      写于 最后由 编辑
      #2

      1.Fee写入过程中未写入完成掉电,下次上电不会使用最后一次写入的数据,会使用前一次完整写入的数据。

      1 条回复 最后回复
      0
      • houjun_xiaoH 离线
        houjun_xiaoH 离线
        houjun_xiao YunTu
        写于 最后由 编辑
        #3

        2.当BLOCK没有写入数据时使用Fee_Read之后Fee_GetJobResult是返回MEMIF_BLOCK_INCONSISTENT;
        3.Fee driver写入数据过程中,不会check用户数据的校验和,如果APP有需求,需要自行计算并将校验和数据放在Block数据中。

        hjkjH 1 条回复 最后回复
        0
        • yt0069Y 离线
          yt0069Y 离线
          yt0069
          写于 最后由 编辑
          #4

          详细的Fee工作原理可参考
          Fee应用笔记 V0.1.pdf

          1 条回复 最后回复
          0
          • hjkjH 离线
            hjkjH 离线
            hjkj
            在 回复了 houjun_xiao 最后由 编辑
            #5

            houjun_xiao 在 FEE是如何进行数据保护的?是否需要多备份? 中说:

            2.当BLOCK没有写入数据时使用Fee_Read之后Fee_GetJobResult是返回MEMIF_BLOCK_INCONSISTENT;
            3.Fee driver写入数据过程中,不会check用户数据的校验和,如果APP有需求,需要自行计算并将校验和数据放在Block数据中。

            第3点指的是某个BLOCK ID已写过数据,后续去读的时候,由于FLASH异常或者被误擦除部分数据导致校验和验证失败,此时Fee_GetJobResult会返回MEMIF_JOB_FAILED还是MEMIF_BLOCK_INCONSISTENT还是MEMIF_BLOCK_INVALID?
            另外,应该是写的过程中FEE driver自动生成校验和写入32Byte数据信息中对应的(Block Hdr)位,下次读取的时候会自动重新计算读出的数据校验和去和Block Hdr校验吧?若此时校验和不对Fee_GetJobResult应该返回什么?

            1 条回复 最后回复
            0
            • houjun_xiaoH 离线
              houjun_xiaoH 离线
              houjun_xiao YunTu
              写于 最后由 编辑
              #6

              Fee模块在初始化时会搜寻每个Block的最后一次有效数据地址,在后面每次写入时,写入成功这个Block的有效数据地址就会更新。所以,你说的这种情况,除非人为的破坏掉他的最后一次有效数据,应该是不存在的。如果人为破坏掉最后一次有效数据,Fee是无法识别的,他还是会在之前识别的有效位置读取数据。如果Fee在Read的过程中遇到这个Block 存在Ecc错误,那么本次读取返回MEMIF_JOB_FAILED。
              Block HDR位中没有Fee Data的校验和。如果APP需要校验和,建议加载自己的Block Data里面,例如在Data的最后四个字节用于存放校验和。

              hjkjH 1 条回复 最后回复
              0
              • hjkjH 离线
                hjkjH 离线
                hjkj
                在 回复了 houjun_xiao 最后由 hjkj 编辑
                #7

                houjun_xiao
                21defe89-8421-4c54-867e-ba61e203c7cf-1736128707325.png

                按照文档记录,每个Cluster和Block信息里都会有相应的校验和以及有效标志位,就是说这些暂时没有使用,需要我们自己在每个block结尾加上个校验?还是说这些校验和只是校验信息本身的内容,不包含data里的数据

                1 条回复 最后回复
                0
                • houjun_xiaoH 离线
                  houjun_xiaoH 离线
                  houjun_xiao YunTu
                  写于 最后由 编辑
                  #8

                  校验和只是针对HDR的,与Block的用户数据没有关联。valid标志是在数据写完之后写入的,只有前面的所有Block数据写入成功以后,才会写入valid标志,所以valid标志存在,即这一个Block数据即有效。

                  hjkjH 1 条回复 最后回复
                  0
                  • hjkjH 离线
                    hjkjH 离线
                    hjkj
                    在 回复了 houjun_xiao 最后由 hjkj 编辑
                    #9

                    houjun_xiao
                    当写block的时候,出现写失败(FLASH坏块等异常),FEE是否会自动寻找下个地址继续写,直到成功?
                    再次触发写的时候是否会跳过该坏块?

                    1 条回复 最后回复
                    0
                    • houjun_xiaoH 离线
                      houjun_xiaoH 离线
                      houjun_xiao YunTu
                      写于 最后由 编辑
                      #10

                      Fee写入Block失败之后,不会自动重复写入该Block,是否再次写入由用户决定。再次写入时,会跳过刚才写入的地址范围,在新的空白区域写入,不会在之前写入失败的区域进行二次写入。

                      1 条回复 最后回复
                      0

                    • 云途论坛规则/Yuntu Forum Rules

                      发帖前请查看

                    • YCT离线License申请流程

                      帮助没办法联网的电脑使用YCT

                    • YT CONFIG TOOL调查问卷

                      帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                    • demo
                      12
                      can
                      9
                      lin stack
                      6
                      yt-link
                      5
                      vscode
                      3
                      adc模块
                      2
                      i2c
                      2
                      uuid
                      2
                      Online Users
                      • 登录

                      • 登录或注册以进行搜索。
                      • 第一个帖子
                        最后一个帖子
                      0
                      • 版块
                      • 最新
                      • 标签
                      • 热门