当前位置: 首页> 科技> 名企 > 网页链接下载_广告网页推广_线上销售培训机构_在线代理浏览国外网站

网页链接下载_广告网页推广_线上销售培训机构_在线代理浏览国外网站

时间:2025/7/11 15:05:24来源:https://blog.csdn.net/qq_36181546/article/details/146163146 浏览次数:2次
网页链接下载_广告网页推广_线上销售培训机构_在线代理浏览国外网站

在AUTOSAR中,隐式读写所用的Data Access Point接口形式如下表所示

Data Access Point接口形式
DataReadAccessRte_IRead_xxx
DataWriteAccessRte_IWrite_xxx

隐式读写的特点如下图所示,
对于发送方,会在Runnable执行后更新一下对应的buffer
对于接收方,会在Runnable执行前先获取一下对应的buffer
在这里插入图片描述

如果一个SR Interface上的数据配置的是隐式的写入DataWriteAccess
代码分析可以看到,会在RE_OUTP_SWC() 这个Runnable 执行后更新一下对应的buffer VAR(boolean, RTE_DATA) Rte_Rx_000114;下一次发送的时候会发送这个值:

FUNC (void, OUTP_SWC_CODE) RE_OUTP_SWC(void) 
{     Rte_IWrite_RE_OUTP_SWC_PP_ETAS03_Sig10_ETAS03_Sig10(iWrite1); } 
#define Rte_IWrite_RE_OUTP_SWC_PP_ETAS03_Sig10_ETAS03_Sig10( data ) ( Rte_EcucPartition_CanOsApp_ImplicitBufs.isa_Core0_10.Rte_OsTask_CanOsApp_ASW_10ms.wbuf42.value = (data) ) 

VAR(boolean, RTE_DATA) Rte_Rx_000114;TASK(OsTask_CanOsApp_ASW_10ms)
{/* Box: Implicit Buffer Initialization begin *//* Pre-fill of write buffer */Rte_EcucPartition_CanOsApp_ImplicitBufs.isa_Core0_10.Rte_OsTask_CanOsApp_ASW_10ms.wbuf42.value = Rte_Rx_000114;/* Pre-fill of write buffer */{/* Box: CPT_OUTP_SWC begin *//* Box: populateTask begin */RE_OUTP_SWC();/* Box: populateTask end *//* Box: CPT_OUTP_SWC end */}/* Box: Implicit Buffer Flush begin */Rte_ImplWrite_OUTP_SWC_PP_ETAS03_Sig10_ETAS03_Sig10(Rte_EcucPartition_CanOsApp_ImplicitBufs.isa_Core0_10.Rte_OsTask_CanOsApp_ASW_10ms.wbuf42.value);/* Writeback to global receive buffer because it is needed as the source of the buffer fill for --deviate-implicit-modify-for-loopbacks semantics *//* Write to Sender-Receiver DataItem /COM_Interface/SR_Interface_ETAS03_Sig10/ETAS03_Sig10 in port /RTA_BIP/OUTP_SWC/PP_ETAS03_Sig10 on Application Software Component Instance     /ETAS_FlatView/SwComponentTypes/ETAS_FlatView/CPT_OUTP_SWC */Rte_Rx_000114 = Rte_EcucPartition_CanOsApp_ImplicitBufs.isa_Core0_10.Rte_OsTask_CanOsApp_ASW_10ms.wbuf42.value;TerminateTask();
}

如果一个SR Interface上的数据配置的是隐式的读取DataReadAccess

代码分析可以看到,在Runnable
RE_EthUT_func执行前先把这个数据通过RtaIoc_Read_ImplRead_OsTask_EthOsApp_ASW_10ms读到这个buffer中Rte_EcucPartition_EthOsApp_ImplicitBufs.isa_Core2_10.Rte_OsTask_EthOsApp_ASW_10ms.rbuf0.value

FUNC (void, EthUT_CODE) RE_EthUT_func(void)
{Eth_uint32 iRead1;iRead1 = Rte_IRead_RE_EthUT_RPort_SignalBased_Udp_Rx_RPort_UDP_SignalBased_RX();
}
#define Rte_IRead_RE_EthUT_RPort_SignalBased_Udp_Rx_RPort_UDP_SignalBased_RX()  ( (CONST(Eth_uint32, RTE_DATA)) Rte_EcucPartition_EthOsApp_ImplicitBufs.isa_Core2_10.Rte_OsTask_EthOsApp_ASW_10ms.rbuf0.value )
TASK(OsTask_EthOsApp_ASW_10ms)
{
/* Box: Implicit Buffer Initialization begin */
/* Box: Implicit Buffer Initialization end */
/* Box: Implicit Buffer Fill begin */
RtaIoc_Read_ImplRead_OsTask_EthOsApp_ASW_10ms(&Rte_EcucPartition_EthOsApp_ImplicitBufs.isa_Core2_10.Rte_OsTask_EthOsApp_ASW_10ms.rbuf0.value);
/* IocRead_Rte_Rx_002291_0 call moved into grouped IOC read above */
/* Box: Implicit Buffer Fill end */
{
/* Box: CPT_EthUT begin */
/* Box: populateTask begin */
RE_EthUT_func();
/* Box: populateTask end */
/* Box: CPT_EthUT end */
}/* Box: Implicit Buffer Flush begin */
/* Box: Implicit Buffer Flush end */
TerminateTask();
}
关键字:网页链接下载_广告网页推广_线上销售培训机构_在线代理浏览国外网站

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: