主页 PC知识 网管技术 黑客帝国 安全技术 开放系统 程序设计 搜索 技术论坛

 

相关联接
 
RHU本级分类

技术开发
桌面应用
嵌入技术
问答(FAQ)
基础知识
企业应用&技巧

 
RHU阅读排行
·μClinux嵌入系统外部硬件设备快速调试
·利用RTLinux开发嵌入式应用程序
·CPU与DSP结合为单一核心还有多远?
·浅谈嵌入式LINUX操作系统的概念和特点
·论嵌入式系统的技术发展与机遇
·基于Intel IXP网络处理器开发平台简介
·嵌入式操作系统的调试
·一个典型的嵌入式系统设计和实现
·珍贵资料:uClinux系统分析详解
·嵌入式Linux开发资源大全

 
 
RHU最新文章
·嵌入式Linux也SOHO SIPS技术应用简介
·物理隔离 关注Linux如何贯通安全通道
·你还在用MRTG吗?使用cacti监测系统性能
·一种改进嵌入Linux实时性的新型方案
·学习嵌入式Linux的笔记和体会
·基于嵌入式Linux的智能手机系统设计
·嵌入式操作系统UC/OS和uClinux比较分析
·Qt/Embedded在嵌入式Linux系统中的应用
·嵌入式实时程序设计中C/C++代码的优化
·主流嵌入式Linux动态扩展技术比较分析

 
 
RHU相关搜索









 
 
RHU广而告之

 
 
>您的位置:首页 -> Linux/Unix-> 嵌入技术
利用RTLinux开发嵌入式应用程序

作者:Alex ivchenko 来自:赛迪网 时间:2005-2-28 双击滚屏 收藏本页 字体:


点击 查看RHU2004全年文章


对于中国工程师来说,利用实时Linux开发嵌入式应用程序是他们面临的困难之一,本文以RTLinux为例,并结合最为业界关注的是RTAI进行讨论,尽管这两种实现方式在句法细节上存在差异,但工作方式基本一样,因此所讲述的内容对两者都适用。

    在实时任务与用户进程相互通信的过程中,有些实时应用程序无需任何用户界面即可在后台平静地运行,然而,越来越多的实时应用程序确实需要一个用户界面及其它系统功能,如文件操作或联网等,所有这些功能都必须在用户空间内运行。问题是,用户空间操作是非确定性的,而且与实时操作不兼容。

    幸运的是实时Linux具有一种可在时间上减弱实时与非实时操作的机制,这种机制表现为一种称为实时FIFO的驱动程序。当insmod将rtl_fifo.o驱动程序插入Linux内核时,该驱动程序将自己注册为RTLinux的一部分,并成为Linux驱动程序。一旦插入Linux内核,用户空间进程和实时任务都可使用实时Linux FIFO。

    在深入探讨实时FIFO的细节之前,还要回顾一下实时应用程序结构的某些部分(图1)。有效的嵌入式应用程序设计方法是将实时部分与固有的非实时功能分离开来(表1)。如果应用程序的任一部分,如用户界面、图形、数据库或网络仅需软实时性能,最好是将该部分写入用户空间。然后,仅将必须满足时序要求的那部分写成实时任务。

    注意,RTLinux(PSC,便携式信号编码)和RTAI(LXRT,Linux实时扩展)的最新版本已采用了一种可在用户空间执行软和硬实时任务的方法。

    任何硬实时任务都是在RTLinux的控制下运行的,该任务一般可执行周期性任务、处理中断并与I/O设备驱动程序通信,以采集或输出模拟和数字信息。当实时任务需要告诉用户进程有一个事件将发生时,它便将这一消息送给实时FIFO。每一个FIFO都是在一个方向上传送数据:从实时任务到用户空间,或反之。因此,双向通信需要使用两个FIFO。任何读出或写入实时任务一侧的操作都是非模块操作,因此rtf_put()和rtf_get()都立即返回,而不管FIFO状态是什么。

    从应用程序一侧来看,FIFO就像一个常规文件。缺省情况下,RTLinux安装程序将在/dev目录下创建64个实时FIFO节点;如果需要,还必须自己创建新的节点。例如,要创建/dev/rtf80,需采用如下命令:
mknod c 150 80; 
chmod 0666 /dev/rtf80


    其中,150是实时FIFO主数,而80是rtf80的次数。

[本文共有 3 页,当前是第 1 页] <<上一页 下一页>>



OVER

[1] [2] [3] 页 RedHyphone.Union 投稿邮箱
[特别声明]:
本站文章大多搜索转载自网络中,如果侵犯了您的权利,请告之我们。本站将立即删除。
本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
查看评论】【向上滚屏】【关闭窗口】【 打印
-相关文章
  • Ubuntu 9.04 Alpha 2 发布
  • 用ubuntu server8.10做php-web服务器方法
  • Linux兼容内核0.2.2-1版(UnifiedKernel 0.2.2-1)发布
  • Ubuntu下命令行FTP客户端NcFTP安装使用
  • 分享:Linux系统下应用软件安装指南
  • -文章评论 (关闭)
    ·还没有相关的评论!

    网上大名:
    红旋风网络技术联盟 RHUTech.Union
     
    Copyright © 2000-2007 RedHyphone.Union All Rights Reserved. 红旋风联盟版权所有.皖ICP备05011033号
    中国红旋风网络技术联盟 | www.RedHyphone.net
    Mailto:Redhyphone@gamil.com