Program是Xenomai测试套件的一部分,从Linux PC交叉编译为Linux + Xenomai ARM工具链.
# echo $LD_LIBRARY_PATH
/lib
# ls /lib
ld-2.3.3.so libdl-2.3.3.so libpthread-0.10.so
ld-linux.so.2 libdl.so.2 libpthread.so.0
libc-2.3.3.so libgcc_s.so libpthread_rt.so
libc.so.6 libgcc_s.so.1 libstdc++.so.6
libcrypt-2.3.3.so libm-2.3.3.so libstdc++.so.6.0.9
libcrypt.so.1 libm.so.6
# ./clocktest
./clocktest: error while loading shared libraries: libpthread_rt.so.1: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
编辑:好的我没注意到.1的结尾是文件名的一部分.这究竟是什么意思?
目标硬件平台具有有限的马力,和/或您希望实时作业将最小的开销放在系统上.这是双内核通常比本机抢占系统更好的地方.
从这里:http://www.xenomai.org/index.php/Xenomai : Roadmap#Xenomai_3_FAQ
Preempt_rt确实抢占了整个Linux.以何种方式抢占Linux会对系统造成负担?
与Xenomai相比,FAQ中讨论了preempt_rt.
我有一个函数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);
这也给了我错误.作为一个无效指针,我无法理解我应该传递什么.它给了我错误.请任何想法!
三个实时操作系统框架,扩展或补丁的区别,优缺点是什么?
我想测量一个CPU时间戳计数器(TSC),每次发送或接收数据帧或确认Wifi帧时的纳秒时间.
我意识到需要三种实时技术中的一种来提高精度并减少由于抢占,中断和上下文变化引起的抖动.
目前,我正在将RTAI应用于内核.由于编译需要很长时间,我想读一下这三个.
你能推荐一些文件或解释一下吗?
我需要比较 preempt_rt 补丁、Xenomai 和 RTAI 之间的性能。他们每个人都有自己的基准测试,但没有给出相似的结果,并且并非所有基准测试都适用于所有三个平台。我正在寻找的是一个基准测试,它将测量基本性能,如中断延迟、上下文切换时间等,并且将在所有三个平台上运行。我尝试实现线程度量基准,但它对我来说太复杂了。有人知道这样的基准是否存在吗?预先感谢您的任何帮助。