什么是中断?

什么是中断?,第1张

中断的意思如下:

1、中断,是一种法律法规术语,是指在诉讼时效期间进行中,因发生一定的法定事由,致使已经经过的时效期间统归无效,待时效中断的事由消除后,诉讼时效期间重新起算。

2、中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

3、中断还指单片机中断系统,包括中断装置和中断处理程序。

分类

1、可屏蔽中断(maskable interrupt)。硬件中断的一类,可通过在中断屏蔽寄存器中设定位掩码来关闭。

2、非可屏蔽中断(non-maskable interrupt,NMI)。硬件中断的一类,无法通过在中断屏蔽寄存器中设定位掩码来关闭。典型例子是时钟中断(一个硬件时钟以恒定频率—如50Hz—发出的中断)。

3、处理器间中断(interprocessor interrupt)。一种特殊的硬件中断。由处理器发出,被其它处理器接收。仅见于多处理器系统,以便于处理器间通信或同步。

4、伪中断(spurious interrupt)。一类不希望被产生的硬件中断。发生的原因有很多种,如中断线路上电气信号异常,或是中断请求设备本身有问题。

5、软件中断(Software Interrupt)。是一条CPU指令,用以自陷一个中断。由于软中断指令通常要运行一个切换CPU至内核态(Kernel Mode/Ring 0)的子例程,它常被用作实现系统调用(System call)。

参考资料:百度百科-中断

方法1 用关键词interrupt和中断矢量编号定义中断函数
这种方式最简单也最直观。缺点是程序的可移植性稍差。范例如下:
void interrupt 17 sci1_Recv_ISR(void){
}关键词interrupt告诉编译器此函数为中断服务函数,数字17告诉连接器该中断矢量的偏移位置(以复位矢量偏移为0计)。某一个中断响应对应的矢量入口编号可以在该芯片的DataSheet中查到。
方法2 用关键词interrupt定义中断函数,中断矢量入口由prm文件指定,仍以上面的中断服务函数为例,这时函数的定义方式为
void interrupt sci1_Recv_ISR(void){
}然后在项目对应的prm文件中添加一行矢量位置定义:
VECTOR 17 sci1_Recv_ISR //指定的中断服务矢量入口
方法3 用#pragma TRAP_PROC定义中断函数,中断矢量入口由prm文件指定。此类型的函数编译器在将C代码编译成汇编指令时会在代码前后增加必要的现场保护和恢复汇编代码,同时函数的最后返回用汇编指令RTI而不是针对普通函数的RTS。例如


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13371167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存