CN103631649A - 中断处理方法、装置及中断控制器 - Google Patents
中断处理方法、装置及中断控制器 Download PDFInfo
- Publication number
- CN103631649A CN103631649A CN201210305534.6A CN201210305534A CN103631649A CN 103631649 A CN103631649 A CN 103631649A CN 201210305534 A CN201210305534 A CN 201210305534A CN 103631649 A CN103631649 A CN 103631649A
- Authority
- CN
- China
- Prior art keywords
- interruption
- interrupt
- cpu
- module
- interruptable controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明提供了一种中断处理方法、装置及中断控制器。其中,该方法包括:CPU接收中断控制器发送的中断请求,执行上述中断请求对应的中断,并向上述中断控制器写入第一值,其中,该第一值用于表示上述CPU接收到上述中断请求;上述CPU执行完成上述中断后,向上述中断控制器写入第二值,其中,该第二值用于表示上述CPU执行完成上述中断。通过本发明,解决了相关技术中中断控制器采用逻辑较多,占用面积较大的问题,采用异步采样,避免了中断信号的丢失,简化了软件流程,进而达到了减少中断控制器的逻辑数量,节约面积的效果。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种中断处理方法、装置及中断控制器。
背景技术
在相关技术中,中断控制器进行采样的方法多采用输入中断源经过三级寄存器采样,根据采样的结果和预先配置好的中断采样模式,来判断是否有有效的中断到来。该方法要求输入的异步中断信号至少要保持一个时钟周期有效,否则有可能导致中断丢失。并且,该方法实现起来较为复杂,如果例化的采样模块过多会大大增加中断控制器的面积。
图1是根据相关技术的中断控制器的处理流程图,如图1所示,该流程包括以下步骤(步骤S102-步骤S112):
步骤S102,开始中断进程(start interrupt process)。当CPU接收到中断后会通过flag信号通知中断控制器它接收到了中断。
步骤S104,CPU读取中断现场寄存器,并将中断现场(int_cur_reg)压入软件的堆栈(stack)里。
步骤S106,获取矢量地址(vector addr)。
步骤S108,判断是否有最高优先级的终端,或者是否有新的中断进入,如果有,则执行步骤S102,如果没有,则执行步骤S110。
步骤S110,判断是否所有的中断进程都已结束(all interrupt process done),如果是,则执行步骤S112,如果否,则执行步骤S108。
步骤S112,CPU处理完中断后会从软件的堆栈里压出一个中断现场的值,回写到中断控制器里面,同时会通过flag信号通知中断控制器该中断已经处理结束。
目前的矢量中断控制器的握手方式大致为,CPU接收到中断后,将中断现场(中断号和优先级)保存在软件的堆栈中,然后通过flag信号通知中断控制器,CPU执行完中断后,再通过flag信号通知中断控制器已经执行完毕,同时从软件的堆栈中取出上一个矢量中断的中断现场发送给中断控制器,用来更新中断控制器中的中断现场寄存器。如果在进入本次中断前是在main函数中,则上一个矢量中断的中断号可以发送任意值。
上述中断控制器的处理流程采用同步采样,图2是根据相关技术的中断控制器实现同步采样方式的结构示意图,如图2所示,图2的左侧是三个输入信号的产生结构图,左侧最上方结构采用上升沿采样,其中三个寄存器的复位值都为0;左侧中间结构采用下降沿采样,其中三个寄存器的复位值都为1;左侧最下方结构采用高低电平采样。目前的中断控制器的握手方式的握手信号较多,用软件来保存中断现场的实现较为复杂,并且,实现上述流程的中断控制器采用逻辑较多,占用面积较大。
针对相关技术中中断控制器采用逻辑较多,占用面积较大的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中中断控制器采用逻辑较多,占用面积较大的问题,本发明提供了一种中断处理方法、装置及中断控制器,以至少解决上述问题。
根据本发明的一个方面,提供了一种中断处理方法,该方法包括:CPU接收中断控制器发送的中断请求,执行上述中断请求对应的中断,并向上述中断控制器写入第一值,其中,上述第一值用于表示上述CPU接收到上述中断请求;上述CPU执行完成上述中断后,向上述中断控制器写入第二值,其中,上述第二值用于表示上述CPU执行完成上述中断。
上述CPU接收上述中断控制器发送的上述中断请求之前,上述方法可以包括:上述中断控制器的总线接口模块通过APB总线与上述CPU连接。
上述CPU接收上述中断控制器发送的上述中断请求之前,上述方法还可以包括:上述中断控制器的中断采样模块对外部中断源进行异步采样,并在采样到中断请求后输出中断信号。
上述CPU执行上述中断请求对应的中断之后,上述方法还可以包括:上述中断控制器的中断比较模块对上述中断采样模块输出的上述中断信号进行优先级比较,将优先级最高的中断的中断信息发送至中断控制模块;上述中断控制器的上述中断控制模块保存嵌套的中断的上述中断信息,并保存上述CPU当前正在执行的上述中断的上述中断信息。
上述CPU向上述中断控制器写入上述第一值可以包括:在上述CPU进入中断服务子程序后,上述CPU在上述中断控制器的中断ack寄存器中写入上述第一值;上述中断控制器的中断控制模块清除上述中断采样模块输出的中断信号。
上述CPU向上述中断控制器写入上述第二值可以包括:在上述CPU执行完成上述中断服务子程序后,上述CPU在上述中断控制器的中断done寄存器中写入上述第二值;上述中断控制模块清除中断状态寄存器中保存的当前信息。
上述方法还可以包括:如果上述中断比较模块发送的中断比上述中断现场寄存器内保存的中断的优先级高,则上述中断现场寄存器将当前保存的信息发送至堆栈,中断现场寄存器保存上述中断比较模块发送的中断的上述中断信息,并将上述中断输出至上述CPU;其中,上述中断控制模块包括上述堆栈和上述中断现场寄存器;如果上述中断比较模块发送的中断比上述中断现场寄存器内保存的中断的优先级低,则继续执行当前正在执行的中断,上述中断比较模块继续保持上述中断有效,直至上述中断比较模块中比上述终端的优先级高的中断全部执行结束,或者,上述外部中断源提供比上述中断的优先级高的中断。
根据本发明的另一方面,提供了一种中断处理装置,该装置包括:接入模块,用于接收中断控制器发送的中断请求;第一写入模块,用于执行上述中断请求对应的中断,并向上述中断控制器写入第一值,其中,上述第一值用于表示接收到上述中断请求;第二写入模块,用于执行完成上述中断后,向上述中断控制器写入第二值,其中,上述第二值用于表示执行完成上述中断。
上述第一写入模块可以包括:第一写入单元,用于在进入中断服务子程序后,在上述中断控制器的中断ack寄存器中写入上述第一值。
上述第二写入模块可以包括:第二写入单元,用于在执行完成上述中断服务子程序后,在上述中断控制器的中断done寄存器中写入上述第二值。
根据本发明的又一方面,提供了一种中断控制器,包括:中断ack寄存器,用来实现中断控制器与CPU的握手操作,用来在上述CPU执行中断服务子程序时,接收上述CPU写入的第一值;中断done寄存器,用来实现上述中断控制器与上述CPU的握手操作,用来在上述CPU执行完上述中断服务子程序后,接收上述CPU写入的第二值。
上述中断ack寄存器和上述中断done寄存器位于上述中断控制器的总线接口模块中;上述总线接口模块,用于提供上述中断控制器与CPU之间的接口,还用于配置上述中断控制器的参数。
上述中断控制器还可以包括:中断采样模块,用于对外部中断源进行异步采样,并在采样到中断请求后输出中断信号;中断比较模块,用于对上述中断采样模块输出的上述中断信号进行优先级比较,将优先级最高的中断的中断信息发送至中断控制模块;中断控制模块,用于保存嵌套的中断的上述中断信息,还用于保存上述CPU当前正在执行的中断的上述中断信息。
上述中断采样模块可以包括:中断采样单元,用于根据上述总线接口模块的配置对上述外部中断源进行采样;高电平输出单元,用于当采样到上述中断请求后,输出高电平的中断信号;低电平输出单元,用于接收到上述中断控制模块发送的清除信号之后,输出低电平的中断信号。
上述中断比较模块可以包括:中断比较单元,用于根据上述中断采样模块发送的上述中断信号以及上述总线接口模块配置的中断信息,进行中断优先级的比较;其中,上述终端信息包括中断优先级和中断类型;发送单元,用于将优先级最高的中断的上述中断信息发送给上述中断控制模块。
上述中断控制模块可以包括:堆栈,用来保存上述嵌套的上述中断信息;中断现场寄存器,用来保存上述CPU当前正在执行的中断的上述中断信息。
如果上述中断比较模块发送的中断比上述中断现场寄存器内保存的中断的优先级高,则上述中断现场寄存器将当前保存的信息发送至上述堆栈,上述中断现场寄存器保存上述中断比较模块发送的中断的上述中断信息,并将上述中断输出至上述CPU;如果上述中断比较模块发送的中断比上述中断现场寄存器内保存的中断的优先级低,则继续执行当前正在执行的中断,上述中断比较模块继续保持上述中断有效,直至上述中断比较模块中比上述终端的优先级高的中断全部执行结束,或者,上述外部中断源提供比上述中断的优先级高的中断。
上述总线接口模块提供的上述中断控制器与上述CPU之间的接口可以为标准APB Slave接口。
通过本发明,CPU接收中断控制器发送的中断请求后,执行上述中断请求对应的中断,并向中断控制器写入第一值,该第一值用于表示CPU接收到上述中断请求;CPU执行完成上述中断后,再向中断控制器写入第二值,该第二值用于表示CPU执行完成上述中断,解决了相关技术中中断控制器采用逻辑较多,占用面积较大的问题,采用异步采样,避免了中断信号的丢失,简化了软件流程,进而达到了减少中断控制器的逻辑数量,节约面积的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的中断控制器的处理流程图;
图2是根据相关技术的中断控制器实现同步采样方式的结构示意图;
图3是根据本发明实施例的中断处理方法的流程图;
图4是根据本发明实施例的中断处理装置的结构框图;
图5是根据本发明实施例的中断控制器和CPU接口的结构示意图;
图6是根据本发明实施例的中断控制器的硬件结构示意图;
图7是根据本发明实施例的中断采样模块实现异步采样的结构示意图;
图8是根据本发明实施例的中断比较模块的结构示意图;
图9是根据本发明实施例的中断处理流程的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
对于相关技术中的中断控制器在进行中断处理时,采用同步采样,容易导致采样信号存在丢失风险,并且握手流程较为复杂。基于此,本发明实施例提供了一种中断处理方法、装置及中断控制器,简化了握手流程,减少了中断控制器的逻辑,下面通过实施例进行说明。
图3是根据本发明实施例的中断处理方法的流程图,如图3所示,该方法包括以下步骤(步骤S302-步骤S304):
步骤S302,CPU接收中断控制器发送的中断请求,执行该中断请求对应的中断,并向上述中断控制器写入第一值,该第一值用于表示CPU接收到上述中断请求;
步骤S304,CPU执行完成上述中断后,向上述中断控制器写入第二值,该第二值用于表示CPU执行完成上述中断。
通过上述实施例,CPU接收中断控制器发送的中断请求后,执行上述中断请求对应的中断,并向中断控制器写入第一值,该第一值用于表示CPU接收到上述中断请求;CPU执行完成上述中断后,再向中断控制器写入第二值,该第二值用于表示CPU执行完成上述中断,解决了相关技术中中断控制器采用逻辑较多,占用面积较大的问题,采用异步采样,避免了中断信号的丢失,简化了软件流程,进而达到了减少中断控制器的逻辑数量,节约面积的效果。
在本实施例中,CPU通过APB总线对中断控制器进行配置,包括配置每个外部中断源的采样模式,中断优先级,中断类型等;然后,使能中断控制器;当CPU接到中断控制器的中断请求后,在保存中断现场后立即往中断控制器的中断ack寄存器回写一个任意值,表示CPU接收到了中断请求;当CPU执行完中断服务子程序后,往中断控制器的中断done寄存器写入一个任意值,表示CPU已经执行完了当前正在执行的中断。
在CPU接收中断控制器发送的中断请求之前,中断控制器和CPU需要先进行连接,因此,本实施例提供了一种优选实施例,中断控制器中包括总线接口模块,总线接口模块可以通过APB总线与CPU连接。
CPU接收中断控制器发送的中断请求之前,上述方法还包括:中断控制器的中断采样模块对外部中断源进行异步采样,并在采样到中断请求后输出中断信号。CPU执行中断请求对应的中断之后,上述方法还包括:中断控制器的中断比较模块对中断采样模块输出的中断信号进行优先级比较,将优先级最高的中断的中断信息发送至中断控制模块;中断控制器的中断控制模块保存嵌套的中断的中断信息,并保存CPU当前正在执行的中断的中断信息。
CPU向中断控制器写入第一值包括:在CPU进入中断服务子程序后,CPU在中断控制器的中断ack寄存器中写入上述第一值;中断控制器的中断控制模块清除中断采样模块输出的中断信号。CPU向中断控制器写入第二值包括:在CPU执行完成中断服务子程序后,CPU在中断控制器的中断done寄存器中写入上述第二值;中断控制模块清除中断状态寄存器中保存的当前信息。
针对中断信息的存储过程,本实施例提供了一种优选实施方式,如果中断比较模块发送的中断比上述中断现场寄存器内保存的中断的优先级高,则上述中断现场寄存器将当前保存的信息发送至堆栈,中断现场寄存器保存上述中断比较模块发送的中断的上述中断信息,并将上述中断输出至上述CPU;其中,上述中断控制模块包括上述堆栈和上述中断现场寄存器;
如果中断比较模块发送的中断比上述中断现场寄存器内保存的中断的优先级低,则继续执行当前正在执行的中断,上述中断比较模块继续保持上述中断有效,直至上述中断比较模块中比上述终端的优先级高的中断全部执行结束,或者,上述外部中断源提供比上述中断的优先级高的中断。
对应于上述中断处理方法,本实施例提供了一种中断处理装置,该装置用于实现上述实施例,图4是根据本发明实施例的中断处理装置的结构框图,如图4所示,该装置包括:接入模块10、第一写入模块20和第二写入模块30。下面对该结构进行详细说明。
接入模块10,用于接收中断控制器发送的中断请求;
第一写入模块20,连接至接入模块10,用于执行上述中断请求对应的中断,并向上述中断控制器写入第一值,其中,该第一值用于表示接收到上述中断请求;
第二写入模块30,连接至第一写入模块20,用于执行完成上述中断后,向上述中断控制器写入第二值,其中,该第二值用于表示执行完成上述中断。
通过上述实施例,接入模块10接收中断控制器发送的中断请求后,第一写入模块20执行上述中断请求对应的中断,并向中断控制器写入第一值,第二写入模块30执行完成上述中断后,再向中断控制器写入第二值,解决了相关技术中中断控制器采用逻辑较多,占用面积较大的问题,采用异步采样,避免了中断信号的丢失,简化了软件流程,进而达到了减少中断控制器的逻辑数量,节约面积的效果。
中断控制器包括中断ack寄存器和中断done寄存器,上述第一值和第二值可以分别保存在中断ack寄存器和中断done寄存器。具体地,上述第一写入模块20包括:第一写入单元,用于在进入中断服务子程序后,在中断控制器的中断ack寄存器中写入上述第一值。上述第二写入模块30包括:第二写入单元,用于在执行完成中断服务子程序后,在上述中断控制器的中断done寄存器中写入上述第二值。
图5是根据本发明实施例的中断控制器和CPU接口的结构示意图,如图5所示,中断控制器通过APB总线与CPU进行连接,中断控制器与CPU之间的接口为标准APB Slave接口。
图6是根据本发明实施例的中断控制器的硬件结构示意图,如图6所示,中断控制器包括:总线接口模块(也可以称为APB总线接口模块),中断采样模块,中断比较模块,中断控制模块。下面分别对上述几个模块的功能进行描述。
总线接口模块,该模块的功能与上述实施例的总线接口模块的功能相当,提供了标准的APB Slave接口,用于配置中断控制器的各个参数。主要是用来通过APB总线配置中断控制器内部的寄存器,通过对这些寄存器的配置,可以对外部中断源单独进行屏蔽和允许,可以设置外部中断源的触发类型(低电平、高电平、上升沿、下降沿),可以将外部中断源设置为普通中断(IRQ)或快速中断(FIQ),也可以将中断源设置为软中断模式,即通过往软中断寄存器的相应位写1来发起中断请求。在总线接口模块里还有2个寄存器是CPU用来和中断控制器握手的寄存器:中断ack寄存器和中断done寄存器。当CPU进入中断服务子程序后,往中断ack寄存器写入一个任意值,表示接收到了中断,这时,中断控制模块就会清除对应的中断采样模块的输出;当CPU执行完中断服务子程序后,往中断done寄存器写入一个任意值,这时,中断控制模块就会清除当前的中断状态寄存器,如果此时是出于中断嵌套的情况,中断控制模块就会从堆栈弹出最晚压入堆栈的中断的状态,来更新中断状态寄存器。
中断采样模块,该模块的功能与上述实施例的中断采样模块的功能相当,该模块可以对外部中断源进行采样,图7是根据本发明实施例的中断采样模块实现异步采样的结构示意图,该模块负责根据总线接口模块的配置对外部中断源进行采样,当中断采样模块采到有效的中断请求后,将一直输出高电平,直到中断控制模块发出清除信号,中断采样模块才会将输出信号拉低。上述中断采样模块的电路原理如下:int_scr[1:0]是通过总线配置的采样方式,00表示低电平,01表示上升沿,10表示下降沿,11表示高电平。int_en是通过总线配置的中断使能。int_clear是控制模块给采样模块的采样清除信号。当CPU接收到中断后会发出这个信号。对于电平采样,即int_scr[0]==int_scr[1],int_req会直接输出到samplel_result。对于边沿采样,即int_scr[0]!=nt_scr[1],当输入信号int_req有跳变时,trig_reg和trig_reg_d就会不相等,int_gen就会等于1,并送到sample_result寄存器的D端,sample_result就会有效,即采到了一个边沿中断请求。
中断比较模块,该模块的功能与上述实施例的中断比较模块的功能相当,对中断采样模块的输出进行优先级比较,输出优先级较高的中断给中断控制模块。图8是根据本发明实施例的中断比较模块的结构示意图,如图8所示,输入中断经采样后会进入中断比较模块,中断比较模块会根据中断配置的优先级来决定输出哪个中断到下一级的比较。128个中断源,要比较7次(如图8中所示的①、②……⑦)才能得到一个优先级最高的中断,然后输出到中断控制模块。上述中断比较模块根据中断采样模块的中断请求信号和APB总线配置的中断优先级和中断类型,进行中断优先级的比较,输出优先级最高的中断,将中断信息(例如中断号、优先级等信息)给中断控制模块。
与上述相关技术中的同步采用方式相比,本实施例中的中断比较模块的面积减少很多。假设例化了很多中端采样模块,面积上可以节约大量的寄存器。本实施例中的中断控制器例化了128个中断采样模块,并且该模块为异步采样,不会丢失中断,响应更快速。
中断控制模块,该模块的功能与上述实施例的中断控制模块的功能相当,中断控制模块包括一个堆栈,用来保存嵌套的中断的信息,还包括一个中断现场寄存器,用来保存当前正在执行的中断的信息。如果中断比较模块输出的中断比中断现场寄存器保存的中断的优先级高,那么中断现场寄存器的信息进入堆栈,用中断比较模块输出的中断的信息更新中断现场寄存器,并输出该中断给CPU。如果中断比较模块输出的中断比中断现场寄存器保存的中断的优先级低,那么中断比较模块继续保持这个输出有效,直到外部中断源有高优先级的中断到来或者中断比较模块高优先级的中断全部执行结束。该模块可以对中断比较模块输出的中断和当前正在执行的中断进行比较,如果中断比较模块输出的中断比当前正在执行的中断优先级低或相等,则继续执行当前正在执行的中断,如果优先级高,则输出中断比较模块的中断,同时当前的中断状态进入堆栈,用中断比较模块输出的中断的状态更新当前的中断状态寄存器。
上述实施例中的CPU可以是CK610处理器,其他处理器只需根据其自身的特点稍作修改即可。
图9是根据本发明实施例的中断处理流程的流程图,CPU接到中断后往0x24的地址回写一个任意数,硬件就会知道CPU接收到了请求的中断。当中断结束后CPU就会往0x28地址回写一个任意数,表示该中断已经处理结束。中断控制器会自动从堆栈中压出一个现场来更新中断控制器的中断现场寄存器。图9中除了这2个回写是和硬件相关的握手流程,其他操作都是CK610这款CPU要求的操作,和中断控制器没有关系。下面对上述中断处理流程进行描述,如图9所示,该流程包括以下步骤(步骤S902-步骤S938)。
步骤S902,异常服务程序开始。
步骤S904,保存程序现场。
步骤S906,对中断控制器的0x24地址回写任意数,清除中断源。
步骤S908,判断fe==0是否成立,如果是,则执行步骤S910,如果否,则执行步骤S924。
步骤S910,将fpsr和fpc寄存器压入堆栈。
步骤S912,将PSR的FE位置位。
步骤S914,执行中断处理。
步骤S916,将PSR的FE位清零。
步骤S918,对中断控制器的0x28地址回写任意数,表示中断结束。
步骤S920,从堆栈中恢复fpsr和fpc寄存器。
步骤S922,恢复中断现场,用rfi命令返回。
步骤S924,将epsr和epc寄存器压入堆栈。
步骤S926,将PSR的EE和IE位置位。
步骤S928,执行中断处理。
步骤S930,将PSR的EE和IE位清零。
步骤S932,对中断控制器的0x28地址回写任意数,表示中断结束。
步骤S934,从堆栈中恢复epsr和epc寄存器。
步骤S936,恢复中断现场,用rte中断返回。
步骤S938,中断流程结束。
相关技术中的中断控制器需要软件来将中断现场寄存器压入堆栈进行保存,本实施例中的中断控制模块不存在软件流程,主动将中断信息保存在中断控制模块,并且,相关技术中的握手过程是通过flag信号实现的,本实施例提供的中断控制器只需要回写寄存器就可以,使得接口更加简单。
从以上的描述中可以看出,本发明与现有的中断控制器相比,所占用的资源更少,简化了中断控制器与CPU的接口,中断控制器的使用更加方便。采用异步采样,能避免中断信号的丢失;减少了中断控制器和CPU的接口,简化软件的流程,同时由于新的采样逻辑,使得中断控制器面积上也会比其他中断控制器要小很多。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (18)
1.一种中断处理方法,其特征在于,包括:
中央处理器CPU接收中断控制器发送的中断请求,执行所述中断请求对应的中断,并向所述中断控制器写入第一值,其中,所述第一值用于表示所述CPU接收到所述中断请求;
所述CPU执行完成所述中断后,向所述中断控制器写入第二值,其中,所述第二值用于表示所述CPU执行完成所述中断。
2.根据权利要求1所述的中断处理方法,其特征在于,所述CPU接收所述中断控制器发送的所述中断请求之前,所述方法包括:
所述中断控制器的总线接口模块通过APB总线与所述CPU连接。
3.根据权利要求1所述的中断处理方法,其特征在于,所述CPU接收所述中断控制器发送的所述中断请求之前,所述方法还包括:
所述中断控制器的中断采样模块对外部中断源进行异步采样,并在采样到中断请求后输出中断信号。
4.根据权利要求3所述的中断处理方法,其特征在于,所述CPU执行所述中断请求对应的中断之后,所述方法还包括:
所述中断控制器的中断比较模块对所述中断采样模块输出的所述中断信号进行优先级比较,将优先级最高的中断的中断信息发送至中断控制模块;
所述中断控制器的所述中断控制模块保存嵌套的中断的所述中断信息,并保存所述CPU当前正在执行的所述中断的所述中断信息。
5.根据权利要求4所述的中断处理方法,其特征在于,所述CPU向所述中断控制器写入所述第一值包括:
在所述CPU进入中断服务子程序后,所述CPU在所述中断控制器的中断ack寄存器中写入所述第一值;
所述中断控制器的中断控制模块清除所述中断采样模块输出的中断信号。
6.根据权利要求4所述的中断处理方法,其特征在于,所述CPU向所述中断控制器写入所述第二值包括:
在所述CPU执行完成所述中断服务子程序后,所述CPU在所述中断控制器的中断done寄存器中写入所述第二值;
所述中断控制模块清除中断状态寄存器中保存的当前信息。
7.根据权利要求4所述的中断处理方法,其特征在于,所述方法还包括:
如果所述中断比较模块发送的中断比所述中断现场寄存器内保存的中断的优先级高,则所述中断现场寄存器将当前保存的信息发送至堆栈,中断现场寄存器保存所述中断比较模块发送的中断的所述中断信息,并将所述中断输出至所述CPU;其中,所述中断控制模块包括所述堆栈和所述中断现场寄存器;
如果所述中断比较模块发送的中断比所述中断现场寄存器内保存的中断的优先级低,则继续执行当前正在执行的中断,所述中断比较模块继续保持所述中断有效,直至所述中断比较模块中比所述终端的优先级高的中断全部执行结束,或者,所述外部中断源提供比所述中断的优先级高的中断。
8.一种中断处理装置,其特征在于,包括:
接入模块,用于接收中断控制器发送的中断请求;
第一写入模块,用于执行所述中断请求对应的中断,并向所述中断控制器写入第一值,其中,所述第一值用于表示接收到所述中断请求;
第二写入模块,用于执行完成所述中断后,向所述中断控制器写入第二值,其中,所述第二值用于表示执行完成所述中断。
9.根据权利要求8所述的中断处理装置,其特征在于,所述第一写入模块包括:
第一写入单元,用于在进入中断服务子程序后,在所述中断控制器的中断ack寄存器中写入所述第一值。
10.根据权利要求8所述的中断处理装置,其特征在于,所述第二写入模块包括:
第二写入单元,用于在执行完成所述中断服务子程序后,在所述中断控制器的中断done寄存器中写入所述第二值。
11.一种中断控制器,其特征在于,包括:
中断ack寄存器,用来实现中断控制器与中央处理器CPU的握手操作,用来在所述CPU执行中断服务子程序时,接收所述CPU写入的第一值;
中断done寄存器,用来实现所述中断控制器与所述CPU的握手操作,用来在所述CPU执行完所述中断服务子程序后,接收所述CPU写入的第二值。
12.根据权利要求11所述的中断控制器,其特征在于,所述中断ack寄存器和所述中断done寄存器位于所述中断控制器的总线接口模块中;
所述总线接口模块,用于提供所述中断控制器与CPU之间的接口,还用于配置所述中断控制器的参数。
13.根据权利要求11所述的中断控制器,其特征在于,所述中断控制器还包括:
中断采样模块,用于对外部中断源进行异步采样,并在采样到中断请求后输出中断信号;
中断比较模块,用于对所述中断采样模块输出的所述中断信号进行优先级比较,将优先级最高的中断的中断信息发送至中断控制模块;
中断控制模块,用于保存嵌套的中断的所述中断信息,还用于保存所述CPU当前正在执行的中断的所述中断信息。
14.根据权利要求13所述的中断控制器,其特征在于,所述中断采样模块包括:
中断采样单元,用于根据所述总线接口模块的配置对所述外部中断源进行采样;
高电平输出单元,用于当采样到所述中断请求后,输出高电平的中断信号;
低电平输出单元,用于接收到所述中断控制模块发送的清除信号之后,输出低电平的中断信号。
15.根据权利要求13所述的中断控制器,其特征在于,所述中断比较模块包括:
中断比较单元,用于根据所述中断采样模块发送的所述中断信号以及所述总线接口模块配置的中断信息,进行中断优先级的比较;其中,所述终端信息包括中断优先级和中断类型;
发送单元,用于将优先级最高的中断的所述中断信息发送给所述中断控制模块。
16.根据权利要求13所述的中断控制器,其特征在于,所述中断控制模块包括:
堆栈,用来保存所述嵌套的所述中断信息;
中断现场寄存器,用来保存所述CPU当前正在执行的中断的所述中断信息。
17.根据权利要求16所述的中断控制器,其特征在于,
如果所述中断比较模块发送的中断比所述中断现场寄存器内保存的中断的优先级高,则所述中断现场寄存器将当前保存的信息发送至所述堆栈,所述中断现场寄存器保存所述中断比较模块发送的中断的所述中断信息,并将所述中断输出至所述CPU;
如果所述中断比较模块发送的中断比所述中断现场寄存器内保存的中断的优先级低,则继续执行当前正在执行的中断,所述中断比较模块继续保持所述中断有效,直至所述中断比较模块中比所述终端的优先级高的中断全部执行结束,或者,所述外部中断源提供比所述中断的优先级高的中断。
18.根据权利要求12所述的中断控制器,其特征在于,所述总线接口模块提供的所述中断控制器与所述CPU之间的接口为标准APB Slave接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210305534.6A CN103631649B (zh) | 2012-08-24 | 2012-08-24 | 中断处理方法、装置及中断控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210305534.6A CN103631649B (zh) | 2012-08-24 | 2012-08-24 | 中断处理方法、装置及中断控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631649A true CN103631649A (zh) | 2014-03-12 |
CN103631649B CN103631649B (zh) | 2018-08-28 |
Family
ID=50212741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210305534.6A Active CN103631649B (zh) | 2012-08-24 | 2012-08-24 | 中断处理方法、装置及中断控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103631649B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105487989A (zh) * | 2015-11-27 | 2016-04-13 | 杭州朔天科技有限公司 | 一种降低响应延时提高系统效率的中断控制器及控制方法 |
CN106445653A (zh) * | 2015-08-07 | 2017-02-22 | 联发科技股份有限公司 | 中断请求迁移方法及其系统 |
CN108073108A (zh) * | 2016-11-14 | 2018-05-25 | Ls 产电株式会社 | 用于控制逆变器中的中断的方法 |
CN110249309A (zh) * | 2017-01-31 | 2019-09-17 | 德克萨斯仪器股份有限公司 | 用于缓慢外围设备的中断处理方法和设备 |
CN113867802A (zh) * | 2021-12-03 | 2021-12-31 | 芯来科技(武汉)有限公司 | 一种中断分发装置、芯片和电子设备 |
CN113986789A (zh) * | 2021-09-19 | 2022-01-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种防止中断丢失的方法和中断控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386573A (en) * | 1992-05-20 | 1995-01-31 | Nec Corporation | Single chip microcomputer with interrupt processing capability during hold states |
CN101126918A (zh) * | 2007-09-13 | 2008-02-20 | 北京航空航天大学 | 一种用于飞行仿真伺服系统的频率鉴别方法 |
CN101894008A (zh) * | 2010-06-28 | 2010-11-24 | 北京中星微电子有限公司 | 开关中断的装置和方法 |
-
2012
- 2012-08-24 CN CN201210305534.6A patent/CN103631649B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386573A (en) * | 1992-05-20 | 1995-01-31 | Nec Corporation | Single chip microcomputer with interrupt processing capability during hold states |
CN101126918A (zh) * | 2007-09-13 | 2008-02-20 | 北京航空航天大学 | 一种用于飞行仿真伺服系统的频率鉴别方法 |
CN101894008A (zh) * | 2010-06-28 | 2010-11-24 | 北京中星微电子有限公司 | 开关中断的装置和方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445653A (zh) * | 2015-08-07 | 2017-02-22 | 联发科技股份有限公司 | 中断请求迁移方法及其系统 |
CN105487989A (zh) * | 2015-11-27 | 2016-04-13 | 杭州朔天科技有限公司 | 一种降低响应延时提高系统效率的中断控制器及控制方法 |
CN108073108A (zh) * | 2016-11-14 | 2018-05-25 | Ls 产电株式会社 | 用于控制逆变器中的中断的方法 |
CN110249309A (zh) * | 2017-01-31 | 2019-09-17 | 德克萨斯仪器股份有限公司 | 用于缓慢外围设备的中断处理方法和设备 |
CN113986789A (zh) * | 2021-09-19 | 2022-01-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种防止中断丢失的方法和中断控制器 |
CN113986789B (zh) * | 2021-09-19 | 2024-04-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种防止中断丢失的方法和中断控制器 |
CN113867802A (zh) * | 2021-12-03 | 2021-12-31 | 芯来科技(武汉)有限公司 | 一种中断分发装置、芯片和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103631649B (zh) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631649A (zh) | 中断处理方法、装置及中断控制器 | |
KR20200119706A (ko) | 프로세서 제어 장치, 방법 및 설비 | |
CN108563518A (zh) | 主从机通信方法、装置、终端设备及存储介质 | |
US20050165997A1 (en) | Data communication system | |
KR101706876B1 (ko) | 서비스 처리 방법 및 장치 | |
CN102388583B (zh) | 一种串口波特率配置方法及相关设备、系统 | |
CN114048164B (zh) | 芯片互联方法、系统、设备及可读存储介质 | |
CN105094976A (zh) | 一种中断控制方法和中断控制器 | |
CN108268419A (zh) | 具有相互通信处理器的设备、收音装置及非临时存储介质 | |
CN112732628A (zh) | 核间数据处理方法、系统、片上系统以及电子设备 | |
CN110517676A (zh) | 一种语音唤醒方法及终端、服务器、存储介质 | |
EP4203548A1 (en) | Inter-core communication method and apparatus, electronic assembly, and electronic device | |
EP3244318A1 (en) | Method and unit for handling interrupts in a system | |
CN106851015A (zh) | 调整广播消息队列的方法、装置及终端 | |
CN114055468B (zh) | 轨迹复现方法、系统及终端设备 | |
CN109992314B (zh) | 数据上报方法、装置、终端和存储介质 | |
CN106625674A (zh) | 一种用于机器人的指令处理方法及机器人 | |
CN106954191B (zh) | 广播发送方法、装置和终端设备 | |
CN104424142B (zh) | 一种多核处理器系统中访问共享资源的方法与装置 | |
CN110597643B (zh) | 核间通信方法、处理器以及电子设备 | |
CN112328523A (zh) | 传输双倍速率信号的方法、装置及系统 | |
CN108228517B (zh) | I3c电路设备、系统及通信方法 | |
CN103220827A (zh) | WiFi适配器芯片 | |
CN111143068A (zh) | 文件操作方法、装置及嵌入式控制器 | |
CN111078605A (zh) | 一种多通信接口中断的综合处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20140312 Assignee: Xi'an Chris Semiconductor Technology Co. Ltd. Assignor: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD. Contract record no.: 2019440020036 Denomination of invention: Interrupt processing method and device and interrupt controller Granted publication date: 20180828 License type: Common License Record date: 20190619 |