wordpress云建站系统,wordpress ajax评论图片,wordpress网络图片不显示图片,在哪里学做网站简介#xff1a;
现在的汽车越来越智能化和复杂化#xff0c;这得益于汽车软件和电子控制系统的发展。为了帮助汽车制造商和供应商更好地开发和管理汽车软件#xff0c;全球性的汽车软件开发标准——AUTOSAR#xff08;AUTomotive Open System ARchitecture#xff09;应…简介
现在的汽车越来越智能化和复杂化这得益于汽车软件和电子控制系统的发展。为了帮助汽车制造商和供应商更好地开发和管理汽车软件全球性的汽车软件开发标准——AUTOSARAUTomotive Open System ARchitecture应运而生。本系列博客将以通俗易懂的方式介绍AUTOSAR的基本概念、架构、接口和模块帮助读者深入了解AUTOSAR的内部机制和设计原则并指导读者如何使用AUTOSAR标准来开发高质量的汽车软件。 目录
FIFO
通信接口
传输协议
错误处理 FIFO
此规范描述了一种将I-PDU数据传输单元从一个源传输到多个目的地下层模块的可能性并使用FIFO先进先出队列行为进行网关化。FIFO队列可用于通信接口和传输协议即使使用多个N-PDU消息。
如果配置了PduRQueueDepth大于1的值则Tx Pdu缓冲区应具有先进先出FIFO行为。在接下来的章节中“FIFO”或“FIFO队列”这个术语被用作PduR的Tx I-PDU缓冲区的同义词。
FIFO具有状态这些状态可能在从不同上下文调用的各种PduR API中改变。例如PduR_SrcLoRxIndication调用可能会被PduR_DstLoTxConfirmation调用中断。因此有必要保护这些并发调用。
如果在直接数据提供的情况下使用FIFO则目标I-PDU必须配置为调用PduR_DstLo/DstLoTpTxConfirmation参见PduRTransmissionConfirmation。
每个目标IPDU都应该能够配置一个FIFO。
如果使用FIFO进行直接数据提供则当调用PduR_SrcLo/SrcLoTpRxIndication并且同一PDU的上次传输尚未通过PduR_DstLo/DstLoTpTxConfirmation得到确认时PduR应将新数据排队到FIFO中。
如果使用FIFO进行直接数据提供则当调用PduR_SrcLo/SrcLoTpRxIndication并且FIFO队列为空且同一PDU没有任何确认时应直接调用DstLo/DstLoTp_Transmit。FIFO保持为空。
当调用PduR_SrcLo/SrcLoRxIndication并且FIFO队列为空时在触发传输数据提供的情况下应将接收到的I-PDU复制到FIFO中并调用DstLo/DstLoTp_Transmit。
当调用PduR_SrcLo/SrcLoTpRxIndication并且FIFO队列不为空时接收到的I-PDU应作为最新条目进行复制。
当调用PduR_DstLo/DstLoTpTxConfirmation并且FIFO队列不为空时在直接数据提供的情况下应调用带有FIFO中最旧I-PDU的DstLo/DstLoTp_Transmit。传输的I-PDU之后应被删除。
通信接口
在规范中当调用PduR_DstLoTriggerTransmit并返回E_OK时将复制并删除最旧的FIFO条目。如果此后FIFO队列不为空则应使用最旧的IPDU调用DstLo_Transmit。
需要注意的是如果目标模块是FrIf则需要配置Pdu的FrIfCounterLimit 1因为在计数器递减之前将调用新的传输。对于LinIf没有这样的限制但不支持将FIFO队列路由到间歇性帧。
传输协议
[SWS_PDUR_00830] 当 PduR_SrcLoTpStartOfReception 被调用并且 FIFO 启用时PduR 应从 PduRTxBuffer 中为每个目的地1:n 情况下保留足够的缓冲区。
[SWS_PDUR_00831] 当收到 PduRTpThreshold 或完整的 (PduR_DstLoTpRxIndication 被调用的) I-PDU 时PduR 应在目的地传输协议上开始传输。
[SWS_PDUR_00832] 如果同一路由路径的另一个 PduR_SrcLoTpStartOfReception 被调用则 PduR 应将 I-PDU 存储在 FIFO 中。
[SWS_PDUR_00833] 当从目的地传输协议模块接收到 PduR_DstLoTpTxConfirmation 时如果 FIFO 不为空则 PduR 应开始传输下一个 I-PDU。
[SWS_PDUR_00834] 允许在网关上使用 routing-on-the-fly。如果 FIFO 队列为空则每当达到 PduRTpThreshold 时PduR 可以调用 DstLoTp_Transmit。
[SWS_PDUR_00835] 如果 FIFO 队列已经包含至少一个条目则应将接收到的消息存储在 FIFO 中并在此 FIFO 队列条目到达传输时间时即当此消息首先在 FIFO 中时立即调用 DstLoTp_Transmit。
注使用 FIFO 的网关-on-the-fly 的效果是它将是一种更快的网关 TP 消息的方式。显然如果 FIFO 不为空则接收到的消息必须被存储而不是转发到目的地 TP。
错误处理
[SWS_PduR_00788] 如果使用FIFO缓冲区的路由路径中调用DstLo_Transmit()并传递一个I-PDU时返回E_NOT_OK则应将该I-PDU从FIFO中移除并尝试发送下一个FIFO入口的I-PDU如果有的话。如果没有则不进行任何操作。(SRS_PduR_06012SRS_PduR_06105)
[SWS_PDUR_00807] 如果使用FIFO缓冲区的路由路径中DstLo_Transmit()返回E_NOT_OK则PDU Router模块应向DET模块报告PDUR_E_PDU_INSTANCES_LOST。 (SRS_PduR_06012SRS_PduR_06105)
[SWS_PduR_00806] 当一个目的地无法发送I-PDU时即DstLo_Transmit()返回E_NOT_OK其他目的地应继续发送I-PDU。()
[SWS_PduR_00255] 如果FIFO已满并且调用了新的PduR_SrcLoRxIndication那么FIFO应被清空。(SRS_PduR_06012SRS_PduR_06032)
注意如果PduRQueueDepth配置为1且PduRDestPduDataProvision配置为PDUR_TRIGGERTRANSMIT则新的IPdu将始终在下一个PduR_LoTriggerTransmit调用中被复制。这是“后来居上”的行为。
[SWS_PduR_00670] 如果FIFO被清空则PDU Router模块应向DET模块报告PDUR_E_PDU_INSTANCES_LOST。(SRS_PduR_06012SRS_PduR_06032SRS_PduR_06106)
[SWS_PduR_00669] 如果FIFO被清空则由PduR_SrcLoRxIndication传递的新I-PDU应被处理就像FIFO为空一样。(SRS_PduR_06012SRS_PduR_06032)
造成FIFO清空的新I-PDU将被处理并不会被丢弃。