前言
将例举个接口,并且观察davinci 界面 与生成的代码 的具体实现
一、什么是Sender-Receiver(S/R方式?
1、S/R方式支持1:n(即一个发送方,多个接收方),n:1(即多个发送方,一个接收方)通信
2、直接调用,实际就是相当于RTE定义了一个全局变量,swc读写此变量
二、具体实现
1 Rte_Read/Rte_Write
1.1 接口定义
在Rte_Type.h中 定义了访问端口与可以调用的所有API函数的数据结构类型 但具体的实现不在这里
1.2接口实现
在.\Appl\GenData\Rte_SystemApplication_OsCore0.c 中我们可以看到api的具体实现 就是通过这些api 直接读写 底层全局变量 来实现的
可以在.\Appl\GenData\Rte_SystemApplication_OsCore0.c中看到 确实是在这里读写全局变量 其中 data就是那个我们最初填入要赋值到 或者取值 的那个变量的地址
全局变量 位于.\Appl\GenData\Rte_SystemApplication_OsCore0.c
这个变量会在Rte_Type.h中 去外部声明
到此我们可以知道 实际上他就是通过 api 去访问了 全局变量来获取到的值。
虽然我们在davinci 中 给这个接口设置的是receive 但它还是给最底层的全局变量生成了全套的接口
都位于.\Appl\GenData\Rte_SystemApplication_OsCore0.c
我们在应用实际应使用的是上层接口 位于.\Appl\GenData\Components\Rte_CDD_IO.h 在上面开头就有提到
可以看到这里也确实只给了我们Read 接口。
总结
以上便是一个简单的port 接口的rte 代码实现 基于davinci