S32K312软件看门狗之Software Watchdog Timer (SWT)

S32DS的SDK中提供了Wdg,是属于MCAL层的,配置有点复杂,还需要以来Gpt、Mcu和Platform框架里的东西,配置到已经开发好的工程中还容易出现配置问题。本文主要讲解Software Watchdog Timer (SWT)的软件看门狗配置和使用示例,这个看门狗属于Drivers层的,配置和使用很简单,也无需额外以来其他组件。

示例Demo工程,极限喂狗时间设置为2秒,操作模式设置为喂狗超时就重启。另一种操作模式是中断通知,需要依赖中断组件,不是本次描述重点。

Software Watchdog Timer (SWT)组件添加如下图所示:

为了方便查看,在代码中引入RTT日志打印的代码。

 

测试代码如下:

 

/*==================================================================================================
*   Project              : RTD AUTOSAR 4.4
*   Platform             : CORTEXM
*   Peripheral           : S32K3XX
*   Dependencies         : none
*
*   Autosar Version      : 4.4.0
*   Autosar Revision     : ASR_REL_4_4_REV_0000
*   Autosar Conf.Variant :
*   SW Version           : 2.0.1
*   Build Version        : S32K3_RTD_2_0_1_D2207_ASR_REL_4_4_REV_0000_20220707
*
*   (c) Copyright 2020 - 2021 NXP Semiconductors
*   All Rights Reserved.
*
*   NXP Confidential. This software is owned or controlled by NXP and may only be
*   used strictly in accordance with the applicable license terms. By expressly
*   accepting such terms or by downloading, installing, activating and/or otherwise
*   using the software, you are agreeing that you have read, and that you agree to
*   comply with and are bound by, such license terms. If you do not agree to be
*   bound by the applicable license terms, then you may not retain, install,
*   activate or otherwise use the software.
==================================================================================================*/

/**
*   @file main.c
*
*   @addtogroup main_module main module documentation
*   @{
*/

/* Including necessary configuration files. */
#include "Clock_Ip.h"

#include "Swt_Ip_BOARD_InitPeripherals_PBcfg.h"
#include "Swt_Ip.h"

volatile int exit_code = 0;
/* User includes */
#include "SEGGER_RTT_Conf.h"
#include "SEGGER_RTT.h"

#define SWT_INST                     0U

void delay(uint32 timeout)
{
    volatile uint32 i = timeout;

    while(i--);
}

/*!
  \brief The main function for the project.
  \details The startup initialization sequence is the following:
 * - startup asm routine
 * - main()
*/
int main(void)
{
    /* Write your code here */
	SEGGER_RTT_printf(0,"Clock_Ip_InitClock ... \n");
	Clock_Ip_InitClock(&Clock_Ip_aClockConfig[0]);

	/*Initialize SWT */
	SEGGER_RTT_printf(0,"Swt_Ip_Init ... \n");
	Swt_Ip_Init(SWT_INST, &Swt_Ip_Cfg0);

	for(;;)
	{
		SEGGER_RTT_printf(0,"Swt_Ip_Service ... \n");
		Swt_Ip_Service(SWT_INST);
		delay(1*16000000U);
	}

    for(;;)
    {
        if(exit_code != 0)
        {
            break;
        }
    }
    return exit_code;
}

/** @} */

 极限喂狗时间设置为2秒,我们一秒左右喂狗一次的效果如图

我们3秒左右喂狗一次的效果如下:

因为3秒喂狗,已经超过了极限喂狗时间,所以程序反复重启。

综上所述,已经到了我们使用和验证软件看门狗的目的了。

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: s32k的Watchdog看门狗)是一种硬件功能,旨在提高系统的可靠性和稳定性。它是一种定时器,用于监视系统的运行状态,并在系统停止响应时自动重启系统或采取其他措施。 Watchdog的工作原理是在系统启动时启动一个计时器,定时器周期性地向操作系统发送信号,作为系统正常工作的标志。如果系统正常运行,操作系统会在每个周期内重置或刷新Watchdog计时器。如果系统出现故障或停止响应,操作系统将无法刷新Watchdog计时器,计时器则会超时。 一旦Watchdog计时器超时,它将触发一个复位信号,导致系统重启。这样,Watchdog起到了保护系统免受死锁(系统停止响应)和其他故障的作用。此外,Watchdog还可以设置为在系统停止响应时触发其他操作,例如发送警报信号或进行日志记录。 通过使用Watchdog,系统可以在遇到严重故障时及时进行自动重启,从而避免人为干预或系统长时间停机。这对于要求高可靠性和稳定性的系统,如自动控制系统、仪表仪器、工业控制等领域非常重要。 综上所述,s32k的Watchdog是一项重要的功能,它有效地监控系统的运行状态并在必要时采取措施以保护系统的可靠性。 ### 回答2: S32K的看门狗Watchdog)是一种用于监视系统运行状态的重要功能。它类似于现实生活中的看门狗,当系统出现异常或崩溃时,看门狗能够自动重启系统,确保系统持续可靠运行。 看门狗主要由看门狗定时器(WDT)和看门狗控制寄存器(WCR)两部分组成。看门狗定时器是一个独立的硬件计数器,它在系统启动时启动计数,并按照预设时间间隔进行递减。当计数器值归零时,看门狗控制寄存器会触发一个复位信号,使系统重启。这样就能避免系统长时间停滞或假死,提高系统的稳定性和可靠性。 在S32K中,我们可以通过设置寄存器来配置看门狗的工作模式和计数器时间。可以根据系统的需求,设置适当的计数器时间,以及是否启用看门狗复位功能。同时,看门狗还可以配合其他系统监控功能一起工作,例如外部中断或系统时钟监控器。 需要注意的是,看门狗并不是万能的解决方案。在设计中还需慎重考虑计数器时间的设置,以免触发误复位。另外,应及时处理系统异常问题,以避免看门狗频繁触发重启。 总之,S32K的看门狗是一项非常重要的系统保护功能,它能够监控系统运行状态并自动重启系统,确保系统的可靠性和稳定性。合理配置和使用看门狗可以大大提高系统的工作效率和可用性。 ### 回答3: S32K是一款由恩智浦公司开发的32位微控制器,其内置了一种看门狗定时器(Watchdog Timer)。Watchdog Timer是一种硬件设备,在嵌入式系统中用于检测和处理系统可能出现的故障或错误情况。 看门狗的主要工作原理是通过定时器来监视系统的运行状态。它需要被定期重置,否则将会触发一个系统复位信号。这样,如果系统在正常运行时出现问题,导致无法及时重置看门狗,系统将会被强制复位,以防止系统崩溃或陷入无限循环。 S32K微控制器上的看门狗具有以下特点: 1. 看门狗定时器的计数器可以由软件程序进行配置,并且可以在系统的各个阶段进行启用、禁用或重置。 2. 看门狗定时器可以设置一个预置值,定时器计数器必须在该值之前被重置,否则将会触发看门狗复位。 3. 看门狗复位信号可以用来重新启动整个系统,以确保系统从错误状态中恢复。 通过使用S32K的看门狗功能,我们可以增强系统的稳定性和可靠性。当系统出现异常时,看门狗能够及时检测问题,并采取相应措施,例如强制系统重启,确保系统能够正常工作。这种硬件级别的保护机制能够提高系统的可靠性和抗干扰能力,使S32K微控制器在各种应用场景下都能够保持正常运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值