S32K3基于EB配置WDG模块

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

看门狗/Wdg模块是一个独立的定时器,可用于系统使用。它的作用是提供安全功能以确保软件按计划执行,并且CPU不会陷入无限循环或执行意外的代码。如果Wdg模块在一定时间内未被触发/刷新/喂狗,它将复位MCU。这是一个非常常用、非常重要的一个模块。

AUTOSAR MCAL Wdg模块主要提供以下服务/API:

初始化/Wdg_Init
设置模式/Wdg_SetMode
设置触发条件(设置超时时间/喂狗)/Wdg_SetTriggerCondition

根据平台不同,实际API可能稍有不同,本例程中是使用EB tresos配置生成。

一、S32K3xx平台中WDG模块特点

1、NXP提供的wdg可配置为2中模式“直接服务模式”和“GPT触发模式”。
2、超时动作可配置为复位或中断。复位模式下,首次喂狗超时MCU直接复位;中断模式下,首次超时将触发wdg超时中断,连续两次喂狗超时MCU才会复位。
3、可配置为窗口/普通看门狗

二、WDG的配置和使用

1.MCAL配置

本例程中使用GPT触发模式,首先配置GPT通道:
在这里插入图片描述
配置WDG模块:
在这里插入图片描述
例程中只使用了slow模式,故其只展示slow模式配置,其它模式配置结果类似:
在这里插入图片描述

2.wdg的使用

1、wdg初始化前需要先开使能GPT中断:
在这里插入图片描述
服务wdg的GPT通道不需要使用Gpt_StartTimer()开启,初始化wdg时会自动开启,中断周期为9、中所示周期的1/2
2、初始化wdg:
在这里插入图片描述
3、函数运行中需要循环调用Wdg_43_Instance0_SetTriggerCondition()更新 Trigger Condition,防止wdg超时

三、NXP提供的GPT触发WDG特点

“GPT触发模式”的wdg本质上是由2个定时器组成的,一个是GPT中断服务的硬件看门狗定时器,另一个是Wdg_43_Instance0_SetTriggerCondition()服务的软件定时器。
wdg硬件定时器在完成章节二中的GPT中断使能和wdg初始化后,就已经开始正常喂狗了
在这里插入图片描述
Wdg_Cbk_GptNotification0()中主要工作为1查看Wdg_43_Instance0_SetTriggerCondition()中设置的Trigger Condition是否超时,若没有超时则进行复位硬件看门狗计数;若软件定时器超时,则停止GPT中断,不进行喂狗
软件定时器由Wdg_43_Instance0_SetTriggerCondition()服务,若函数调用的周期大于Trigger Condition,则停止GPT功能,最后导致硬件看门狗超时复位。

总结

使用GPT触发式wdg总结如下:
1、在GPT触发模式下,将用于触发WDG回调的GPT通道中断使能
2、当使用多个wdg时,注意wdg看门狗初始化函数需要分别调用, Wdg_Init()将失效
3、看门狗驱动程序可以设置在RAM或者ROM中运行,例如:bootloader在RAM中运行时,看门狗要配置在RAM下运行
4、由于中断冲突,看门狗超时时间和触发条件不能有相似的值。(SetTriggerCondition和喂狗周期不能冲突)
5、Trigger Condition必须大于调用Wdg SetTriggerCondition()的调用周期,这样Wdg才不会过期。
6、为避免触发中断与主循环的潜在冲突,用户应避免选择等于或等于服务周期倍数的所有硬件触发器。

  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值