我有一个使用ARM Cortex M4的项目,其缩放CPU频率取决于工作负载。我想使用WWDG,因为它允许更多选项,如看门狗中断。问题是:可变时间长度CPU滴答是否有任何标准的解决方法?
答案 0 :(得分:0)
对此有非常不同的解决方案。选择哪个取决于您的设置和适应性(更准确地说它的关键性)。如果WD仅用于检测卡在非关键应用中,即没有伤害人类,动物或昂贵的物质损害的严重危险,那么具有放松时间的正常WD绝对足够。如果应用程序是关键的,并且您希望在低于时间限制的情况下出现严重的不当行为,则可以使用WWDG。
所以我有两个可能的解决方案,一个简单,一个复杂;哪一个最适合您的用例取决于您对系统的要求(我无法判断,因为您没有告诉您正在使用哪种系统)。第一种解决方案是以任何设置满足限制的方式配置WWD。所以配置相当宽松,但对于许多用例来说已经足够了。所以你不必关心时钟频率的动态切换。
更复杂的解决方案是测量时钟变化之间的时间,并确定直到下一次WD服务的目标时间与新选择的频率。当两者之间不再发生变化时,那时WD将被保留。否则,您需要使用最新频率的intervall,并计算必须提供WD时的下一个相对时间戳。但这取决于你需要的时间,如果可以实现这一点。如果你的时间非常艰难(例如,<1ms),那么这不是一个可行的选择。但另一方面,如果计算很复杂,您将获得一个简单的挑战响应WD,除了时间之外,它还会检查您的ALU的健康状况。