目的:
1.硬件中断响应 >内核驱动中的中断
2.系统调用的函数响应(system_call) >系统调用 客制化
3.自定义中断 >软件的软中断模式
4.信号中断(kill -signal num) >对了解信号的使用创建有帮助
5.系统的异常和错误 >系统的异常获取 了解系统异常的作用
1.linux中断机制
1.1分类:硬件中断 软件中断
硬中断:由电脑主机类似的硬件中断控制芯片发出的中断
ARM中断控制器发出的中断
软中断:异常 第一类:CPU自行保留的中断
系统调用异常
1.2 代码结构 asm.s trap.c
system_call.s fork.c signal.c exit.c sys.c
2.中断工作流程
2.1 回忆:
做CPU工作模式的转换
进行寄存器的拷贝和压栈
设置中断异常向量表
保存正常执行的函数返回值
跳转到对应的中断服务函数上运行
进行模式的复原已经寄存器的复原
跳转回正常工作的函数地址继续运行
2.2 Linux中断工作流程:
1.将所有的寄存器值入栈
2.将异常码入栈(中断号)
3.将当前函数返回值进行入栈
4.调用对应的中断服务函数
5.出栈函数返回值
6.返回所有入栈的寄存器值
中断前的处理过程、中断后的回复过程 中断的执行过程
硬件中断的处理流程 asm.s trap.c
软件及系统调用中断的处理流程 system_call.s fork.c signal.c exit.c sys.c