摘要:
随着嵌入式系统的发展,对嵌入式操作系统提出了更高的实时性要求。uClinux作为优秀的嵌入式Linux操作系统,保留了Linux大多数优点,但它的实时响应能力不足,不能满足很多实时性要求较高的应用,而RTLinux通过在Linux内核与硬件中断之间插入一个精巧、可抢占实时内核,既保留了Linux的各种优势,又实现了内核的硬实时性。为此,我们在分析和研究RTLinux实现硬实时性的原理的基础上,完成了RTLinux在uClinux系统中的移植,使得移植后的嵌入式实时操作系统RT_uClinux具有较强的实时响应能力。 RTLinux在uClinux中的移植要结合嵌入式硬件平台的特点。实现中,采用了基于Intel Xscale PXA255处理器的平台。针对uClinux内核关中断的问题,采用了中断虚拟器来接管所有中断,并使得uClinux内核作为任务永远不能关中断,从而使实时任务和中断得到快速响应。针对uClinux内核时钟粒度粗糙的问题,增加了单次触发模式的时钟,使得时钟中断在需要的时候发生,提高了时钟粒度。针对uClinux内存管理不能满足实时应用需要的问题,利用PXA255平台对存储系统的支持,实现了实时内核的动态内存管理模块,使其对实时内存的管理采用动静分配相结合的策略,从而实现了实时内存管理的实时性,高效性和可靠性。在任务调度方面,则采用了RTLinux原有的实时调度器,实时部分和非实时部分之间的通信由RT_FIFO(实时先进先出队列)完成。 以该嵌入式系统为平台,分别对RT_uClinux和uClinux在对中断延迟、任务上下文切换和时钟粒度方面进行测试。测试结果表明,相对于uClinux而言, RT_uClinux对于实时任务的响应能力有了很大的提高。
展开