当前位置: 首页 > news >正文

AutosarMCAL开发——基于EB Wdg驱动

目录

  • 一、Wdg原理以及作用
    • 1.看门狗类型
    • 2.看门狗功能特点
    • 3.看门狗工作模式
    • 4.看门狗超时响应
    • 5.看门狗寄存器
  • 二、WDG模块EB配置(TC3X系列MCU)
    • 1.WDG通用配置:
    • 2.WDG设置:
    • 3.时钟资源分配
    • 4.配置STM IRQ中断
    • 5.配置触发执行动作:
  • 三、Mcal接口应用
    • 1.软件接口定义
    • 2.应用步骤
  • 四、总结

一、Wdg原理以及作用

WatchDog,顾名思义,看门狗,每次代码运行使用者需要在特定的时间内完成喂狗,否则将会发出警告,进而提醒安全保护模块做出对应处理。TC3XX系列芯片的看门狗(Watchdog)功能是其硬件安全特性的重要组成部分。以下是对TC3XX看门狗功能的详细解释:

1.看门狗类型

  • Safety Watchdog(安全看门狗):用于保护芯片系统层级的安全,防止意外写入关键系统寄存器和存储器。如果在一定时间内未响应其计时器,将引发SMU(安全管理单元)警报请求。
  • CPU Watchdog(CPU看门狗):每个CPU核心都有一个独立的看门狗定时器,用于监视单独的CPU执行线程,并为CPU寄存器以及特定的系统寄存器提供保护。如果在用户可编程的时间段内没有正确地服务(即刷新或“喂狗”),它可能会导致SMU报警请求或触发设备复位。

2.看门狗功能特点

  • 可编程性:看门狗定时器具有可编程的时间基础和重新加载值。
  • 密码保护:对看门狗寄存器的操作需要输入正确的密码才能进行。
  • 时间戳检查与窗口:看门狗功能还提供了可编程的时间戳检查和可编程窗口。
  • 独立监视:单独的CPU监视器计时器提供了监视单独的CPU执行线程的能力,而不需要软件来协调一个共同的监视器的共享使用。

3.看门狗工作模式

  • Time-Out Mode(超时模式):复位以后CPU的Watchdog默认是处在Time-Out Mode下的,WDT在Time-Out Mode下就会从0xFFFC开始往上计数,如果计数到0xFFFF就会溢出。如果在计数到0xFFFF之前没有对WDT进行正确的重新加载操作,WDT将保持在超时模式。
  • Normal Mode(正常模式):在Time-Out Mode下,如果在计数到0xFFFF之前对WDT进行了正确的重新加载操作(即“喂狗”),WDT将从Normal Mode开始从重新加载的值(REL值)往上计数。在Normal Mode下计数到0xFFFF后WDT就溢出了,触发SMU的Timeout的Alarm。
  • Disable Mode(禁用模式):在该模式下,看门狗功能被禁用,不会进行任何计时或监视操作。

4.看门狗超时响应

  • 发送警报:向SMU发送警报请求,指示看门狗定时器已超时。
  • 触发中断:配置为向CPU发送中断请求,以便软件可以采取相应的恢复措施。
  • 复位设备:在严重情况下,可以配置为触发设备复位,以确保系统的稳定性和安全性。

5.看门狗寄存器

看门狗模块主要有三类寄存器:

  • 保护寄存器WDTCPUyCON0(y=0-5)
  • 系统寄存器WDTCPUyCON1(y=0-5)
  • 状态寄存器WDTCPUySR(y=0-5)

其中y代表CORE ID;这些寄存器用于配置、监视和控制看门狗定时器的行为。

二、WDG模块EB配置(TC3X系列MCU)

1.WDG通用配置:

  • 在“General”选项卡下,配置WDG模块的基本参数,这里的Trigger即为喂狗动作,当前配置为STM系统时钟触发,配置为GTM触发将会启用GTMTimerConf选项卡
    在这里插入图片描述

2.WDG设置:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.时钟资源分配

在这里插入图片描述

4.配置STM IRQ中断

  • 配置STM中断,以便及时喂狗
    在这里插入图片描述

5.配置触发执行动作:

  • 在wdg识别异常并发出警告后需要传递至SMU(Safety Management Unit,安全管理单元)模块进行故障处理,因此需要在SMU中配置对应通道执行的异常处理动作。这里配置为NMI(Non-Maskable Interrupt,非屏蔽中断),意味着当该警报触发时,SMU会向CPU发送一个NMI信号,要求CPU中断当前任务并跳转到NMI中断处理函数进行处理,这里也可以直接选择Cpu复位。
    在这里插入图片描述
  • 关于如何确定配置的Wdg连接至SMU 的哪个组,哪个Behavior通道,可以参考User Manual Tc39x附录中的SMU模块详细说明
    在这里插入图片描述

三、Mcal接口应用

1.软件接口定义

  • Autosar标准文件中提及的API共有5个,
接口名传入参数说明返回参数函数功能
Wdg_17_Scu_Init()Wdg_17_Scu_ConfigType* ConfigPtrConfigPtr:Wdg配置指针,参数来自于EB生成代码voidWdg初始化
Wdg_17_Scu_InitCheck()Wdg_17_Scu_ConfigType* ConfigPtrConfigPtr:Wdg配置指针Std_ReturnType:0:OK 1:NotOKWdg初始化检查
Wdg_17_Scu_SetMode()WdgIf_ModeType ModeMode: 0 OFF 1SlowMode 2FastmodeStd_ReturnType:0:OK 1:NotOKWdg切换模式,需开启对应配置
Wdg_17_Scu_SetTriggerCondition()uint16 timeouttimeout:设置定时触发器计数(单位ms)void喂狗并重新设定计数值
Wdg_17_Scu_GetVersionInfo---Wdg版本信息

2.应用步骤

  • WDG超时复位
    1.Wdg_17_Scu_Init()//配置初始化
    2.Wdg_17_Scu_SetTriggerCondition()//初始化设定超时时间
    3.调用Wdg_17_Scu_SetTriggerCondition()//在Wdg溢出之前喂狗

四、总结

本文为博主个人学习总结记录,如有不正,欢迎指正

相关文章:

AutosarMCAL开发——基于EB Wdg驱动

目录 一、Wdg原理以及作用1.看门狗类型2.看门狗功能特点3.看门狗工作模式4.看门狗超时响应5.看门狗寄存器 二、WDG模块EB配置(TC3X系列MCU)1.WDG通用配置:2.WDG设置:3.时钟资源分配4.配置STM IRQ中断5.配置触发执行动作&#xff1…...

Linux(1. 基本操作_命令)

目录 关于超级用户root: root用户可以做什么? 避免灾难: 格式约定: 浏览硬盘: 命令行补全和通配符: 命令行补全: 通配符: 常用基本命令: 查看目录和文件&#xff…...

难点:Linux 死机定位(进程虚拟地址空间耗尽)

死机定位(进程虚拟地址空间耗尽) 一、死机现象 内存富裕,但内存申请失败。 死机时打印: 怀疑是: 1、内存碎片原因导致。 2、进程虚拟地址空间耗尽导致。 3、进程资源限制导致。 二、内存碎片分析 1、理论知识:如何分析内存碎片化情况 使用 /proc/buddyinfo: /proc/…...

小米路由器刷机istoreOS,愉快上网

istoreOS与openwrt openwrt是一个开源的路由器系统,市场上所有小米路由器的内部系统都是基于openwrt进行二次开发形成的,做了硬件适配和功能上的阉割,不太好用。 istoreos是小宝团队基于openwrt制作的一个发行版,更适合中国宝宝体质。页面简约华丽,完全兼容开源openwrt的…...

微信小程序 - 01 - 一些补充和注意点(补充ing...)

目录 一、节流二、在一个发请求的函数中,只有发生下拉动作,才执行关闭下拉代码 最近在学微信小程序,把学习过程中的一些补充和注意点总结一下,内容会比较简单,因为只涉及基础知识,供个人参考 一、节流 情…...

微服务实战——登录(普通登录、社交登录、SSO单点登录)

登录 1.1. 用户密码 PostMapping("/login")public String login(UserLoginVo vo, RedirectAttributes redirectAttributes, HttpSession session){R r memberFeignService.login(vo);if(r.getCode() 0){MemberRespVo data r.getData("data", new Type…...

windows 安装 ElasticSearch

1、下载安装包 下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.3-windows-x86_64.zip ElasticSearch 目录结构如下: 2、配置JDK环境 ES比较耗内存,建议虚拟机4G或以上内存,jvm1g以上的内存分…...

Oracle Linux 9 (CentOS Stream 9) 安装 node.js 20

Oracle Linux 的 node 默认版本为 16,运行dnf update也无法改变大版本,还需要进行额外操作1 查看支持的版本 sudo dnf module list nodejs输出如下 Last metadata expiration check: 3:37:22 ago on Fri 11 Oct 2024 09:08:18 PM JST. Oracle Linux 9 Ap…...

【Axure安装包与汉化包附带授权证书】

一、下载Axure安装包与汉化包附带授权证书 1.下载汉化包 【快传】: 点击链接即可保存 2.解压安装包 解压下载好的压缩包,能看到有lang也就是汉化包,AxureRP-Setup-RC.exe 也就是Axure9的安装程序,以及汉化说明和授权码。 二、安装Axure9…...

SSH隧道验证的原理及实现例子

SSH 隧道验证原理详解 **SSH 隧道(SSH Tunneling)**是通过 SSH 协议将数据在客户端和服务器之间加密传输的一种技术。它可以在不安全的网络上创建一个安全的、加密的通道,用于传输各种数据,例如通过不安全的网络远程登录、传输文…...

[计算机视觉]chapter1

一、什么是计算机视觉 计算机视觉就是用计算机编程,并设计算法来理解在这些图像中有什么。计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼…...

RTKLIB学习记录【postpos、execses_b、execses_r】

本文主要记录对RTKLIB源码中postpos、execses_b、execses_r 函数的源码解读,不涉及其中的天线、星历等文件读取的内容,且为个人理解,如果有误,欢迎交流讨论。 一、postpos 函数部分 /rxn2rtkp函数 → postpos函数传递参数&#x…...

docker,docker-desktop,docker-compose download

docker docker-compose download 百度网盘获取离线包链接release-notes 参考dockerdocker-composewlspowershell...

C#_带参数的委托进入队列执行

我们经常会遇到一些函数多个地方调用,但是只能单独执行的就需要把它放到队列中执行。 1.创建对应该方法的委托(传参和回参类型需要一致)。 //委托: public delegate void CameraTaskDelegate(byte cs, ref byte[] buffer);//对应函数: public void CameraSettingRead(by…...

【OpenCV】(二)—— 图片读取展示和保存

上一小节中我们成功安装了opencv,我们这次学习使用opencv最基础的功能,读取和展示图片,首先准备一张用于实验的样例图片【cat.jpg】如下: 然后就是创建一个python项目并导入相关依赖 import cv2读取图片 读取图片使用imread方法…...

【花卉识别系统】Python+卷积神经网络算法+人工智能+深度学习+图像识别+算法模型

一、介绍 花朵识别系统。本系统采用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,并基于前期收集到的5种常见的花朵数据集(向日葵、玫瑰、蒲公英、郁金香、菊花)进行处理后进行模型训练,最…...

k8s、prometheus、grafana数据采集和展示的链路流程

k8s集群中,容器级别的数据采集是由cAdvisor程序实现 cAdvisor # Container Advisor 容器顾问 cAdvisor程序是kubelet组件的一部分。 每个节点,包括master节点,都有一个kubelet系统服务, kukelet负责管理pod和容…...

sentinel dashboard改造落地设计实现解释(一)-分布式fetcher和metrics存储/搜索

背景 微服务是目前java主流架构,微服务架构技术栈有,服务注册中心,网关,熔断限流,服务同学,配置中心等组件,其中,熔断限流主要3个功能特性,限流,熔断,快速失败。Sentinel是阿里开源的熔断限流组件,sentinel dashboard是演示级别,表现在metrics采集是单机版,metri…...

LabVIEW提高开发效率技巧----时序分析

一、什么是时序分析? 时序分析是优化LabVIEW程序性能的重要步骤。它通过分析程序各个部分的执行时间,帮助开发者找到程序运行中的瓶颈,并进行有针对性的优化。在LabVIEW中,Profile Performance and Memory工具是进行时序分析的关…...

python不用ide也能进行调试

import pdb pdb.set_trace()import pdb 和 pdb.set_trace() 是 Python 中用于调试代码的工具。以下是它们的具体含义和用法: import pdb pdb 是 Python 的内置调试器模块,允许开发者在运行时进行代码调试。 通过 import pdb 语句,你可以引入…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

GitHub 趋势日报 (2025年06月08日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

MySQL 主从同步异常处理

阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示&#xff…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix,按照"之"字形的方式打印这个矩阵,例如: 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为:1,…...

python打卡day49@浙大疏锦行

知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...

21-Oracle 23 ai-Automatic SQL Plan Management(SPM)

小伙伴们,有没有迁移数据库完毕后或是突然某一天在同一个实例上同样的SQL, 性能不一样了、业务反馈卡顿、业务超时等各种匪夷所思的现状。 于是SPM定位开始,OCM考试中SPM必考。 其他的AWR、ASH、SQLHC、SQLT、SQL profile等换作下一个话题…...

开源 vGPU 方案:HAMi,实现细粒度 GPU 切分

本文主要分享一个开源的 GPU 虚拟化方案:HAMi,包括如何安装、配置以及使用。 相比于上一篇分享的 TimeSlicing 方案,HAMi 除了 GPU 共享之外还可以实现 GPU core、memory 得限制,保证共享同一 GPU 的各个 Pod 都能拿到足够的资源。…...

CCF 开源发展委员会 “开源高校行“ 暨红山开源 + OpenAtom openKylin 高校行活动在西安四所高校成功举办

点击蓝字 关注我们 CCF Opensource Development Committee CCF开源高校行 暨红山开源 openKylin 高校行 西安站 5 月 26 日至 28 日,CCF 开源发展委员会 "开源高校行" 暨红山开源 OpenAtom openKylin 高校行活动在西安四所高校(西安交通大学…...