新闻中心

EEPW首页>嵌入式系统>设计应用> uClinux操作系统的实时化分析与研究

uClinux操作系统的实时化分析与研究

作者: 时间:2012-05-21 来源:网络 收藏

4.2定时器的移植

如前面分析,对于一个实时操作系统,必须有精确的计时。在i386体系结构中,有时间标签计数器TSC(Time Stamp Count),在S3C4510B处理器上没有这个寄存器,可以采用计时器2(Timer1)来模拟TSC的功能。每来一个时钟脉冲,Timer1的 TCNT1寄存器减1,减到零后产生时钟中断,再从TDATA1中读TCNT1的值,往复运行。具体的做法是使用一个内核的全局变量,每次时钟中断来以后,在Timer1的寄存器中读出值,计算其增量,为了使系统更精确,必须将Timer1中断设置为最高优先级,这样就可以模拟64位的TSC寄存器,从而得到当前的准确计时。

5.基于的应用程序的开发

编写应用程序时,将实时系统的应用程序分为实时任务和非实时任务。实时任务是实时模块,作为核心可加载模块运行在核心态。它的设计应尽可能简单,仅包含那些有强实时要求的处理模块,如实时数据采集、外部设备控制等。非实时任务是普通的进程,在用户态执行,完成大部分的数据处理、图形显示和通讯等任务。所有的实时任务均按照对要求的高低来进行优先级排队,系统根据优先级的高低来顺序启动各个实时任务。而位于用户态的界面,当作一个背景程序来执行。核心态的任务优先级总是高于用户态的界面任务,且不能被其抢占。实时任务和非实时任务之间可通过FIFO队列和共享内存等方法通信。基于的µClinux应用程序结构图如图2所示。

实时系统的启动和结束可以用一个Shell程序来执行,它的功能是实现各任务模块的加载和卸载,以及用户界面的运行。Shell程序是介于使用者和操作系统的内核程序间的一个界面,使用户更为方便的使用操作系统。由于各个模块之间具有相互依赖性,所以在加载和卸载各个模块时按照一定的顺序。首先要将提供的实时模块加载,包括rtai、rtai_sched、rtai_fifos和rtai_shm等模块;然后装入系统的各个实时模块。卸载模块的时候按照相反的顺序依次卸载。实时系统的程序流程图如图3所示。

6.结束语

作者已将改造后的µClinux系统应用在了江苏省普通高校自然科学研究计划资助项目“机房环境设备安全监控软件平台的研制”等项目中,均取得了良好的效果,解决了µClinux在方面的缺陷,满足了设计要求。

本文作者创新点是:实现了RTAI在µClinux上的移植,形成了RTAI和µClinux相结合的双内核嵌入式系统运行方案,既满足了嵌入式应用的需求,又保证了系统的硬

参考文献

[1]李俊平,梅洪,单家元.基于Linux的实时平台的研究[J].微计算机信息,2005,21(7):21-23.

[2]林浒,蔡光起等.实时化的Linux系统及其实时性能的研究[J].小型微型计算机系统,2004,25(8):1454-1457.

[3] WANG Y C, LIN K J. Implementing a general real-time frame-work in the RED-Linux real-time kernel [C]. IEEE Real-timeSystem Symposium, 1999.

[4] Raj Rajkumar, Kanaka Juvva, Anastasio Molano, et al. Resource kernel: A resource-centric approach to real-time and multimedia systems[C]. Proceedings of the SPIE/ACM Conference on Mul-timedia Computing and Networking, 1998.

[5]马学文,朱名日等.uClinux操作系统实时性能的研究与实现[J].计算机工程与科学,2005,27(3):103-104.

[6]RTAI主页[EB/OL].htp://www.rtai.org/.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭