微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 利用RTLinux开发嵌入式应用程序的方案

利用RTLinux开发嵌入式应用程序的方案

时间:03-07 来源:互联网 点击:

部分的复杂任务。

软实时的实现

RTLinux通过一个高效的、可抢先的实时调度核心来全面接管中断,并把Linux作为此实时核心的一个优先级最低的进程运行。当有实时任务需要处理时,RTLinux运行实时任务;无实时任务时,RTLinux运行Linux的非实时进程。在Linux进程和硬件中断之间,本来由Linux内核完全控制,现在在Linux内核和硬件中断的地方加上了一个RTLinux内核的控制。Linux的控制信号都要先交给RTLinux内核进行处理。在RTLinux内核中实现了一个虚拟中断机制,Linux本身永远不能屏蔽中断,它发出的中断屏蔽信号和打开中断信号都修改成向RTLinux发送一个信号。如在Linux里面使用“SI”和“CLI”宏指令,让RTLinux里面的某些标记做了修改。也就是说将所有的中断分成Linux中断和实时中断两类。如果RTLinux内核接收到的中断信号是普通Linux中断,那就设置一个标志位;如果是实时中断,就继续向硬件发出中断。在RTLinux中执行STI将中断打开之后,那些设置了标志位表示的Linux中断就继续执行,因此,CLI并不能禁止RTLinux内核的运行,却可以用来中断Linux。Linux不能中断自己,而RTLinux可以。

RTLinux在默认的情况下采用优先级的调度策略,即系统调度器根据各个实时任务的优先级来确定执行的先后次序。优先级高的先执行,优先级低的后执行,这样就保证了实时进程的迅速调度。同时RTLinux也支持其它的调度策略,如最短时限最先调度、确定周期调度。RTLinux将任务调度器本身设计成一个可装载的内核模块,用户可以根据自己的实际需要,编写适合自己的调度算法。

对于一个操作系统而言,精确的定时机制虽然可以提高任务调度器的效率,但会增加CPU处理定时中断的时间开销。RTLinux对时间精度和时钟中断处理的时间开销进行了折中考虑。不是像Linux那样将8254定时器设计成10ms产生一次定时中断的固定模式,而是将定时器芯片设置为终端计时中断方式。根据最近的进程的时间需要,不断调整定时器的定时间隔。这样不仅可以获得高定时精度,同时中断处理的开销又最小。

硬实时的实现

硬件实时部分被作为实时任务来执行,并从外部设备拷贝数据到一个叫做实时有名管道(RTFIFO)的特殊I/O端口;程序主要部分作为标准Linux进程来执行。它将从RTFIFO中读取数据,然后显示并存储到文件中,实时部分将被写入内核。设计实时有名管道是为了使实时任务在读和写数据时不被阻塞。

RTLinux将标准Linux内核作为简单实时操作系统(RTOS)里优先权最低的线程来运行,从而避开了Linux内核性能的问题。 从图3可以看出,RTLinux拥有两个内核。这就意味着有两组单独的API,一个用于Linux环境,另一个用于实时环境。此外,为保证实时进程与非实时Linux进程不顺序进行数据交换,RTLinux引入了RT-FIFO队列。RT-FIFO被Linux视为字符设备,最多可达150个,分别命名为/der/rtf0、/dev/rtf1……/dev/rtf63。最大的RT-FIFO数量在系统内核编译时设定。

RTLinux程序运行于用户空间和内核态两个空间。RTLinux提供了应用程序接口。借助这些API函数将实时处理部分编写成内核模块,并装载到RTLinux内核中,运行于RTLinux的内核态。非实时部分的应用程序则在Linux下的用户空间中执行。这样可以发挥Linux对网络和数据库的强大支持功能。

Alex Ivchenko博士是联合电子实业公司的研发工程经理,也是该公司PowerDAQ II系列PCI数据采集板的主要开发者之一。最近,他正为该系列卡编写Linux驱动程序。可通过电子邮件aivchenko@ueidaq.com与他联系。

讲了这么大段,不知道大家有没对RTLinux进一步了解,或许在不久的将来,你也会深深的爱上她,我们来总结下:上面我们一共讨论了她的日常生活(运作),她的与众不同,当然她的外貌也是挥之不去的,下面为了乡亲们的幸福,我特地请教了谷歌大哥RTLinux的出生背景和她的生日哦!大家努力研读吧!幸福在向我们招手!

RTLinux大扫盲:

RTLinux(AReal-Time Linux,亦称作实时Linux)是Linux中的一种实时操作系统。它由新墨西哥矿业及科技学院的V. Yodaiken开发。目前,RTLinux有一个由社区支持的免费版本,称为RTLinux Free,以及一个来自FSMLabs的商业版本,称作RTLinux Pro。

RTLinux是由美国新墨西哥州的fsmlabs(finite state machine labs, 有限状态机实验室)公司开发的、利用linux开发的面向实时和嵌入式应用的操作系统。在rtlinux宣言中,这样描述rtlinux : rtlinux is the hard realtime variant of linux that makes it possible to control

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top