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                     0Uvoid 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秒喂狗,已经超过了极限喂狗时间,所以程序反复重启。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/319649.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux配置Acado

如果需要使用acado的matlab接口,请移步:Linux Matlab配置Acado 首先,安装必要的软件包: sudo apt-get install gcc g cmake git gnuplot doxygen graphviz在自定义目录下,下载源码 git clone https://github.com/ac…

业务中台IT内部拉通会分享

在我们这个项目中,各个产品之间是通过扁平化的方式进行管理。在前期规划阶段,由于项目计划和模块负责人已经提前确认,各小组都能专注于自己的工作,一切井然有序。 然而,到了UAT阶段,我们发现扁平化的管理方…

Mysql锁机制与优化

欢迎大家关注我的微信公众号: 传送门:Mysql事务原理与优化 目录 概述 锁分类 锁等待分析 锁优化实践 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,除了传统的计算资源(如CPU、RAM、I/O等&…

提升Windows系统安全性的一些有效的策略

假设一个杀猪的机器人感染了病毒,把人识别成了猪,,,,, 1:我偶然发现的:把所有向外的UDP都禁止,但是要开放53号端口,因为这是DNS通讯端口,没有这个…

Axure鲜花商城网站原型图,网上花店订花O2O本地生活电商平台

作品概况 页面数量:共 30 页 兼容软件:仅支持Axure RP 9/10,非程序软件无源代码 应用领域:鲜花网、花店网站、本地生活电商 作品特色 本作品为「鲜花购物商城」网站模板,高保真高交互,属于O2O本地生活电…

【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行环境搭建

1、模板虚拟机环境准备 1.1、 hadoop100 虚拟机配置要求如下 (1)使用 yum 安装需要虚拟机可以正常上网,yum 安装前可以先测试下虚拟机联网情况 [roothadoop100 ~]# ping www.baidu.com (2)安装epel-release [root…

测试管理-缺陷管理工具安装

前言: 项目生命周期里面,开发软件后,需要进行正规的测试,测试除了需要编写测试用例和写测试总结外,还需要进行bug的闭环控制,方便追踪。之前用过惠普的QC系统,这个是收费的,专业做缺…

Alibaba Cloud Linux镜像操作系统超详细测评!兼容CentOS

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS,Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…

npm发布js工具包

一、创建项目 1、在github上创建一个项目,然后拉取至本地,进入项目目录2、执行 npm init 生成json文件3、创建 src/index.ts 入口文件和 src/isObject.ts 工具方法 src/index.ts export { default as isObject } from ./isObject src/isObject.ts /…

Python文件操作及与数据库的交互

更多Python学习内容:ipengtao.com 文件操作和数据库交互是Python编程中常见的任务,无论是读取和写入文件,还是与数据库进行数据交互,都是开发中不可或缺的部分。本文将介绍如何在Python中进行文件操作以及如何与数据库进行交互&am…

Git(3):Git环境常用命令

1 获取本地仓库 要使用Git对我们的代码进行版本控制,首先需要获得本地仓库 (1)在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库 (2)进入这个目录中,点击右键打开…

提高数控六面钻打孔精度的技巧

六面钻是一种高效的自动化打孔设备,广泛应用于板式家具、橱柜、木制品等行业的生产制造。其打孔精度高,是许多企业提高生产质量和效率的关键之一。本文将围绕“六面钻打孔精度高”这一主题,从技巧、应用实例等方面展开讨论。 提高六面钻打孔精…