我正在开发一个嵌入式Linux项目,使用的是版本3.3左右的arago发行版。
我已经配置了一个高分辨率Linux计时器,每毫秒唤醒我的进程一次。这是可行的,但时间上有两个问题:
我将这些问题归因于Linux的实时性不足。但我需要研究提高实时性能的方法。
我已经检查了内核是否配置了CONFIG_PREEMPT内核选项,这对实时性很好。
我还将SCHED_FIFO调度类应用于我的流程:
struct sched_param schedparm;
memset(&schedparm, 0, sizeof(schedparm));
schedparm.sched_priority = 1; // lowest rt priority
sched_setscheduler(0, SCHED_FIFO, &schedparm);
但这没什么区别。
我猜想一个合乎逻辑的步骤是将PREEMPT_RT修补程序应用于内核构建,但我还没有确定如何做到这一点。
我还能做些什么来改善抖动/持续时间的变化吗?
或者,有人能建议一个关于如何应用PREEMPT_RT补丁的可访问教程吗?
发布于 2012-12-05 12:11:30
PREEMPT_RT似乎是合乎逻辑的下一步。你试过这个教程了吗?
更新:我建议您看看其他人如何构建抢占型内核,例如:https://aur.archlinux.org/packages/linux-rt/
您可以阅读PKGBUILD来了解所做的事情。
发布于 2013-04-26 16:33:23
如果您使用Debian测试(或者LMDE ),那么它们在x86和amd64体系结构的repo中有一个预编译的amd64内核。
apt-get install linux-image-rt-686-pae
或
apt-get install linux-image-rt-amd64
https://stackoverflow.com/questions/13721701
复制相似问题