linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写

linux下写个C语言程序,要求有0.5微秒以下的延时,要怎样写,第1张

0.5微秒延迟相当于纳秒级的了,内核空间有提供纳秒级的延迟

#include <linux/delay.h>

ndelay(int n) 延时n纳秒

但是时间应该是不准的。

较为准确的延迟可以用select,但也只是us级的。

struct timeval tv

tv.tv_sec=0

tv.tv_usec=iUsec //微秒

select(0,NULL,NULL,NULL,&tv)

MontaVista 4.0 (kernel version 2.6.X) 支持HRT,可以实现微妙级的延时,好像还到不了纳秒。用关中断和busy loop来实现当然可以,但是关中断时间不能太长,而且只能在内核空间实现,肯定影响其他任务调度。如果需要长时间产生这样的信号,那感觉用不太适合用Linux来实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7427551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存