跳转至内容
  • 24 主题
    35 帖子
    EnweiE
    问题影响MCAL版本 所有已发布的MC0/MD1/ME0/HA0 v2.3.0 及之前的MCAL。 问题描述

    通过Wdg模块的YCT工程配置无法使能Wdg_Inst0(WDG模块)和Wdg_Inst1(EWDG模块)的SchM保护,存在喂狗序列被外设中断打断导致WDG复位的风险。
    9a7559ce-e9f9-499c-8a8f-dcf89c231547-image.png

    问题分析:

    在Wdg模块的SchM实现(SchM_Wdg_180_Inst0.h,SchM_Wdg_180_Inst0.c, SchM_Wdg_180_Inst1.h,SchM_Wdg_180_Inst1.c)中使用了基于宏WDG_SCHM_SUPPORT的条件编译,决定是否开启Wdg模块的SchM保护功能,而YCT工程中Wdg模块(Wdg_180_Inst0和Wdg_180_Inst1)SchM配置产生的宏定义为WDG_180_INST0_SCHM_SUPPOR和WDG_180_INST1_SCHM_SUPPORT,与WDG_SCHM_SUPPORT没有任何关联。
    在WDG_SCHM_SUPPORT未定义的情况下,Wdg模块的SchM保护函数默认为空函数,从而导致Wdg模块的SchM保护功能总是disable ,无法enable:
    a00096d0-158d-4e38-8a1f-156c9c642a2a-image.png

    解决方案: 已发布MCAL版本

    通过在应用工程配置全局宏WDG_SCHM_SUPPORT = STD_ON使能Wdg模块的SchM保护。
    ① 通过YCT配置工程实现(适用用VSCode IDE + CMake + GCC/IAR/Keil/GHS工程)
    在YCT配置工程的ProjecSetting -> Compiler Option -> Compiler Options -> Other flags输入框中单独一行输入-DWDG_SCHM_SUPPORT=STD_ON:
    aa53b35a-b0b3-4b72-b32f-60ce3a93c2bb-image.png
    ② 在IAR/Keil/GHS IDE工程的C compiler预定义宏配置中增加WDG_SCHM_SUPPORT = STD_ON

    未来发布MCAL新版本修复

    通过在Wdg模块的SchM实现(SchM_Wdg_180_Inst0.h和SchM_Wdg_180_Inst1.h)中使用基于WDG_180_INST0_SCHM_SUPPORT和WDG_180_INST1_SCHM_SUPPORT判断:
    a2946e89-709f-4601-97cd-a53cfa3fa40d-image.png
    9d98918f-30b4-4718-8d9b-9f3e8a015e9f-image.png
    具体位置:
    904e4b76-0cc8-47e3-b833-7ac9ff960770-image.png

  • 1k 主题
    6k 帖子
    houjun_xiaoH

    包括下面的这些static 变量

    image.png

  • Blog posts from individual members

    37 主题
    95 帖子
    陈凯

    问题解决了,使用ACMP_DRV_Disable(0)函数禁能后,就能赋值成功了,重新是能输出完成

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

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

  • Online Users