自旋鎖直接拿來用

int i = 9;

//定義自旋鎖

spinlock_t lock;

//用於保存中斷屏蔽狀態的變量

unsigned long flag;

//使用自旋鎖之前必須初始化自旋鎖

spin_lock_init(&lock);

//訪問共享資源之前獲得自旋鎖,禁止中斷,並將之前的中斷屏蔽狀態保存在flag變量中

spin_lock_irqsave(&lock,flag);

//訪問共享資源

i++;

//共享資源訪問完成之後釋放自旋鎖,用flag的值恢復中斷屏蔽狀態

spin_unlock_irqrestore(&lock,flag);

 

***************************************************************************

摘錄嵌入式linux驅動開發教程

***************************************************************************

發佈了8 篇原創文章 · 獲贊 1 · 訪問量 7223
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章