网上查了下,windows 和 linux 的硬中断响应时间大概在几十微妙之间,但无法得到准确的答案,目前想记录硬件的数据,响应时间在几百毫秒之内都能接受,有必要上 rtos 吗?有没有搞过这方面的给个意见
1
GeekGao 361 天前
Linux 的硬中断响应时间并没有一个固定的值,因为这个时间取决于许多因素,包括硬件速度、操作系统设计、以及运行的其他任务
“响应时间在几百毫秒之内都能接受” 那最近 3 年的 Linux 内核支持 threaded irq 了,感觉是可以胜任的 而采用 RTOS 增加复杂性了,需要学习… |
2
GeekGao 361 天前
补:threaded irq 在 10 多年前 2.6.25 就支持了
|
3
LGA1150 361 天前
perf bench syscall all
用系统调用的延迟可以近似出硬中断的延迟 |
4
GeruzoniAnsasu 361 天前
几百毫秒,完全没有必要。用户空间的高精度定时器都能轻松达到 1ms 的精度,用 RDTSC 之类的指令手搓也能完全控制到 10us 级的精度。 不知道你是要怎样记录何种硬件数据,假如 gpio 之类的,像树莓派甚至 sleep 然后 read sysfs 都够了。
|
5
tap91624 361 天前
考虑打个 real time 的 linux 补丁包?
|
6
kuanat 361 天前
这个事情优先看 jitter 容忍阈值,其次才是 latency 。如果几百毫秒延迟可以接受的话,我估计 RT-Preempt 内核是可以做到的。RH 系还有 Ubuntu 都有相应的发行版,只是都是收费的。
音频相关对实时性要求比较高,一般现场回放延迟容忍大概在 20ms 以内,如果是舞台耳返的话,大概是 5~10 毫秒左右。目前还是很难用 linux RT 做实时效果合成的。 我印象 x86 RT 大概 99% 的话可以做到 30ms 上下,这个要看具体硬件情况。 |
8
yolee599 361 天前
低于 1ms 的定时才算实时,高于这个值的随便一个系统都能精确实现
|
9
Befehishaber OP @DataSheep 是的 打错了 需要 1 毫秒以内
|
10
Befehishaber OP @GeekGao 不好意思 打错了 是需要在毫秒以内。是不是必须上 rtos 才能满足呢
|
11
GeekGao 360 天前
@Befehishaber 那就上 RTOS 吧
|