Linux驱动开发-8、中断分层机制_软中断
2016-03-24 13:39
357 查看
中断分层机制_软中断
1、概念:软中断是模拟硬件中断的概念,实现宏观上的异步执行效果。其实tasklet也是基于软中断实现的。
2、软中断和硬中断的区别
a) 硬中断是外部设备对CPU的中断,软中断时程序对内核的中断
b) 信号是由内核(或者其他进程)对某个进程的软中断
3、结构表示:
struct softirq_action
{
void (*action)(struct softirq_action *);
};
注:该结构体包含软中断处理函数指针和传递给该函数的参数
4、编程相关函数
a) open_softirq(): 用于注册软中断对应的处理函数
void open_softirq(int nr, void (*action)(struct softirq_action *))
{
softirq_vec[nr].action = action;
}
b) raise_softirq():触发一个软中断
void raise_softirq(unsigned int nr)
{
unsigned long flags;
local_irq_save(flags);
raise_softirq_irqoff(nr);
local_irq_restore(flags);
}
5、编程模型
a) 定义一个软中断结构,如果需要传递参数给中断处理函数的话
b) 构建软中断处理函数
c) 注册软软中断
d) 在某个程序中触发软中断
相关文章推荐
- [basic linux基础]-进程
- Linux内存管理Linux Memory Management Notes
- linux安装cnn库
- Linux命令-进程后台执行:nohup(就是不挂起的意思)
- Linux编程---线程
- linux中安装jdk+jmeter-
- linux中安装jdk+jmeter-
- linux安装boost库
- 关于Makefile的正确使用
- linux 读取input输入设备demo
- linux下的VI命令大全
- parted命令对齐分区,获得最佳性能
- linux下vi命令大全
- Linux下查看文件内容的命令
- Linux系统中nmap网络扫描工具的命令用法详解
- Linux系统中sort排序命令的使用教程
- linux运维实战练习-2016年3月4日-3月19日课程作业
- 3.23linux内核编译学习
- CentOS parted分割大于2TB硬盘的performance问题处理
- 关于在CentOS中使用gdb出现debuginfos调试信息