问题标签 [xenomai]
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.
c - PREEMPT_RT 和 Xenomai 之间的 Pthreads 基准测试
我正在尝试在 Raspberry Pi 中按原样对 Xenomai、PREEMPT_RT 和 Linux 进行基准测试,但遇到了一些麻烦。
我正在尝试创建可变数量的线程,具有 RT 优先级和可变的睡眠时间。其中一个线程具有较高的 RT 优先级,从 GPIO 读取,并写入另一个 GPIO(以读取示波器或类似设备上的延迟),而具有较低 RT 优先级的其他线程仅执行算术运算。GPIO 映射到内存上,因此可以避免协议开销。
我在这个测试中考虑: 1 线程 1 us 50 线程 10 us 100 线程 100 us 150 线程 1 ms 200 线程 10 ms 250 线程 100 ms
问题是只创建了一些线程。当线程数很高时,就会出现内存问题并且进程停止。那么,我应该如何进行呢?是代码不对,是时间太短,还是线程数太高?
这是代码:
c - 错误无效表达式的使用
我有一个函数int rt_task_start (RT_TASK *task, void(*task_func)(void *arg), void *arg)
,在第二个参数中我传递一个带参数的函数。
- 当我当时只传递一个函数名时没有问题。(正如预期的那样它正在工作)。
rt_task_start(&demo_task1, demo, 1);
- 但是当我通过时
rt_task_start(&demo_task1, demo(&val), 1);
,它给了我错误error: invalid use of void expression
。变量 val 是之前定义的。int val = 0;
- 当我用这个打电话时,这 显示
rt_task_start(&demo_task1, demo(val), 1);
错误 。Warning passing argument 1 of 'demo' makes pointer from integer without a cast
error: invalid use of void expression
int *val; *val = 0;
rt_task_start(&demo_task1, demo(&val), 1);
这也给了我错误。
我不明白我应该传递什么,作为一个空指针。它给了我错误。请有任何想法!
linux - Buildroot - 带有 Xenomai 补丁的内核配置
我正在尝试将 Raspberry Pi 板与 Buildroot 生成的图像一起使用。我正在使用此处建议的 raspberrypi_defconfig 配置,以生成 rootfs、内核映像和启动系统所需的所有文件。
问题
为了构建实时系统,我需要应用可用于内核 3.5.7、3.10.32 和 3.14 的 Xenomai 内核补丁。可在此处找到可用的 Xenomai 补丁列表。以下是我在图形配置工具中所做的更改:
- 工具链 -> 内核头文件(手动指定的 Linux 版本) -> 3.5.7
- 内核 -> 内核版本(自定义)-> 3.5.7 作为内核版本
- 内核->内核配置(使用defconfig)->(bcmrpi_quick)
- 内核 -> Linux 内核扩展 -> [*] Adeos/Xenomai 实时补丁
- 内核 -> Linux 内核扩展 -> Adeos 补丁文件的路径(正确补丁的相对路径)
在 make 命令之后,我收到以下错误。Buildroot 找不到配置文件
/buildroot-2013.11/output/build/linux-3.5.7/arch/arm/configs/bcmrpi_quick_defconfig':没有这样的文件或目录
我应该在Kernel -> Defconfig name字段中使用哪个 defconfig 名称?
感谢您对这种情况的帮助。
c - 从用户空间切换 linux x86 中的上下文以使用 Xenomai 运行
我需要在我的 x86 平台上使用 linux 中的上下文切换,类似于 ucontext.h,
但不幸的是 ucontext 使用内核调用来做到这一点。在我的 Xenomai 环境中,任何内核函数调用都会将系统变为辅助模式(linux 调度)
那么如何在不离开用户空间的情况下通过存储 FPU 寄存器在 x86 平台上切换上下文呢?
linux - Fedora - Xenomai RTDM - 无法分配内存
我尝试在 xenomai-xx/examples/rtdm/deriver-api/ 下运行 tut01-skeleton-derv.c 示例。我运行makefile没有错误。tut01-skeleton-derv.c 文件中的命令说:
要测试此应用程序,您只需要:
首先,我export LD_LIBRARY_PATH=/usr/xenomai/lib/
在终端上运行,没关系。当我运行时sudo insmod tut01-skeleton-drv.ko
,发生了错误。“无法插入模块 tut01-skeleton-drv.ko:无法分配内存”。我应该怎么办?
c - Xenomai - 无法打开设备
我写了一个用户空间应用程序。当我运行fd = rt_dev_open("/dev/ttyACM0");
时,我得到一个错误。它说no such device
。但是当我使用 POSIX open() 函数时,它工作正常。如何使用此文件 xenoami rtdm 模块?
linux - Xenomai modules installation using Buildroot
I would like to test Xenomai features with the latency test under a specified load but when I try to execute the command the follwing error shows up.
The system has been built with Buildroot. In the /proc/xenomai folder, the version file contains:
Here is the relevant part of the configuration file I have used to build the system:
Is this configuration file correct? Where can I find all the test programs provided by Xenomai?
EDIT
there is no xenomai folder in usr/. I've noticed in /usr/bin the following programs:
How can I use this files?
The only folder called xenomai is the one in the /proc
EDIT2
The content of output/target/usr/bin does not contain the latency program:
c - Xenomai 串口错误数据
我正在尝试通过无线电 apc220 从 C-xenomai 程序向 arduino Mega 发送和从 arduino Mega 发送。
我创建了一项用于发送的任务,以及一项用于在 xenomai 程序中阅读的任务。arduino 端读取和写入串行。
波特率都相等并尝试了 9600 和 19200,但接收到的数据是随机数据,而不是发送的值。
C 代码(这是在具有“rt_task_set_periodic(NULL, TM_NOW, TM_INFINITE);”的任务中,任务创建优先级为 99)。bufferMotorX 的值不断变化。
Arduino方面:
关于我做错了什么的任何想法?
linux - Xenomai 资源
我刚刚开始熟悉 Linux,我想知道你们是否可以帮助我找到关于在 Linux 上运行 Xenomai 的说明的好资源(很容易理解)。
谢谢
linux - RT preempt vs RTAI vs Xenomai for real-time linux
这三个引用的实时操作系统框架、扩展或补丁有什么区别、优缺点?
我想测量一个 CPU 时间戳计数器 (TSC),每次发送或接收数据帧或 Wifi 的确认帧时的纳秒时间。
我意识到需要三种实时技术中的一种来提高精度并减少由于抢占、中断和上下文变化引起的抖动。
目前,我正在将 RTAI 应用于内核。由于编译需要很长时间,我想读一些关于这三个的东西。
你能推荐一些文件或解释一下吗?