软中断vs硬中断

来源:互联网 发布:matlab根据矩阵画图 编辑:程序博客网 时间:2024/04/28 07:31
 
软中断:
1.  编程异常通常叫做软中断
2.  软中断是通讯进程之间用来模拟硬中断的 一种信号通讯方式。
3.  中断源发中断请求或软中断信号后,CPU或接收进程在适当的时机自动进行中断处理或完成软中断信号对应的功能
4.  软中断是软件实现的中断,也就是程序运行时其他程序对它的中断;而硬中断是硬件实现的中断,是程序运行时设备对它的中断。
 
硬中断:
1.  硬中断是由外部事件引起的因此具有随机性和突发性;软中断是执行中断指令产生的,无面外部施加中断请求信号,因此中断的发生不是随机的而是由程序安排好的。
2.  硬中断的中断响应周期,CPU需要发中断回合信号(NMI不需要),软中断的中断响应周期,CPU不需发中断回合信号。
3.  硬中断的中断号是由中断控制器提供的(NMI硬中断中断号系统指定为02H);软中断的中断号由指令直接给出,无需使用中断控制器。
4.  硬中断是可屏蔽的(NMI硬中断不可屏蔽),软中断不可屏蔽。
 
区别:
1.  软中断发生的时间是由程序控制的,而硬中断发生的时间是随机的
2.  软中断是由程序调用发生的,而硬中断是由外设引发的
3.  硬件中断处理程序要确保它能快速地完成它的任务,这样程序执行时才不会等待较长时间

    要搞清楚什么是软中断,什么是硬中断,就必须了解软件中断存在的机理。
    现代的单片机应用中,往往伴随着操作系统的应用,单片机为了方便操作系统编程,会保留一些特权指令,方便操作系统控制整个机器,也为了方便软件中的一些原子操作,这些原子操作不允许中断破坏,软中断指令表面上类似于函数调用,与函数调用相比,更重要的功能是使单片机进入特权运行状态,在这个状态下,操作系统可以做一些用户状态下不能使用的功能。
    像51这类没有特权功能的单片机是不存在也没有必要存在软件中断功能的。
    区别软硬件中断的方法很简单,CPU的手册会告诉你哪条指令会产生软件中断。
原创粉丝点击