接劳巴,拔掉KL15,MCU重启。不接劳巴,拔掉KL15,MCU正常下电

最近遇到一个神奇的现象,在调试一个单KL15的项目,发现接着劳特巴赫调试器,然后拔掉KL15,软件进入了重启Reset函数,没有进入期望的下电SwitchOff函数。

而不接劳特巴赫,拔掉KL15,观测电流,ECU是可以正常下电。

图片在这里插入图片描述

在当前的状态管理中,监测到KL15断开后,SWC会清除唤醒事件POWER,并调用RTE接口将状态切换到POST_RUN,选择的Shutdown Target为ECU_SHUTDOWN_TARGRT_OFF,而不是ECU_SHUTDOWN_TARGRT_RESET。而到了OffPostOS流程的时候,Shutdown Target却变成了RESET。

所以Shutdown Target是在下电流程过程中,被改掉了。给Target变量打写断点,观测什么时候被修改。分析代码后,发现是由于EcuM判断唤醒事件没有被清除,EcuM就把Shutdown Target改成了RESET。而我们在状态管理的SWC明明清除了POWER,这又是咋回事?

那么接下来就要分析什么时候设置的唤醒事件,在EcuM_SetWakeupEvent处打断点,发现在EcuM_Init中,有两次进入EcuM_SetWakeupEvent。

一次是在DriverInitOne里面,手动写死设置了唤醒源事件为POWER。

另一次是根据上一次复位原因,设置本次唤醒源事件。

图片

结合上图,目前项目中第二种这种通过读取复位原因设置本次唤醒事件源的方法是AUTOSAR设计的。那么看来就是在这里设置了不是POWER的源,而状态管理的SWC只清除了POWER源,下电流程中判断到还有唤醒源事件没有清除,就将Shutdown Target改成了RESET。

代码中获取reset reason是直接调用的MCAL的接口,MCAL是读取的SCU_RSTSTAT寄存器,我们直接将寄存器的值发到CAN上做对比。

图片

接劳巴时,寄存器置位 PORST 和 LBTERM,MCAL接口返回MULTIPLE。

不接劳巴时,寄存器置位 LBTERM,MCAL接口返回 LBIST。

再检查BSW工程的EcuM配置,发现目前MULTIPLE原因(MCAL接口返回值)与RESET唤醒源事件(EcuMWakeSources)map,LBIST原因没有与唤醒源事件map。

所以不接劳巴的时候,由于reset reason和wakeup source没有map,第二次EcuM_SetWakeupEvent没有起作用,第一次EcuM_SetWakeupEvent设置了唤醒源事件为POWER。

接劳巴的时候,reset reason和wakeup source有map,第一次设置了POWER,第二次设置了RESET。所以下电的时候,RESET源没有被清除,就走了重启的流程。

那么LBTERM什么?

手册里解释 LBIST was terminated properly,LBTERM位会设置为1。再看手册 3.1.1.7.5 LBIST execution 解释:LBIST是SSW触发执行的逻辑自检,自检完成后,会发生重启,然后进入用户代码。

更改方式:

可以看出,英飞凌LBIST自检完成正常的话,会设置LBTERM,所以按照现在的MCAL接口返回值,要么只有LBTERM,要么就是MULTIPLE。那么在EcuM的配置中MULTIPLE原因不去map唤醒源即可。也就是不使用AUTOSAR设计的根据复位原因设置唤醒源的逻辑,在EcuM_Init中的DriverInitOne完成设置唤醒源事件就好。

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

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

相关文章

Qt实现Kermit协议

1 概述 Kermit文件运输协议提供了一条从大型计算机下载文件到微机的途径。它已被用于进行公用数据传输。 其特性如下: Kermit文件运输协议是一个半双工的通信协议。它支持7位ASCII字符。数据以可多达96字节长度的可变长度的分组形式传输。对每个被传送分组需要一个确认。Kerm…

python-判断列表字典循环

比较运算符 不等于 ! if 布尔值: [执行语句-真实执行] else: [执行语句] mood_index int(input("对象今天的心情指数的是:")) if mood_index > 60:print("恭喜,今晚应该可以带游戏,去吧")…

2024年水电站大坝安全监测工作提升要点

根据《水电站大坝运行安全监督管理规定》(国家发改委令第23号)和《水电站大坝运行安全信息报送办法》(国能安全〔2016〕261号)的相关规定、要求,电力企业应当在汛期向我中心报送每日大坝汛情。近期,全国各地…

【机器学习】深度解析KNN算法

深度解析KNN算法 KNN(K-最近邻)算法是机器学习中一种基本且广泛应用的算法,它的实现简单直观,应用范围广泛,从图像识别到推荐系统都有其身影。然而,随着数据量的增长,KNN算法面临着严峻的效率挑…

[yolox]ubuntu上部署yolox的ncnn模型

首先转换pytorch->onnx->param模型,这个过程可以查资料步骤有点多,参考blog.51cto.com/u_15660370/6408303,这里重点讲解转换后部署。 测试环境: ubuntu18.04 opencv3.4.4(编译过程省略,参考我其他博客) 安装…

【智能家居入门3】(MQTT服务器、MQTT协议、微信小程序、STM32)

前面已经写了三篇博客关于智能家居的,服务器全都是使用ONENET中国移动,他最大的优点就是作为数据收发的中转站是免费的。本篇使用专门适配MQTT协议的MQTT服务器,有公用的,也可以自己搭建(应该要钱)&#xf…

常见的数学方法

Math类表示数学类,其中的数学方法都被定义成为static形式,所以可以直接通过Math类的类名调用某个数学方法。语法格式: Math.xxx(参数); 例题 输入n个整数a1,a2,a3,......an,求这n个数的最大值max,最小值min&#xff0…

算法之并查集

并查集(Union-find Data Structure)是一种树型的数据结构。它的特点是由子结点找到父亲结点,用于处理一些不交集(Disjoint Sets)的合并及查询问题。 Find:确定元素属于哪一个子集。它可以被用来确定两个元…

【御控物联】 IOT异构数据JSON转化(场景案例一)

文章目录 前言技术资料 前言 随着物联网、大数据、智能制造技术的不断发展,越来越多的企业正在进行工厂的智能化转型升级。转型升级第一步往往是设备的智能化改造,助力设备数据快速上云,实现设备数据共享和场景互联。然而,在生产…

【蓝桥杯】填空题技巧|巧用编译器|用Python处理大数和字符|心算手数|思维题

目录 一、填空题 1.巧用编译器 2.巧用Excel 3. 用Python处理大数 4.用Python处理字符 5.心算手数 二、思维题 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】 一、填空题 …

蓝桥杯day14刷题日记

P8707 [蓝桥杯 2020 省 AB1] 走方格 思路&#xff1a;很典型的动态规划问题&#xff0c;对于偶数格特判&#xff0c;其他的正常遍历一遍&#xff0c;现在所处的格子的方案数等于左边的格子的方案数加上上面格子的方案数之和 #include <iostream> using namespace std; …

蓝桥杯物联网竞赛_STM32L071_13_定时器

CubeMx配置LPTIM: counts internal clock events 计数内部时钟事件 prescaler 预分频器 updata end of period 更新期末 kil5配置&#xff1a; 中断回调函数完善一下&#xff1a; void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim){if(cnt ! 10) cnt…

iOS - Runloop介绍

文章目录 iOS - Runloop介绍1. 简介1.1 顾名思义1.2. 应用范畴1.3. 如果没有runloop1.4. 如果有了runloop 2. Runloop对象3. Runloop与线程4. 获取Runloop对象4.1 Foundation4.2 Core Foundation4.3 示例 5. Runloop相关的类5.1 Core Foundation中关于RunLoop的5个类5.2 CFRunL…

152 Linux C++ 通讯架构实战7 ,makefile编写改成for cpp,读配置文件,内存泄漏查找,设置标题实战

读写配置文件代码实战。nginx.conf 一个项目要启动&#xff0c;需要配置很多信息&#xff0c;第一项就是学习如何配置一个项目 nginx.conf的内容 #是注释行&#xff0c; #每个有效配置项用 等号 处理&#xff0c;等号前不超过40个字符&#xff0c;等号后不超过400个字符&#…

SpringBoot分布式锁自定义注解处理幂等性

SpringBoot分布式锁自定义注解处理幂等性 注解简介 注解&#xff08;Annotation&#xff09;是Java SE 5.0 版本开始引入的概念&#xff0c;它是对 Java 源代码的说明&#xff0c;是一种元数据&#xff08;描述数据的数据&#xff09;。 Java中的注解主要分为以下三类: JDK…

【QT+QGIS跨平台编译】043:【protoc+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

点击查看专栏目录 文章目录 一、protoc介绍二、文件下载三、文件分析四、pro文件五、编译实践一、protoc介绍 protoc 是 Protocol Buffers 的官方编译器 可执行文件版本。与在 Linux 或 macOS 等系统上的 protoc 类似,protoc.exe 在 Windows 环境下提供了相同的功能,用于将 .…

下拉选中搜索angularjs-dropdown-multiselect.js

需要引入angularjs-dropdown-multiselect.js 页面 <div ng-dropdown-multiselect"" options"supplierList_data" selected-model"supplierList_select" events"changSelValue_supplierList" extra-settings"mucommonsetti…

【MySQL】7.MHA高可用配置及故障切换

什么是MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件 mha用于解决mysql的单点故障问题&#xff1b; 出现故障时&#xff0c;mha能在0~30秒内自动完成故障切换&#xff1b; 并且能在故障切换过程中&#xff0…

Day54:WEB攻防-XSS跨站Cookie盗取表单劫持网络钓鱼溯源分析项目平台框架

目录 XSS跨站-攻击利用-凭据盗取 XSS跨站-攻击利用-数据提交 XSS跨站-攻击利用-flash钓鱼 XSS跨站-攻击利用-溯源综合 知识点&#xff1a; 1、XSS跨站-攻击利用-凭据盗取 2、XSS跨站-攻击利用-数据提交 3、XSS跨站-攻击利用-网络钓鱼 4、XSS跨站-攻击利用-溯源综合 漏洞原理…

【群晖】白群晖如何公网访问

【群晖】白群晖如何公网访问 ——> 点击查看原文 在使用默认配置搭建好的群晖NAS后&#xff0c;我们可以通过内网访问所有的服务。但是&#xff0c;当我们出差或者不在家的时候也想要使用应该怎么办呢&#xff1f; 目前白群提供了两种比较快捷的方式&#xff0c;一种是直接注…