我是一名使用 Autosar 标准的软件开发人员。我有两个 PDU 的消息路由问题。我的使用系统使用 Can rx/tx 中断方法。我猜想在收到can消息后就调用了ISR。我想将接收消息复制到缓冲区。但我找不到autosar标准提供的API。我很好奇在使用 can rx/tx 中断方法时路由消息时调用的 api。我认为基于 Autosar 标准的 api 将得到修复。请专家指教。
PDU 级路由在
PduR
中完成,而
基于信号的路由是在 Com
中完成的。
因此,在接收时,无论是轮询还是中断,
Can
都会使用映射到 PDU 的 RxPduId 来调用 CanIf_RxIndication
。然后CanIf
将调用PduR_RxIndication
,它将查找PduRRoutingRelations。然后,它将使用 DestTxPduId 和接收到的 PDU 的数据调用 CanIf_Transmit
。
对于基于信号的路由,这在 AUTOSAR 中完成得更高级别
Com
。
这不必手动编程,它是标准 AUTOSAR 堆栈的一部分。
配置工具使用的 SystemDescription/EcuExtract 也可以定义路由关系,以自动配置堆栈。