使用 PREEMPT_RT 构建 RT 应用程序

2024-04-21

我想在使用实时 PREEMPT_RT 的同时编写实时 Linux 程序。我找到了官方维基(https://rt.wiki.kernel.org/index.php/HOWTO:_Build_an_RT-application https://rt.wiki.kernel.org/index.php/HOWTO:_Build_an_RT-application)。有一些代码示例,但我想获得可能的 RT 函数的解释。

谢谢你,


需要强调的是 PREEMPT_RT 是一个补丁,它改变了internalLinux 内核的代码,以减少用户级进程经历的最大延迟。这是通过改变例如来完成的自旋锁到实时可抢占互斥体,使用线程中断(即硬件中断处理程序在单独的内核线程中运行)等等。所以,它不提供任何用于用户级编程的API并且您仍然依赖于标准 libc 和系统调用原语。只需修补、配置并重新安装内核(或者安装预构建的 PREEMPT_RT 内核)。

当然,您仍然可以遵循良好的实时编程实践,以避免延迟和争用。您提到的页面涉及如何配置内核和编写代码以从补丁中充分受益。

如果您正在寻找特定的实时 API,您可能需要看看异形3.0.1 https://xenomai.org/它提供了一个特定的 API,用于在标准 Linux 或 Xenomai 虚拟机管理程序(Linux 内核下面的一层)之上运行用户级进程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PREEMPT_RT 构建 RT 应用程序 的相关文章

  • 如何屏蔽 cpu 不受 linux 调度程序的影响(防止它调度线程到该 cpu 上)?

    可以使用sched setaffinity将线程固定到 CPU 提高性能 在某些情况下 来自 Linux 手册页 限制进程在单个 CPU 上运行还可以避免 缓存失效导致的性能成本 进程停止在一个 CPU 上执行 然后在另一个 CPU 上重新
  • MatPlotLib 的 ion() 和 draw() 不起作用

    我正在尝试使用 for 循环实时绘制数字 我有以下简单的代码 import matplotlib pyplot as plt plt ion plt figure for i in range 100 plt plot i i o plt
  • 为什么 Google Docs 的运营转型会偏向删除?

    今天尝试了这个实验 为 Google 文档打开两个离线编辑器 其中 我将第一个词加粗 第二次 我把它删除了 无论我首先打开哪个客户端 该单词最终都会被删除 首先 为什么会出现这种情况 我对运营转型的理解是排序很重要 在两个人分别输入 a 和
  • 谁使用实时 Java? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我注意到实时Java https en wikipedia org wiki Real time Java2 2 早在 9 月份就发布了 与我上
  • Java中一秒需要多长时间?测量 Java 中的延迟时间

    我不想更改此代码 我只对 JVM 操作系统或内核定制 配置感兴趣以获得最佳结果 我有一秒循环 1000 x 1ms public static void main String args throws InterruptedExceptio
  • 使用 Google 地图轨迹 API

    我必须开发一个车辆跟踪系统 我已经完成了 Google Map API 和 Google Map Tracks API 教程 IE Google 地图 API 网络 https developers google com maps docu
  • 如何使用订阅者选项?

    我现在开始使用 Pubsubhubbub 以及所有关于实时的东西 但我在使用订阅者选项时遇到了问题 我正在尝试用 PHP 开发一个网络应用程序 订阅 RSS 之前发布的 到 Hub http pubsubhubbub appspot com
  • 可用的游戏网络协议定义语言和代码生成

    我一直在寻找一个好的通用二进制网络协议定义框架 以提供一种用多种语言 例如 Java 后端服务器和 iPhone 前端 编写实时游戏服务器和客户端 例如 魔兽世界 或 雷神之锤 III 的方法用 Objective C 和 Cocoa 编写
  • 什么是“实时”

    我无法决定是否将我的应用程序分类为 实时 或 接近实时 甚至可能是其他类别 该软件立即接收从源生成的数据 然后根据某些规则 在满足某些条件时发出警报 它采用每30秒检查最后30秒数据的方法来查看是否满足规则的标准 那是实时的吗 实时与准实时
  • Flink 中的水印和触发器有什么区别?

    我读到 排序运算符必须缓冲它接收到的所有元素 然后 当它接收到水印时 它可以对时间戳低于水印的所有元素进行排序 并按排序顺序发出它们 这是正确 因为水印表明不能有更多元素到达并与已排序元素混合 https cwiki apache org
  • Linux 中断与轮询

    我正在开发一个带有 DSP 和 ARM 的系统 ARM上有一个linux操作系统 我有一个 DSP 向 ARM Linux 发送数据 在 Linux 中 有一个内核模块读取从 DSP 接收到的数据 内核模块被唤醒以读取数据 使用 DSP 和
  • github“网络推送通知”如何工作?

    github 似乎在其 Web 界面上使用轮询服务器进行实时通知 live github com 看起来该技术既不是基于 Websocket 也不是 XHR 轮询 它是如何开发的 他们似乎使用 HTML5 服务器发送事件 一段时间后 我通过
  • 如何向特定用户发送消息 Ratchet PHP Websocket

    我正在尝试构建一个系统 用户可以在建立与 websocket 服务器的连接时订阅某个类别 然后他将开始接收该类别的更新 到目前为止 我已经与 Ratchet 合作 我能够向所有连接的客户端发送消息 但问题是我不想向所有客户端发送消息 我只想
  • WOWZA + RTMP 在多个设备上播放?

    我仍然是 Wowza Streaming 的新手 但是当我设置所有内容 RHEL Wirecast 时 我可以以某种方式从我的家用电脑流式输出 广播到 EC2 服务器 正如我按照 Wowza Live Streaming 教程 我使用RTM
  • 内核模块和SCHED_RR线程的优先级

    我有一个嵌入式 Linux 平台 Beagleboard 运行 Angstrom Linux 连接了两个设备 通过 USB 连接的激光测距仪 Hokuyo UTM 30 通过 SPI 连接的定制外部板 我们编写了一个Linux内核模块 负责
  • 嵌入式+实时开发培训的建议[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在学习嵌入式实时工程职业 但发现找到好的培训材料有些困难 特别是因为您无法像桌面应用程序开发那
  • 开始使用 Real Time Linux 编程的最佳方式是什么?

    虽然我用C实现了很多项目 但我对操作系统完全陌生 我在 Discovery board STM32 上尝试了实时 Linux 并得到了闪烁 LED 的正确结果 但我并没有真正理解整个过程 因为我只是按照步骤操作 并且无法在互联网上找到每个步
  • 快速写入:内存映射文件与 BufferedWriter

    有人对此进行过基准测试吗 我希望尽可能快地写入磁盘 最大限度地减少写入调用的延迟 我想知道写入内存映射缓冲区 通过 buffer put 是否比仅在 Java 端缓冲内容并在缓冲区满后刷新到 fileChannel 更快 这样 一旦缓冲区已
  • 将数据添加到闪存中的段如何会扰乱程序的时序?

    我有一个实时嵌入式应用程序 其主周期以 10KHz 运行 它在配置为从闪存启动的 TI TMS320C 上运行 我最近在源文件中添加了一个初始化的数组 突然间时间就搞砸了 以一种太复杂的方式无法很好地解释 本质上串行端口写入不再按时完成 这
  • 对于所有 JVM GC 实现来说,压缩真的是不可避免的吗?

    On this link http www azulsystems com technology c4 garbage collector据说 这些暂停是不可避免的压缩要求的结果 堆以释放空间 收藏家使用不同的策略 推迟这些事件 但是压缩是

随机推荐