反射内存卡学习及使用---rfm2g驱动安装

目录

  • 反射内存卡简介
  • 一、测试环境搭建
  • 二、rfm2g驱动安装
    • 1.下载官方驱动
    • 2.安装驱动
    • 3.测试


反射内存卡简介

什么是反射内存卡?反射内存卡(RMN Reflective Memory Network)是一种高速的实时网络,它允许采用不同的总线结构和不同的操作系统的计算机以确定的速率分享实时数据。反射内存网络不仅具有严格的传输确定性和可预测性,而且具有高速、主机负载轻、软硬兼容性强、易于使用、可靠的传输纠错能力、支持中断信号传输等特点。

反射内存网络主要由反射内存卡通过光纤等传输介质链接而成,网上的每一台计算机插入一块反射内存卡形成各个节点,而每个节点的反射内存卡上的存储器中都有反射内存网上其他节点的共享数据拷贝。反射内存卡可以插在多种总线主板上,如PCI、CompactPCI/PXI、VME等,每个反射内存卡都占有一段内存地址,网上任何计算机向本地反射内存卡写数据时,该数据和相应的内存地址被广播到网上所有其他反射内存卡并存储在相同的位置。所以计算机将数据写入其本地反射卡内存后,网上所有的计算机都可以访问这个新的数据。
反射内存卡使用简单的读写方式,反射内存网上的数据传输是纯硬件操作,不需要考虑网络的通信协议,软件上只需要运行几行代码就可以完成对反射内存卡的读、写操作,因此它与以太网等其他传统网络相比,具有更低的数据传输延迟、更快的数据传输速度、更简单灵活的使用操作,可以满足实时系统快速反应周期的要求。

一、测试环境搭建

把反射内存卡插入到计算机的PCI插槽,如果是两张卡则要用光纤进行连接。

注意:插卡前计算机要关机断电(最好关掉开关并且拔掉电源线)

二、rfm2g驱动安装

1.下载官方驱动

网上找到驱动的开源库,点这里 。
我是公司给提供的驱动,具体需要卡和驱动对应,这里不深入研究,实际使用时默认可以拿到对应的驱动。

驱动目录结构如下:
反射内存卡学习及使用---rfm2g驱动安装_第1张图片
目录说明:

api:反射内存api接口文件
diags:官方提供的反射内存命令行程序,也是通过调用API接口实现的,可以通过这个程序以命令的方式write及read反射内存数据。
driver:驱动程序代码
include:驱动程序头文件
samples:官方提供的测试样例,包含发数据,收数据和map反射内存数据到本地内存空间三个文件。可以直接make -f Makefile* 后执行。
rfm2g_init:可带参数执行该命令Usage: rfm2g_init {start|stop|restart|reload},启动、停止、重启等
rfm2g_load:安装驱动后会调用这个脚本创建设备文件,加载驱动ko文件等。

2.安装驱动

原本可以直接执行根目录下的Makefile文件,但这里有一个坑,它并不会先执行api目录里的Makefile,因此会有以下错误:
在这里插入图片描述
实际上,此时驱动已经成功安装并启动加载,报错的部分是diags目录下的官方示例程序,因为api的动态库还没有编译安装。所以,这里需要先到api目录下:make并且make install,再到外层执行make及make install或者分别到各目录下make及make install
反射内存卡学习及使用---rfm2g驱动安装_第2张图片
最后试试是否能启动成功:
反射内存卡学习及使用---rfm2g驱动安装_第3张图片
因为脚本里面会自动执行./rfm2g_load 所以我这里是先stop再start。可以看到,状态是OK的

3.测试

反射内存卡学习及使用---rfm2g驱动安装_第4张图片

最后,可能还会踩到一个坑。可能遇到下列错误:
反射内存卡学习及使用---rfm2g驱动安装_第5张图片

这个坑其实在驱动目录下的install.txt里面有提到,所以需要仔细看,主要是第三点开始
反射内存卡学习及使用---rfm2g驱动安装_第6张图片
打开配置文件

vim /boot/grub/grub.conf

添加如下圈出部分内容
反射内存卡学习及使用---rfm2g驱动安装_第7张图片
最主要是vmalloc=800M,这个在install.txt中也有提到。其他内容同事告诉我说测试会用到,就先加上。具体之后再研究

你可能感兴趣的:(学习,c++,linux)