冷火实时Linux平台设计与实现_第1页
冷火实时Linux平台设计与实现_第2页
冷火实时Linux平台设计与实现_第3页
冷火实时Linux平台设计与实现_第4页
冷火实时Linux平台设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

冷火冷火实时实时 Linux 平台平台设计设计与与实现实现 童湘彪 深圳市金宏威技术股份有限公司 深圳 518055 摘要摘要 提出并设计了一种实时 Linux 平台 该平台利用 CPU 中断可分优先级控制的特点 采用 实时中断 内核线程 的应用模式 简化了实时 Linux 平台的设计 提高了平台的可 靠性 降低了应用的开发移植难度 非常适合在电力行业的变配电系统中应用 关键字关键字 实时 Linux 实时中断 继电保护 配电自动化 引言引言 因为 LINUX 免费 源代码开放 内核稳定可靠 支持众多 CPU 体系架构 具有强大 的网络通讯功能 所有其在嵌入式系统中得到广泛应用 但在嵌入式系统中 Linux 也有 一个较大缺陷 实时性不强 在某些嵌入式应用领域中 关键任务对实时性有较高要求 针对此缺陷 很多嵌入式操作系统厂商对 Linux 的实时性进行了改进 诞生了许多实时 Linux 版本 各种版本各有优缺点 这里不展开介绍 以下为冷火实时 Linux 平台的特点 实时性能好 在 CPU 主频 250Mhz 的情况下 实时中断延时 5us 平台设计原理和实现方法简单易懂 实现了实时 FIFO 和实时消息队列 用于实时中断和普通 Linux 进程之间的通讯 除了实时中断外 并没有实现单独的实时进程 大大简化了实时平台的设计 提 高了平台的可靠性 基于以上特点 冷火实时 Linux 平台适用于高实时性和高可靠性的系统 目前已在电 力行业的变配电系统中得到应用 取得良好的效果 冷火实时 Linux 平台应用场景如下 关键实时任务 常规LINUX内核和非实时任务 LINUX 内核 LINUX 内核应用进程 LINUX 非实时中断程序 中断级别1 3 实时中断程序 中断级别4 6 实时通讯层 实时软中断 实时FIFO 实时消息队列 非实时输入 非实时输出 实时输入 实时输出 图 1 冷火 Linux 平台应用场景 应用 内核 线程 系统 内核 线程 应用 服务 进程 系统 普通 中断 优先级高 优先级低 采样 中断 网络调试 通讯线程 维护命令 通讯线程 104规约 通讯线程 CAN 中断 测频 中断 对时 中断 主循环 线程 GDB SERVER TELNET SERVER WEB SERVER FTP SERVER D T U 主 C P U 程 序 kthreaddksoftirqdkblockdevents pdflush 应用 实时 中断 保护 中断 内核串口 中断 内核定时器 中断 以太网 中断 D T U 主 应 用 程 序 实时 软中断 实时通讯层 FIFO 消息队列 图 2 具体应用实例 原理简介原理简介 利用某些 CPU 例如 Freescale 的 MCF5441X 中断可以分优先级控制的特点 将高优 先级别中断分配给实时任务 将低优先级别中断分配给 Linux 内核 然后修改 LINUX 内核 中的中断屏蔽函数 使其只能屏蔽 LINUX 中的低优先级别中断 不能屏蔽实时任务中的 高优先级别中断 这样可以确保实时任务的及时响应 整个冷火实时 Linux 平台原理实现 框图如下 非实时中断 优先级低于实时中断 中断延时受Linux中 断屏蔽的影响 实时中断 优先级最高 可以无条件中断非实时中 断 中断延时不受Linux中断屏蔽影响 中 断延时 5us 常规Linux内核 提供文件系统 网络通讯 进程管 理 内核同步 内存管理等功能 网络通信 进程管理 多个常规Linux内核应用进程 通过实时FIFO和实时消息队列与实 时中断通讯 通过普通Linux通讯方 法和常规Linux内核通讯 文件系统 实时通讯层 实时FIFO 实时消息队列 实时软中断 图 3 冷火实时 Linux 平台原理实现框图 具体实现具体实现 下面以 Freescale 的 MCF5441X 硬件平台为例来说明冷火实时 Linux 平台的具体实现 实时中断实现实时中断实现 1 将低优先级中断级别1 3分配给LINUX中的中断 将高优先级中断级别4 6分配 给实时任务 2 修改LINUX中的中断屏蔽函数 使其只能屏蔽3级和3级以下的中断 3 完善实时Linux中断相关函数 包括实时中断登记 注销 允许 屏蔽等 通过以上步骤 可以达到实时中断延时 5us的目标值 实测 3us 实时中断和内核进程之间的通讯实时中断和内核进程之间的通讯 由于实时中断的响应不受Linux内核中中断屏蔽 local irq save 的影响 所以在实时 中断中不能调用和Linux内核资源相关的函数 包括通讯同步函数 否则将破坏Linux内 核资源的一致性 导致系统崩溃 为了解决实时中断和内核进程之间通讯这个问题 我们 设计了实时软中断 实时FIFO 实时消息队列3种通讯机制 其中实时软中断是其它2种通 讯机制的基础 实时软中断实时软中断 实时软中断是实时中断通知内核进程的一种基本通讯手段 其基本原理是在非实时中 断区域申请一个最低优先级的软中断 实时软中断 当实时中断中有相应事件需要通知 时 触发此软中断 此软中断在其它高优先级的中断 包括实时和非实时 执行完成后 就会响应执行 其服务函数可以通过up函数触发一个信号量 唤醒正在等待此信号量的内 核进程 注意在此期间 由于软中断服务函数的响应执行 受Linux内核规则的约束 所以不会破坏 内核资源的一致性 不会影响Linux的稳定性 其具体过程如图 非实时中断 实时中断 常规Linux内核 网络通信 进程管理 多个常规Linux内核应用进程 文件系统 实时通讯层 实时FIFO 实时消息队列 实时软中断 rt sirq isr up 唤醒 down interruptible rt sirq force 图 4 实时软中断 实时实时 FIFO 实时 FIFO 是以实时软中断为通知手段的一种先进先出的队列 主要用于流数据的发送 和接收 实时 FIFO 使用成熟算法 仅对实时中断屏蔽部分进行了优化处理 这里不再叙述 实时消息队列实时消息队列 实时消息队列是以实时软中断为通知手段的消息队列 通过实时消息队列 实时中断 可以向内核进程发送长度可变的消息 并及时唤醒等待消息的内核进程 实时调试语句输出实时调试语句输出 在冷火实时 Linux 平台中 为了全面实时了解平台的状态 需要有大量的调试信息输 出 这些调试信息的输出必须满足以下几点需求 1 不能影响实时中断的性能 2 为了方便用户获取信息 必须和 Linux 共用同一个控制台 3 为了方便用户使用 此输出函数应既可在实时中断中调用 也可在其它环境中调用 最终实时调试语句的输出 rt printf 通过实时 FIFO 和实时软中断配合实现 具体实 现如下 rt console write rt printf fifo get rt printf soft isr g printf fifo rt printf fifo put rt printf 软中断通知 写Linux控制台 图 5 实时调试语句输出 实时统计信息实时统计信息 为了分析冷火实时 Linux 平台的各项性能指标 例如实时中断延时 实时中断执行时 间 实时中断屏蔽时间等 我们必须收集平台的大量数据信息 为此冷火 Linux 平台设计 了一个实时统计信息模块 统一了每个收集数据的内容和显示格式 示例显示如下 图 6 实时统计信息 实时平台运行实时平台运行 为了方便冷火实时 Linux 平台的维护 移植 我们将冷火实时 Linux 平台封装在一个库 中 让其和内核应用程序一起连接 生成一个标准的动态加载的内核模块 在运行时通过 动态加载模式将实时 Linux 平台和应用一起加载 采用动态加载模式有如下优势 1 在 Freescale 提供的 Linux Bsp 中只需要做极少量的修改 这样当 BSP 升级时 对实时平台影响不大 2 调试 维护方便 采用动态模块方式编译 下载 运行时间都很短 可以较短 的时间内完成多次代码修改 调试工作 3 和应用程序一起编译 将极大增强应用程序员对实时 Linux 平台本身的理解 将大大提高应用系统的稳定性和可靠性 运行示意图如下 应用系统 冷火实时Linux平 台 应用BSP Freescale MCF5441X Linux BSP 图 7 冷火实时 Linux 平台运行示意图 结语结语 冷火实时 Linux 平台是一个实时中断延时低 原理和实现简单可靠的实时 Linux 系统 目前通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论