AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)

传送门 -> AUTOSAR配置与实践总目录

Autosar配置与实践(基础篇)2.3 RTE对Ports的支持 S/R接口分类(隐式、显式、队列)

  • 一、S/R显式模式与隐式模式
    • 1.1 显式模式
    • 1.2 隐式模式
    • 1.3 两者对比
  • 二、S/R显式模式细分
    • 2.1 直接读写(显式)
    • 2.2 使用队列(显式)
    • 2.3 函数原型

前两个章节我们介绍了RTE的概念、主要功能及对Runnable所提供的支持,本章节将基于S/R接口详细介绍其分类,重点阐述不同类型S/R接口的实现原理。

一、S/R显式模式与隐式模式

对于S/R通信模式,从调用模式可分为显示(Explicit)和隐式(Implicit)两种模式。

1.1 显式模式

AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第1张图片

  • 显式模式Runnable运行时用户直接操作数据(全局变量,用户调用S/R接口)

显式模式代码示例
AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第2张图片

1.2 隐式模式

AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第3张图片

  • Runnable运行前调用Read先缓存数据(全局变量buffer -> 局部变量buffer,RTE自动实现)
  • Runnable运行时用户操作的是缓存数据(用户调用S/R接口)
  • Runnable运行后将缓存数据真正写入(局部变量buffer -> 全局变量buffer,RTE自动实现)

隐式模式代码示例
AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第4张图片

1.3 两者对比

AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第5张图片

二、S/R显式模式细分

从队列角度划分,由于隐式模式不支持队列方式,因此对于S/R通信模式又可分为显式(直接读写)和显式(使用队列)。

2.1 直接读写(显式)

AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第6张图片

2.2 使用队列(显式)

AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第7张图片 显式(队列)

  • 队列类型的接口写和读runnable数量比可能1:1,1:n, n:1, 中的一种,但是不管哪种形式,一个S/R接口系统会独立分配一个Queue缓存
  • 队列是循环队列,在Sender接口中实现入队操作,在Receiver接口中实现出队操作
  • 队列长度可在Receiver端Port中指定
  • 利用动态入队/出队进行队列元素个数管理,队列满时候报RTE_E_LIMIT错误
  • 利用动态入队/出队进行队首、队尾指针管理,标志读写位置。
    注意:循环队列指针的指向可循环进行(首部依次写—写队列满—首部循环写入)

2.3 函数原型

关于接口类型函数原型,我整理了表格如下参考:
AutoSAR配置与实践(基础篇)2.3 RTE对Ports的支持 - S/R接口分类(隐式、显式、队列)_第8张图片

传送门 -> AUTOSAR配置与实践总目录

你可能感兴趣的:(单片机,mcu,汇编,c语言,stm32,51单片机)