驱动开发中为了进行竞态保护,对于全局变量的访问提供自旋锁功能。
在中断处理中,使用时,对于自旋锁采用spin_lock_irqsave 进行加锁(1.保存中断状态,关闭本地终端,获取锁)。访问结束通过 spin_unlock_irqrestore进行释放。
如果本地中断已经开启,那么不需要保存中断状态,可调用spin_lock_irq 和 spin_unlock_irq进行保护。
驱动开发中为了进行竞态保护,对于全局变量的访问提供自旋锁功能。
在中断处理中,使用时,对于自旋锁采用spin_lock_irqsave 进行加锁(1.保存中断状态,关闭本地终端,获取锁)。访问结束通过 spin_unlock_irqrestore进行释放。
如果本地中断已经开启,那么不需要保存中断状态,可调用spin_lock_irq 和 spin_unlock_irq进行保护。