微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM Linux中断机制之中断的申请

ARM Linux中断机制之中断的申请

时间:11-10 来源:互联网 点击:

载了中间的一个还得将前一个和后一个连接起来。在这里用了一个小技巧。

指针**action_ptr中存储了两个对象,一个是&action->next,另一个是action->next。

比如链表中有三个action,我们要卸载的是第二个,此时指针action_ptr中存放的是第一个action中的成员next的地址&action->next。

*action_ptr存放的是第一个action的action->next所指向的对象,即第二个action。此时的action->next即是第三个action。

只要*action_ptr = action->next;就将第一个action的action->next指向了第三个action。

*/

if (action->dev_id == dev_id)
break;
action_ptr = &action->next;
}

*action_ptr = action->next;

。。。。。。
if (!desc->action) {// 无其他中断使用该中断线则禁止
desc->status |= IRQ_DISABLED;
if (desc->chip->shutdown)
desc->chip->shutdown(irq);
else
desc->chip->disable(irq);
}

。。。。。。。

return action;//返回中断处理例程结构体
}
//在函数free_irq中将函数__free_irq返回的中断处理例程结构体释放掉。

void free_irq(unsigned int irq, void *dev_id)
{
kfree(__free_irq(irq, dev_id));
}

上一篇:stm32之NVIC
下一篇:arm和armel的差异

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top