这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【S32K3XX】SWT 模块使用

共7条 1/1 1 跳转至

【S32K3XX】SWT 模块使用 22

高工
2026-03-12 18:09:28     打赏

【简介】

在 S32K 中,看门狗通常具备这些特点:

1. 可配置超时时间,决定多久未喂狗就判定异常。

2.支持窗口模式,只允许在指定时间窗口内喂狗。

3.可选择先中断再复位,或直接复位系统。

芯片内的的SWT 数量是根据核心数来绑定的,芯片设计的时候为每个core 配置了独立的看看门狗。,从下属的描述也可以看出看出看门狗的时钟源为内部SIRC

image.png

在S32D 置界面添加Swt_Ip 就可以将SWT 的驱动文件加入工程之中。

image.png

对应的参数说明如下

image.png

生成代码后对应的驱动文件已经被添加到工程之中了。

image.png


添加如下代码初始化SW0,我们配置在中断中喂狗避免重启。

/*==================================================================================================
*                                       LOCAL VARIABLES
*================================================================================================*/
static uint8_t swt_feed_flag = 1U;

/*==================================================================================================
*                          LOCAL TYPEDEFS (STRUCTURES, UNIONS, ENUMS)
*================================================================================================*/

/*==================================================================================================
*                                   LOCAL FUNCTION PROTOTYPES
*================================================================================================*/

/*==================================================================================================
*                                       GLOBAL VARIABLES
*================================================================================================*/

/*==================================================================================================
*                                       GLOBAL CONSTANTS
*================================================================================================*/

/*==================================================================================================
*                                       GLOBAL FUNCTIONS
*================================================================================================*/
void Swt_CallbackNotification0(void)
{
if(swt_feed_flag)
{
Swt_Ip_Service(CFG_SWT_ID);
}
}
/********************************************************************************************************
 *                                      Shell command define                                            *
 *******************************************************************************************************/

unsigned int swt(char argc, char **argv)
{
    if(argc == 2 && strcmp(argv[1], "init") == 0)
    {
        Swt_Ip_Init(CFG_SWT_ID,&Swt_Ip_Cfg0);
    }
    else if(argc == 2 && strcmp(argv[1], "nofeed") == 0)
    {
        swt_feed_flag = 0U;
    }
    else
    {
        PRINTF("Invalid command. Usage: swt init|nofeed\n");
    }
    return 0;
}

上述测试程序 触发停止喂狗后看门狗进行了复位

image.png


   


           


高工
2026-03-14 20:16:02   被打赏 5 分(兑奖)     打赏
2楼

意思是,看门狗与硬件核心绑定?看门狗超时时只复位绑定的核心?


高工
2026-03-15 06:25:00     打赏
3楼

看门狗也是独立核心之外的吧。


专家
2026-03-16 08:42:54   被打赏 5 分(兑奖)     打赏
4楼

谢谢分享!学习了。“支持窗口模式,只允许在指定时间窗口内喂狗。”中的“指定时间窗口”是什么意思?以往学过的是,看门狗是完全独立的,不受系统其他部件的影响。如果被指定了时间窗口,会不会出问题?


专家
2026-03-16 08:45:42   被打赏 5 分(兑奖)     打赏
5楼

中断中喂狗,这个中断的优先级别设置,有没有要求?


专家
2026-03-16 19:27:27     打赏
6楼

这个看门狗是硬件的吗?是的话 ,稳定性会大大增强。


高工
2026-03-17 15:56:10     打赏
7楼

该有的功能都覆盖了。代码示例完整度可以,就是测试部分可以再多点。展示下不同情况


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]