gpt4 book ai didi

linux - Linux 驱动程序上下文中的微秒延迟和自旋锁

转载 作者:太空宇宙 更新时间:2023-11-04 09:22:59 24 4
gpt4 key购买 nike

我有一个关于驱动程序上下文中的自旋锁和延迟的一般性问题。我有一个在 gpio 中读写的 Linux 驱动程序。读取和写入操作在单个引脚中完成,并且完全基于时序(HDQ 协议(protocol))。原始驱动程序是使用 udelay() 调用实现的,最坏情况约为 500 us。驱动程序不会实现任何中断,只是使用常规 gpio_get_value()gpio_set_value() 在特定 GPIO 中进行常规读取和写入。在这些延迟之间,驱动程序包含自旋锁。这有多安全?我有点担心自旋锁带来的这些延迟。

最佳答案

udelay 可以安全地用于原子部分(即在自旋锁或中断中)。看the kernel timers howto了解所有详情。

您可能担心性能问题,因为 udelay 处于忙等待状态。然而,当使用可调度 sleep 时,很难确定是否满足时间要求,因为它们不精确。在大多数 处理器上,usleep 应该足够准确,但不如udelay 确定。此外,调用 usleep 时无法保持自旋锁,因此必须使用不同的同步机制。

关于linux - Linux 驱动程序上下文中的微秒延迟和自旋锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39839464/

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