当前位置: 首页 > 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 语句,你可以引入…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Golang——6、指针和结构体

指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...