相关文章  
  • 学习Linux网络编程之终结篇
  • Linux操作系统逻辑盘卷管理LVM详解(3)
  • 在Linux下的(VRRP)虚拟路由冗余协议介绍
  • 巧妙利用Linux系统IP伪装抵住黑客攻击
  • Linux中的冲突问题及其应对策略
  • 在LINUX下配置JAVA开发环境
  • 开发Linux命令行实用程序
  • 在Linux系统中批量添加用户的操作流程
  • 学习Linux网络编程之二
  • 学习Linux网络编程之一
  •   推荐  
      科普之友首页   专利     科普      动物      植物        天文   考古   前沿科技
     您现在的位置在:  首页 >>文献 >>培训

    利用RTLinux开发嵌入式应用程序6

    dev/mbuff实现。该节点可显示几个录入点,其中包括可将内核空间地址映射到用户空间的mmap()。它还可以利用录入点ioctl()来控制。然而,并不需要复杂的结构及直接调用ioctl。相反,mbuff可为ioctl()调用提供一个包裹,而且仅仅调用两个简单的功能即可配置和释放共享的存储缓冲器。

      当然,不能从实时任务调用mbuff驱动程序,因为该驱动程序所调用的虚拟存储器分配功能本身是不确定性操作。分配共享存储器所需的时间依赖于主系统的存储器容量以及CPU速度、磁盘驱动器性能和存储器分配的现有状态。因此,只能从模块的Linux内核一侧来分配共享存储器,比如从init_module()或一个ioctl()请求开始。

      那么,一个共享缓冲器到底能分配多少存储器呢?如果不是任务繁重的服务器或图形应用,建议至少为Linux保留8MB存储空间。为了获得优化的配置,可在限制存储器大小的同时测量实时应用程序的性能,以确定需要多少存储空间。

      列表2给出了如何从实时任务和用户进程方面访问共享的存储器。内核模块和用户任务采用同样的功能集。当然,要想使用insmod mbuff.o,还必须将之置于Linux内核中。例如,mbuff_alloc("buf_name", size)可将符号名buf_name分配给一个缓冲器,而mbuff_free(

    页码:[1] [2] [3] [4] [5] [6] [7]6页、共7页

         

          设为首页       |       加入收藏       |       广告服务       |       友情链接       |       版权申明      

    Copyriht 2007 - 2008 ©  科普之友 All right reserved