snifer

[原创]Blackfin ADSP 系统之中断

0
阅读(40174)

Blackfin ADSP中断是体现其强大功能的重要手段,作用不言而喻,实际操作中经常有朋友跟我交流中断的实现问题,今天我就针对这个问题,深入写一写我的观点:

UcLinux 驱动程序中对于中断的处理方法一般使用以下几个函数:

 

 

其中的 flag 中的可以设置的位定义Flag 的位定义如下表所示:


一般我们应该在设备第一次 open 时使用 request_irq 函数,在设备最后一次关闭时使用free_irq。这一点很关键,很多同学调程序出错就是因为忘记其中之一。

编写中断处理函数的注意事项:中断处理程序与普通 C 代码没有太大不同,不同的是中断处理程序在中断期间运行,它有如下限制:

1、不能向用户空间发送或接受数据

2、不能执行有睡眠操作的函数

3、不能调用调度函数

只要把握好这几点,中断操作将不再是问题,欢迎大家补充拍砖。