如何从VxWorks中的RTP访问我的内存映射I / O设备(FPGA)?

时间:2008-09-22 03:14:33

标签: vxworks

使用VxWorks时,我们尝试从实时进程访问内存映射的I / O设备 由于RTP具有内存保护功能,如何从一个接入I / O设备?

1 个答案:

答案 0 :(得分:4)

您可以使用两种方法从RTP访问I / O映射设备。

I / O子系统(首选)

您实质上是创建一个小型设备驱动程序。该驱动程序可以集成到VxWorks的I / O子系统中。集成后,只需使用标准I / O操作即可为RTP提供驱动程序:打开,关闭,读取,写入,ioctl。

请注意,“创建设备驱动程序”不一定非常复杂。它可以像为ioctl函数定义包装一样简单。有关详细信息,请参阅ioLib。

直接映射内存(不推荐)

您可以通过sdOpen调用创建共享内存区域。创建共享内存时,您可以指定物理地址应该是什么。指定地址作为设备的I / O映射区域,您可以直接访问设备。

问题在于共享内存区域是任何空间可用的公共对象,而直接在硬件上查找违背了RTP背后的理念。