问题标签 [rtai]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
265 浏览

c - 统一共享内存系统

我正在处理一些使用 Linux 的 RTAI 扩展编写的旧实时控制系统代码。我看到有四种不同的机制用于跨进程边界创建和共享内存。

1)RTAI共享内存(rt_shm_alloc & rt_shm_free):这使用一个unsigned long全局唯一值作为访问共享内存的key。在幕后(至少从用户空间),它使用字符设备上的 ioctl 来生成内存,然后使用 mmap 使其可用。

2) System V(ftok、shmget、shmat、shmctl 等):它使用 ftok 生成一个键,该键与索引值一起用于查找和映射内存块。我没有尝试查看它是如何实际实现的,但我假设它在幕后某处使用 mmap。

3) Posix 共享内存(shm_open、mmap、shm_unlink 等):这需要一个字符串(对内容有一些限制)并提供一个文件句柄,可用于映射链接的内存块。这似乎支持使用虚拟文件系统。

4)直接使用mmap和字符驱动ioctl调用某些内核模块提供了直接支持使用mmap创建和共享内存块的接口。

所有这些机制似乎都显式或隐式地使用 mmap 来更改虚拟内存子系统以设置和管理共享内存。

问题是:如果使用其中一个系统共享一块内存,有没有办法设置一个别名来访问其他系统中的相同内存。

一个用例:

我有两个 I/O 子系统。第一个是使用 linux 内核驱动程序实现的,并将其当前 I/O 状态导出到使用 RTAI 共享内存机制创建的一块共享内存中。第二种是基于etherlab ethercat master,它使用自定义内核模块,直接使用ioctl和mmap创建共享内存块。

我有大约 40 个其他系统需要访问某些 I/O 字段,但并不真正需要知道数据来自哪个 I/O 子系统。

我想要的是一种以单一连贯方式打开和访问不同类型共享内存的方法,将底层实现细节与用户隔离开来。 这样的机制存在吗?

我已经更改了 ethercat 堆栈以使用 RTAI 共享内存机制来解决此实例,但这只是一个临时解决方案(阅读:hack)。

0 投票
0 回答
46 浏览

python-3.x - rtai_lxrt 模块无法插入

我正在rtai-4.1开发 Ubuntu-14.04 上的版本。我无法插入rtai_lxrt模块而不是rtai_lxrt. rtai_sched总是被插入。我不想插入rtai_sched. 相反,我想插入rtai_lxrt. 知道如何解决这个问题吗?

0 投票
2 回答
237 浏览

linux - At what point of the boot process is it ok to use pipes

I have a system built using the RTAI extension to Linux. It has a process that runs as root on startup. It creates some named pipes and chmod 777 them. The pipes are owned by root and have the permissions prwxrwxrwx but none of the user processes can write to or read from them. The pipes are made (in C) like this

If I login as the user, su to root, kill the process and restart it, come out of root, the named pipes are still owned by root and have the permissions prwxrwxrwx but this time, the user processes can read and write from them.

Question: what else do I need to do so that the named pipes are accessible if the program is run as part of the boot process.

Also, how do I make sure that it is the very last process that is executed after all the comms mechanisms have been set up.

Edit

I've changed the title (old one was Setting pipe permissions for boot process)

I have finally got it working by shifting the process into rc.local. Since the coder was using RTAI, he thought that the process had to be started at the same time as all the other RTAI processes. The other processes didn't use any of the Unix comms mechanisms so it didn't matter. When he started using pipes, it had to be shifted to the end of the multiuser level.

This is the part I cannot find an explanation for: at what point in the boot process would it be OK to use pipes? I have shifted it to the end but it could be earlier.

0 投票
1 回答
185 浏览

c - 有什么方法可以将正常的 linux 延迟与 RTAI linux 延迟测试进行比较?

请问有人对普通linux和rtai linux的延迟测试有任何想法或源代码吗?我想做性能测试比较(安装 rtai 后提高多少)。

请为此指导我。

0 投票
0 回答
119 浏览

c - RTAI 安装到 arm-9 3.4 内核版本

我想为 ARM9 配置 RTAI,我有蜂鸟板,它有 3.4 linux 内核版本。当我阅读不同的线程时,我了解到只有 linux 2.6 安装文档可用于 ARM。请帮助我。

0 投票
1 回答
92 浏览

c - 如何为 program.c 创建一个 makefile 以及如何在实时应用程序接口中编译和执行

我有一个 hollowworld.c

如何为 program.c 创建一个 makefile 以及如何在实时应用程序接口中编译和执行?

0 投票
1 回答
185 浏览

scheduler - 什么是 MUP(多 Uni 处理器)?

MUP(多单处理器)是否与多核处理器相同,或者它们是否具有相互连接的单独 CPU 以进行通信?我觉得 AMP 还是不一样的。谁能澄清一下?在阅读有关 RTAI(实时扩展到 linux)调度程序时遇到这个问题。请检查链接,最好是第一行和相关的最后一段 。https://www.rtai.org/userfiles/documentation/magma/html/ api/sched_overview.html

0 投票
1 回答
308 浏览

c++ - rtai no such file or directory 编译错误

我试图从 Debian 6 编译一个 .cpp 程序。我有一个工作的 makefile,它只适用于 .c 档案,但我需要在 .cpp 上编译我的程序。所以这里是makefile:

所以当我在终端上写时 make myprogramname.cpp 这就是我得到的:

还尝试使用 gcc -o Programa_Hand2 Programa_Hand2.cpp 并得到相同的错误,我认为我必须用 makefile 更改它但不知道它有什么问题有什么想法吗?我是编程和 linux 的新手,所以我对此有点生气,因为我需要在 c++ 上编译程序,并且我编译它并在 c 上正常工作。谢谢你的帮助!

编辑:从互联网上做一些研究,似乎 RTAI 不支持 C++;那么有什么方法可以用 C++ 编译它吗?另外,我的#includes 是:

再次感谢!

0 投票
1 回答
1097 浏览

compiler-errors - 目标“deb-pkg”的 rtai 4.1 linux 内核 3.10.32 配方失败

ubuntu 16.04 的 RTAI4.1 安装, 当我在我的ubuntu 16.04(x86-64)中编译内核 3.10.32 时 执行以下命令:</p>

执行“make -j getconf _NPROCESSORS_ONLNdeb-pkg LOCALVERSION=-rtai”时: 错误

/scripts/package/Makefile:90: 目标 'deb-pkg' 配方失败
make[1]: * [deb-pkg] 错误 1
​​Makefile:1078: 目标 'deb-pkg' 配方失败
make: *
[deb-包] 错误 2

0 投票
1 回答
65 浏览

rtai - RTAI 4.1 实际需要哪些硬件?

我已经为此苦苦挣扎了一段时间,并且可能正在购买新计算机,所以我想我会检查是否有人知道。

在使用 3.10.32 内核的 ubuntu 14.04 上配置 RTAI 4.1 时(根据一些来源的建议,主要是:https ://github.com/ahoarau/mekabot )

我们似乎遇到的两个问题是:ram/cpu/motherboard 不兼容 ECC,我们有 AMD 而不是 intel 芯片。有很多东西(隐藏在很多输出中)说我们需要 EEC 和英特尔,但这将是一项重大投资。

我只需要在我们花钱之前检查是否有人知道,RTAI 4.1 是否绝对需要 ECC 内存和英特尔芯片组?

先感谢您!