gpt4 book ai didi

linux - 如何在不浪费 CPU 时间的情况下实现阻塞调用?

转载 作者:太空狗 更新时间:2023-10-29 12:04:30 28 4
gpt4 key购买 nike

我有一些硬件资源,完成后会触发中断。我想实现一个函数 activateHw() ,它只会在操作完成时返回(意思是,当中断被触发时)但我不希望它浪费 CPU 时间(没有中断轮询) .基本上,我想要的是:

bool activateHw() {
trigger_hw();
sleep_until_interrupt_arrived();
return true;
}

我如何在 Linux 中实现它?

最佳答案

如果您正在编写内核模块,您可以使用request_irq() 来设置回调/中断处理程序。您的中断处理程序可以将数据写入字符设备。您的阻塞函数只需要在字符设备上调用 poll 系统调用。它将阻塞并休眠直到数据可用。

看看gpio.txt ,特别是如何通过配置应触发中断的边沿来设置 gpio 引脚以写入/sys/.../gpioxx/value。如果程序对时间要求不高,这也可以用于用户空间代码。

here is a SO question that seemed related .

关于linux - 如何在不浪费 CPU 时间的情况下实现阻塞调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19928164/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com