收藏 分享(赏)

冷火实时Linux平台设计与实现.docx

上传人:dreamzhangning 文档编号:2970077 上传时间:2018-10-01 格式:DOCX 页数:7 大小:330.33KB
下载 相关 举报
冷火实时Linux平台设计与实现.docx_第1页
第1页 / 共7页
冷火实时Linux平台设计与实现.docx_第2页
第2页 / 共7页
冷火实时Linux平台设计与实现.docx_第3页
第3页 / 共7页
冷火实时Linux平台设计与实现.docx_第4页
第4页 / 共7页
冷火实时Linux平台设计与实现.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、冷火 实时 Linux 平台设计与实现童湘彪(深圳市金宏威技术股份有限公司 深圳 518055)摘要: 提出并设计了一种实时 Linux 平台。该平台利用 CPU 中断可分优先级控制的特点,采用“实时中断+ 内核线程”的应用模式,简化了实时 Linux 平台的设计,提高了平台的可靠性,降低了应用的开发移植难度,非常适合在电力行业的变配电系统中应用。关键字: 实时 Linux; 实时中断 继电保护 配电自动化引言因为 LINUX 免费、源代码开放、内核稳定可靠、支持众多 CPU 体系架构、具有强大的网络通讯功能,所有其在嵌入式系统中得到广泛应用。但在嵌入式系统中,Linux 也有一个较大缺陷-实

2、时性不强,在某些嵌入式应用领域中,关键任务对实时性有较高要求。针对此缺陷,很多嵌入式操作系统厂商对 Linux 的实时性进行了改进,诞生了许多实时Linux 版本,各种版本各有优缺点,这里不展开介绍,以下为冷火实时 Linux 平台的特点: 实时性能好,在 CPU 主频 250Mhz 的情况下,实时中断延时5us。 平台设计原理和实现方法简单易懂。 实现了实时 FIFO 和实时消息队列,用于实时中断和普通 Linux 进程之间的通讯。 除了实时中断外,并没有实现单独的实时进程,大大简化了实时平台的设计,提高了平台的可靠性。基于以上特点,冷火实时 Linux 平台适用于高实时性和高可靠性的系统,

3、目前已在电力行业的变配电系统中得到应用,取得良好的效果。冷火实时 Linux 平台应用场景如下:关键实时任务常规 L I N U X 内核和非实时任务L I N U X 内核L I N U X 内核应用进程L I N U X 非实时中断程序 ( 中断级别 1 3 )实时中断程序 ( 中断级别 4 6 )实时通讯层 : 实时软中断 、 实时 F I F O 、 实时消息队列非实时输入 非实时输出实时输入 实时输出图 1 冷火 Linux 平台应用场景应用内核线程系统内核线程应用服务进程系统普通中断优先级高优先级低采样中断网络调试通讯线程维护命令通讯线程1 0 4 规约通讯线程C A N中断测频中

4、断对时中断主循环线程G D BS E R V E RT E L N E TS E R V E RW E BS E R V E RF T P S E R V E RDTU主CPU程序k t h r e a d d k s o f t i r q d k b l o c k d e v e n t sp d f l u s h。应用实时中断保护中断内核串口中断内核定时器中断以太网中断DTU主应用程序实时软中断实时通讯层 :F I F O 、 消息队列图 2 具体应用实例原理简介利用某些 CPU(例如 Freescale 的 MCF5441X)中断可以分优先级控制的特点,将高优先级别中断分配给实时任

5、务,将低优先级别中断分配给 Linux 内核;然后修改 LINUX 内核中的中断屏蔽函数,使其只能屏蔽 LINUX 中的低优先级别中断,不能屏蔽实时任务中的高优先级别中断,这样可以确保实时任务的及时响应。整个冷火实时 Linux 平台原理实现框图如下:非实时中断优先级低于实时中断 , 中断延时受 L i n u x 中断屏蔽的影响 。实时中断优先级最高 , 可以无条件中断非实时中断 , 中断延时不受 L i n u x 中断屏蔽影响 , 中断延时 5 u s 。常规 L i n u x 内核提供文件系统 、 网络通讯 、 进程管理 、 内核同步 、 内存管理等功能 。网络通信进程管理多个常规

6、L i n u x 内核应用进程通过实时 F I F O 和实时消息队列与实时中断通讯 ; 通过普通 L i n u x 通讯方法和常规 L i n u x 内核通讯 。文件系统实时通讯层 : 实时 F I F O 、 实时消息队列实时软中断图 3 冷火实时 Linux 平台原理实现框图具体实现下面以 Freescale 的 MCF5441X 硬件平台为例来说明冷火实时 Linux 平台的具体实现。实时中断实现1、 将低优先级中断级别13分配给LINUX中的中断,将高优先级中断级别46分配给实时任务。2、 修改LINUX中的中断屏蔽函数,使其只能屏蔽3级和3级以下的中断。3、 完善实时Linu

7、x中断相关函数,包括实时中断登记、注销、允许、屏蔽等。通过以上步骤,可以达到实时中断延时5us的目标值(实测3us)。实时中断和内核进程之间的通讯由于实时中断的响应不受Linux内核中中断屏蔽(local_irq_save)的影响,所以在实时中断中不能调用和Linux内核资源相关的函数(包括通讯同步函数),否则将破坏Linux内核资源的一致性,导致系统崩溃。为了解决实时中断和内核进程之间通讯这个问题,我们设计了实时软中断、实时FIFO、实时消息队列3种通讯机制。其中实时软中断是其它2种通讯机制的基础。实时软中断实时软中断是实时中断通知内核进程的一种基本通讯手段,其基本原理是在非实时中断区域申请

8、一个最低优先级的软中断(实时软中断),当实时中断中有相应事件需要通知时,触发此软中断,此软中断在其它高优先级的中断(包括实时和非实时)执行完成后,就会响应执行,其服务函数可以通过up函数触发一个信号量,唤醒正在等待此信号量的内核进程。注意在此期间,由于软中断服务函数的响应执行,受Linux内核规则的约束,所以不会破坏内核资源的一致性,不会影响Linux的稳定性。其具体过程如图:非实时中断实时中断常规 L i n u x 内核网络通信进程管理多个常规 L i n u x 内核应用进程文件系统实时通讯层 : 实时 F I F O 、 实时消息队列实时软中断r t _ s i r q _ i s r

9、 ()u p ()。唤醒 : d o w n _ i n t e r r u p t i b l e ()。r t _ s i r q _ f o r c e ()图 4 实时软中断实时 FIFO实时 FIFO 是以实时软中断为通知手段的一种先进先出的队列,主要用于流数据的发送和接收。实时 FIFO 使用成熟算法,仅对实时中断屏蔽部分进行了优化处理,这里不再叙述。实时消息队列实时消息队列是以实时软中断为通知手段的消息队列。通过实时消息队列,实时中断可以向内核进程发送长度可变的消息,并及时唤醒等待消息的内核进程。实时调试语句输出在冷火实时 Linux 平台中,为了全面实时了解平台的状态,需要有大

10、量的调试信息输出,这些调试信息的输出必须满足以下几点需求:1. 不能影响实时中断的性能。2. 为了方便用户获取信息,必须和 Linux 共用同一个控制台。3. 为了方便用户使用,此输出函数应既可在实时中断中调用,也可在其它环境中调用。最终实时调试语句的输出(rt_printf)通过实时 FIFO 和实时软中断配合实现。具体实现如下:r t _ c o n s o l e _ w r i t e_ r t _ p r i n t f _ f i f o _ g e t_ r t _ p r i n t f _ s o f t _ i s rg _ p r i n t f _ f i f o_ r

11、 t _ p r i n t f _ f i f o _ p u tr t _ p r i n t f软中断通知写 L i n u x 控制台图 5 实时调试语句输出实时统计信息为了分析冷火实时 Linux 平台的各项性能指标(例如实时中断延时、实时中断执行时间、实时中断屏蔽时间等) ,我们必须收集平台的大量数据信息,为此冷火 Linux 平台设计了一个实时统计信息模块,统一了每个收集数据的内容和显示格式,示例显示如下:图 6 实时统计信息实时平台运行为了方便冷火实时 Linux 平台的维护、移植,我们将冷火实时 Linux 平台封装在一个库中,让其和内核应用程序一起连接,生成一个标准的动态加

12、载的内核模块,在运行时通过动态加载模式将实时 Linux 平台和应用一起加载。采用动态加载模式有如下优势:1、 在 Freescale 提供的 Linux Bsp 中只需要做极少量的修改,这样当 BSP 升级时,对实时平台影响不大。2、 调试、维护方便。采用动态模块方式编译、下载、运行时间都很短,可以较短的时间内完成多次代码修改、调试工作。3、 和应用程序一起编译,将极大增强应用程序员对实时 Linux 平台本身的理解,将大大提高应用系统的稳定性和可靠性。运行示意图如下:应用系统冷火实时 L i n u x 平台应用 B S PF r e e s c a l e M C F 5 4 4 1 X L i n u x B S P图 7 冷火实时 Linux 平台运行示意图结语冷火实时 Linux 平台是一个实时中断延时低、原理和实现简单可靠的实时 Linux 系统。目前通过在变配电系统的应用情况来看,其运行稳定可靠,可以满足高实时性、高可靠性系统的需求。参考文献:1 Freescale Semiconductor. MCF5441x Reference Manual. 20102 Freescale Semiconductor. ColdFire Family Programmers Reference Manual. 2005

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报