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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. YTM32B1MC03 的ECC

YTM32B1MC03 的ECC

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

    调用Fls_Lld_GetRecoverr去获取故障标志,程序一运行到这里就跑飞了可能是什么原因?MCAL中ECC哪里需要使能配置一下吗91327f9c-98a3-4a1d-aa50-47cb9da3c978-image.png

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

      这个是MCAL driver 内部使用的是函数,不建议直接调用。你如果确实想知道什么时候发生了ECC错误,可以通过使能Fls模块中的ECC异常处理和中断,并配置通知函数。这样在Fee读取数据时,若发现有ECC错误会通过Notification 函数通知APP。
      image.png
      直接调用Fls_Lld_GetRecoverr跑飞,你看看是否时因为你的工程里面使能了UserMode.

      chenchaoC 1 条回复 最后回复
      0
      • chenchaoC 离线
        chenchaoC 离线
        chenchao
        回复了houjun_xiao 最后由 编辑
        #3

        houjun_xiao 在 YTM32B1MC03 的ECC 中说:

        这个是MCAL driver 内部使用的是函数,不建议直接调用。你如果确实想知道什么时候发生了ECC错误,可以通过使能Fls模块中的ECC异常处理和中断,并配置通知函数。这样在Fee读取数据时,若发现有ECC错误会通过Notification 函数通知APP。
        image.png
        直接调用Fls_Lld_GetRecoverr跑飞,你看看是否时因为你的工程里面使能了UserMode.

        哦哦好的感谢,确实使能了UserMode,还有个问题想请教一下,MCAL中没有看到RAM的配置,如果想知道什么时候RAM发生了ECC错误该如何获取?

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

          目前MCAL没有EMU的driver,如果需要关系而是否发生RAM ECC错误以及错误信息,可以直接从EMU以下几个寄存器获取错误状态以及地址:
          image.png

          chenchaoC 1 条回复 最后回复
          0
          • chenchaoC 离线
            chenchaoC 离线
            chenchao
            回复了houjun_xiao 最后由 编辑
            #5

            houjun_xiao 在 YTM32B1MC03 的ECC 中说:

            目前MCAL没有EMU的driver,如果需要关系而是否发生RAM ECC错误以及错误信息,可以直接从EMU以下几个寄存器获取错误状态以及地址:
            image.png

            好的感谢,直接读取RAM ECC错误是否也会跑飞,需要关闭所有的UserMode使能吗?

            houjun_xiao 在 YTM32B1MC03 的ECC 中说:

            目前MCAL没有EMU的driver,如果需要关系而是否发生RAM ECC错误以及错误信息,可以直接从EMU以下几个寄存器获取错误状态以及地址:
            image.png

            houjun_xiao 在 YTM32B1MC03 的ECC 中说:

            目前MCAL没有EMU的driver,如果需要关系而是否发生RAM ECC错误以及错误信息,可以直接从EMU以下几个寄存器获取错误状态以及地址:
            image.png

            好的感谢,直接读取RAM ECC错误MCU 是否也会跑飞,需要关闭所有模块的UserMode使能吗?

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

              开启UserMode后,在usermode状态下直接读取寄存器,MCU都会飞,你可以参考MCAL代码中的方法,使用OsIf.h中定义的OsIf_Trusted_Call**调用你写的读取ECC寄存器的函数,这样可以在读取寄存器时将MCU切换到特权模式,这样不会跑飞。

              chenchaoC 1 条回复 最后回复
              1
              • chenchaoC 离线
                chenchaoC 离线
                chenchao
                回复了houjun_xiao 最后由 编辑
                #7

                houjun_xiao 在 YTM32B1MC03 的ECC 中说:

                开启UserMode后,在usermode状态下直接读取寄存器,MCU都会飞,你可以参考MCAL代码中的方法,使用OsIf.h中定义的OsIf_Trusted_Call**调用你写的读取ECC寄存器的函数,这样可以在读取寄存器时将MCU切换到特权模式,这样不会跑飞。

                好的十分感谢,还有最后一个问题,Flash可以不开中断,用这种方法去轮询读取ECC错误吗?

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

                  Flash 的 ECC 中断可选择关闭,但建议务必开启 Flash 异常处理机制。不可恢复的 ECC 错误会直接触发总线异常(BusFault),若未对 BusFault 做针对性处理,系统默认异常服务函数会陷入死循环。此外,若 Flash 读取操作触发 ECC 错误,即便退出 BusFault,程序仍会回到出错地址继续执行读取操作,导致 ECC 错误和 BusFault 反复触发。因此必须单独修正PC指针,脱离错误地址,规避该问题。我们Fls模块配置中使能FlsInternalEccErrDisposeEnable后会自动进行上述处理,避免Fee操作的时候导致MCU进入死循环。

                  image.png

                  chenchaoC 1 条回复 最后回复
                  1
                  • chenchaoC 离线
                    chenchaoC 离线
                    chenchao
                    回复了houjun_xiao 最后由 编辑
                    #9

                    houjun_xiao 在 YTM32B1MC03 的ECC 中说:

                    Flash 的 ECC 中断可选择关闭,但建议务必开启 Flash 异常处理机制。不可恢复的 ECC 错误会直接触发总线异常(BusFault),若未对 BusFault 做针对性处理,系统默认异常服务函数会陷入死循环。此外,若 Flash 读取操作触发 ECC 错误,即便退出 BusFault,程序仍会回到出错地址继续执行读取操作,导致 ECC 错误和 BusFault 反复触发。因此必须单独修正PC指针,脱离错误地址,规避该问题。我们Fls模块配置中使能FlsInternalEccErrDisposeEnable后会自动进行上述处理,避免Fee操作的时候导致MCU进入死循环。

                    image.png
                    好的感谢

                    1 条回复 最后回复
                    0
                    • houjun_xiaoH houjun_xiao 被引用 于这个主题

                  • 云途开发生态介绍

                    快速上手云途开发生态

                  • 云途论坛规则/Yuntu Forum Rules

                    发帖前请查看

                  • YT CONFIG TOOL调查问卷

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

                  • can
                    27
                    demo
                    23
                    lin stack
                    13
                    uds
                    13
                    md14
                    6
                    yt-link
                    6
                    fbl
                    5
                    adc模块
                    4
                    Online Users
                    • 登录

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