Autosar PNC网络管理配置-UserData的使用

embedded/2024/12/19 16:22:12/

文章目录

    • 前言
    • Com
      • ComSignal
      • ComIPdu
    • CanNm
    • Signal Mapping
    • 总结

前言

之前配置的网络管理报文中的data都由ComM管理,后面客户新增了需求,最后两个byte需要发送Wakeup Reason,本文记录一下相关配置的修改

Com

ComSignal

之前配置的PN_TX,长度为6,也就是后面6个byte都是由ComM写(全部用作PN位)

长度需要修改为4byte,也就是32bit

RX的也要改下,如下图所示

image

image
需要新增一个user data的Signal发送,长度为2个字节,此处BitPosition为55,是Motorloa Msb表示方式,对应BIG_ENDIAN

image
本文的Signal已经配置好了,后面有空会单独出一篇新增Signal的文章

ComIPdu

将刚刚那个user data的signal关联到其对应的Pdu上,如下图所示

image
此处关联了两个ComIPduSignal

CanNm

CanNm需要将之前的mask删掉2个byte

image
PnInfoLength改为4,因为后面2个byte是user data,后面通过应用层发送所需的信号

至此,BSW的配置就完成了,可以生成BSW代码了。

Signal Mapping

在对应的SWC中新建一个P Port,数据类型和之前的User data一样

image
在system中将该Interface和ComSignal中的对应信号进行mapping

image
对ECU进行提取

image
提取完后生成RTE,会生成对应的RTE接口

#define Rte_Write_NmWakeUpSrc_uint16( data ) (Rte_Write_CD005A_PwrSplyDrvCtrl_NmWakeUpSrc_uint16(data))
...
FUNC(Std_ReturnType, RTE_CODE)
Rte_Write_XXX_NmWakeUpSrc_uint16(VAR(UInt16, AUTOMATIC) data) /* 2 */
{VAR(Std_ReturnType, AUTOMATIC) rtn = RTE_E_OK;/* The signal is isWakeUpReasonsfor */if ( ((VAR(StatusType, AUTOMATIC))E_OK) != Com_SendSignal(((VAR(Com_SignalIdType, AUTOMATIC))22), &data) ){rtn = ((VAR(Std_ReturnType, AUTOMATIC))RTE_E_COM_STOPPED);}/* Send complete */return rtn;
}

调用该接口发送需要的数据即可

总结

能配置生成的,尽量不手码,毕竟手写一堆bug~


http://www.ppmy.cn/embedded/36750.html

相关文章

学习和分析各种数据结构所要掌握的一个重要知识——CPU的缓存利用率(命中率)

什么是CPU缓存利用率(命中率),我们首先要把内存搞清楚。 硬盘是什么,内存是什么,高速缓存是什么,寄存器又是什么? 我们要储存数据就要运用到上面的东西。首先里面的硬盘是可以无电存储的&#…

IP证书能免费申请吗

IP SSL证书是一种数字证书,用于保护网络服务器和网络浏览器之间的通信。该证书是一种主要保护公网IP地址的专属信任SSL证书。 IP类型的SSL证书对于直接用IP地址传输数据的技术人员来说,十分重要!无论是防洪还是防劫持还是数据加密都起到了关…

Docker网络基础

简介 Docker 本身的技术依赖于近年来 Linux 内核虚拟化技术的发展,Docker 对 Linux 内核的特性有很强的依赖。Docker 使用到的与 Linux 网络有关的主要技术有:网络命名空间、veth 设备对、网桥、ipatables 、路由。 网络命名空间 为了支持网络协议栈的多个实例,Linux在网络栈…

.双链表.

题目: 实现一个双链表,双链表初始为空,支持 55 种操作: 在最左侧插入一个数;在最右侧插入一个数;将第 k𝑘 个插入的数删除;在第 k𝑘 个插入的数左侧插入一个数&#xf…

【算法基础】第六章:贪心

Chapter 6 贪心 1:区间选点 给定 N个闭区间 [a,b],请你在数轴上 选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位于区间端点上的点也算作区间内。 区间问题的本质就是排序 按左端点排序按右端点排序双关…

Go中如何将io.Writer转换成字符串(将两个管道连接的exec.Command输出的标准输出获取成字符串)

假设我们需要在Go中运行下面的命令: PS -A | grep wget这里需要写成两个exec.Command,如下,第一个命令为cmd,第二个为cmd2: cmd : exec.Command("PS", "-A") cmd2 : exec.Command("grep&qu…

【论文阅读】Fuzz4All: Universal Fuzzing with Large Language Models

文章目录 摘要一、介绍二、Fuzz4All的方法2.1、自动提示2.1.1、自动提示算法2.1.2、自动提示的例子2.1.3、与现有自动提示技术的比较 2.2、fuzzing循环2.2.1、模糊循环算法2.2.2、Oracle 三、实验设计3.1、实现3.2、被测系统和baseline3.3、实验设置以及评估指标 四、结果分析4…

35.Docker-数据卷,目录挂载

注意:在容器内修改文件是不推荐的。 1.修改不方便,比如vi命令都无法使用。 2.容器内修改,没有日志记录的。 问题:那应该如何修改容器中的文件呢? 数据卷 volume是一个虚拟目录,指向宿主机文件系统中的…