打印本文 打印本文 关闭窗口 关闭窗口
Linux嵌入式实时操作系统开发与设计(六)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2537  更新时间:2009/4/22 20:45:20  文章录入:mintao  责任编辑:mintao
nt fifo))

安装自己的处理程序,当数据从FIFO中读出或写出时运行。

 

3.6.2  共享内存

在RTLinux启动的时候,通过指定内核一个mem参数决定内核可以使用的内存大小,空出来的内存空间用于实时任务和Linux进程进行通信的共享内存。在RTLinux任务中通过/dev/mem设备在这段内存中寻址,Linux进程也通过读取这段内存的数据获得实时任务提供的信息,这样完成实时任务和Linux进程之间的通信。

 

3.6.3  mbuff驱动程序

它是由Tomasz Motylewski提供的一个使用共享内存的驱动程序,用来实现核心内存空间和用户之间的共享。通过使用mbuff提供的mbuff_alloc()的函数给申请的内存取一个名字,mbuff驱动程序使用一个链表通过这个名字来管理这些申请的内存。通过这个驱动程序也可以在包括RTLinux的Linux内核内存空间和用户内存空间之间共享内存。

 

#include <mbuff.h>

void * mbuff_alloc(const char *name, int size);

void mbuff_free(const char *name, void * mbuf);

 

第一次调用mbuff_alloc时,给定一个名字,一个给定大小的共享内存块将分配。这个内存块的引用数设为1。调用成功返回新内存块的指针。失败时返回NULL。如果给定的名字已经存在,将返回存在的内存块的指针,以操作这块共享内存块,该内存块的引用数将加1。

上一页  [1] [2] [3] [4] 

打印本文 打印本文 关闭窗口 关闭窗口