发明内容
本申请部分实施例的目的在于提供一种中断处理方法、主芯片、从芯片及多芯片系统,使从芯片的外设的中断处理流程与主芯片的外设的中断处理流程一致,方便用户使用;同时,简化从芯片上的外设的中断处理流程。
本申请实施例提供了一种中断处理方法,应用于主芯片,包括:在检测到从芯片通过中断线发送的搬运中断请求时,获取所述从芯片当前所有的中断请求,所述中断请求由所述从芯片的第一外设发出;获取每个所述中断请求对应的中断子程序,并通过所述中断子程序处理对应的所述中断请求。
本申请实施例还提供了一种中断处理方法,应用于从芯片,包括:在所述从芯片的第一外设产生中断请求时,输出搬运中断请求至所述从芯片与主芯片之间的中断线,并将所述从芯片当前所有的中断请求集中,以供所述主芯片同时获取所有的中断请求。
本申请实施例还提供了一种从芯片,包括中断引脚输出模块及至少一个用于产生中断请求的第一外设;所述第一外设连接所述中断引脚输出模块;所述第一外设用于在产生中断请求时,触发所述中断引脚输出模块输出搬运中断请求至所述从芯片与所述主芯片之间的中断线,且所述从芯片当前所有的中断请求集中,以供所述主芯片同时获取所有的中断请求。
本申请实施例还提供了一种主芯片,包括中断控制器、MCU及中断检测模块;所述中断控制器分别连接所述MCU及所述中断检测模块;所述中断检测模块用于在检测到中断线上存在从芯片发送的搬运中断请求时,将所述搬运中断请求发送给所述中断控制器;所述中断控制器用于在接收到所述搬运中断请求时,向所述MCU发送中断请求获取通知;所述MCU用于在接收到所述中断请求获取通知时,获取所述从芯片当前所有的中断请求,并获取每个所述中断请求对应的中断子程序,通过所述中断子程序处理对应的所述中断请求,所述中断请求由所述从芯片的第一外设产生。
本申请实施例还提供了一种多芯片系统,包括如上所述的主芯片及至少一个如上所述的从芯片;每个所述从芯片与所述主芯片之间连有一根中断线;且每个所述从芯片上设有一第一通信接口,所述主芯片上设有至少一个第二通信接口,每个所述第一通信接口对应连接一个所述第二通信接口。
本申请实施例相对于现有技术而言,主芯片在检测到从芯片上的中断请求时,通过访问从芯片直接获取从芯片上当前所有的中断请求,这相当于将从芯片上所有的中断请求都映射至主芯片上。而映射到主芯片上的每个中断请求,与主芯片本身的外设产生的中断请求一样,都会在主芯片上存在一个对应的中断子程序,主芯片即可通过该对应的中断子程序处理每个映射到主芯片上的中断请求。从系统和用户的角度,映射到主芯片后的中断请求,与主芯片本身的外设产生的中断请求没有任何差别,且两者的中断处理流程也一致,从而方便了用户的使用。同时,本申请实施例避免了在一个中断子程序上处理从芯片上所有外设产生的中断请求,也简化了从芯片上的外设的中断处理流程。
另外,所述获取所述从芯片当前所有的中断请求包括:读取所述从芯片第一中断寄存器当前的值,并写入所述主芯片的第二中断寄存器,以获取所述从芯片当前所有的中断请求;其中,所述第一中断寄器中存储有所述从芯片当前所有的中断请求。先把所有的中断请求集中到第一中断寄存器中,方便主芯片一次读取所有的中断请求。
另外,所述获取所述从芯片当前所有的中断请求包括:通过所述从芯片对应的搬运子程序,获取所述从芯片当前所有的中断请求。通过搬运子程序进行搬运,可以分担主程序的压力,且有利于及时响应中断请求。
另外,在所述通过所述中断子程序处理对应的所述中断请求后,或者在任意一个所述中断请求被处理完后,所述方法还包括:清除已处理的所述中断请求对应的第一外设的中断标志,所述第一中断寄存器的值随着所述第一外设的中断标志的清除同步调整。及时清除已处理完毕的中断请求对应的第一外设的中断标志,有利于避免重复处理。
另外,在所述清除已处理的所述中断请求对应的第一外设的中断标志后,所述方法还包括:将所述第二中断寄存器中对应所述中断标志的中断请求清除。有利于及时释放第二中断寄存器的存储空间。
另外,在清除所述从芯片当前所有的中断请求对应的第一外设的中断标志之后,所述方法还包括:消除所述搬运中断请求。及时消除对应的搬运中断请求,有利于避免重复工作。
另外,所述通过所述中断子程序处理对应的所述中断请求包括:对所述从芯片的所述中断请求、所述主芯片的第二外设产生的中断请求以及所述搬运中断请求进行优先级排序;按照所述优先级从高到低的顺序,通过对应的中断子程序处理所述从芯片的所述中断请求、所述主芯片的第二外设产生的中断请求以及所述搬运中断请求;其中,所述搬运中断请求的优先级低于所述从芯片的所述中断请求的优先级。搬运中断请求的优先级低于从芯片的中断请求的优先级,有利于保证从芯片的中断请求得到及时处理。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请部分实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请第一实施例涉及一种中断处理方法,应用于主芯片。该主芯片可以为多芯片系统的主芯片,该多芯片系统可包括一个主芯片及至少一个从芯片,且每个从芯片与主芯片之间连接一根中断线。本实施例的具体流程如图1所示。
步骤101:判断中断线上是否存在从芯片发送的搬运中断请求。若是,则进入步骤102;若否,则返回本步骤(即持续查询是否有从芯片发送的搬运中断请求)。
本实施例中,每个从芯片上可包括至少一个用于产生中断请求的第一外设,任意一个第一外设在产生中断请求时,即可触发从芯片上的中断引脚输出模块向该从芯片与主芯片之间的中断线输出搬运中断请求。值得一提的是,当从芯片上包括多个(如两个或两个以上)第一外设,且至少有两个第一外设同时产生中断请求时,中断引脚输出模块仅需向中断线输出一次搬运中断请求。另外,需要说明的是,在实际应用中,中断引脚输出模块可直接将第一外设产生的中断请求作为搬运中断请求输出至中断线,以提示主芯片当前从芯片上有中断请求产生。请注意,这里的第一外设是指从芯片上的各种可能的不同外设,并不代表是单一的某种外设。
步骤102:获取从芯片当前所有的中断请求。
在判定中断线上存在搬运中断请求时,主芯片即可获取该中断线对应的从芯片当前所有的中断请求。具体而言,在一个例子中,每个从芯片上可包括一个第一通信接口,主芯片上可包括多个第二通信接口(第二通信接口的数量可与从芯片的数量相同),且每个第二通信接口连接一个第一通信接口。本步骤中,主芯片上对应该从芯片的第二通信口,可通过访问该从芯片的第一通信接口,获取从芯片当前所有的中断请求。
步骤103:获取每个中断请求对应的中断子程序,并通过中断子程序处理对应的中断请求。
主芯片通过访问从芯片获取到从芯片上当前所有的中断请求,相当于将从芯片上当前所有的中断请求都映射至主芯片上。而映射到主芯片上的每个中断请求,与主芯片上每个第二外设(主芯片上可产生中断请求的外设)产生的中断请求一样,都会对应一个中断子程序。因此,本步骤中,主芯片即可获取从芯片上第一外设的每个中断请求对应的中断子程序,并通过该获取的每个中断子程序处理对应的中断请求。
本实施例相对于现有技术而言,主芯片在检测到从芯片上的中断请求时,通过访问从芯片直接获取从芯片上当前所有的中断请求,这相当于将从芯片上所有的中断请求都映射至主芯片上。而映射到主芯片上的每个中断请求,与主芯片本身的外设产生的中断请求一样,都会在主芯片上存在一个对应的中断子程序,主芯片即可通过该对应的中断子程序处理每个映射到主芯片上的中断请求。从系统和用户的角度,映射到主芯片后的中断请求,与主芯片本身的外设产生的中断请求没有任何差别,且两者的中断处理流程也一致,从而方便了用户的使用。同时,本申请实施例避免了在一个中断子程序上处理从芯片上所有外设产生的中断请求,也简化了从芯片上的外设的中断处理流程。
本申请第二实施例涉及一种中断处理方法,本实施例是在第一实施例的基础上的细化,主要细化之处在于:本实施例提供了一种能同时获取从芯片当前所有的中断请求的具体方法。本实施例的具体流程如图2所示。
步骤201:判断中断线上是否存在从芯片发送的搬运中断请求。若是,则进入步骤202;若否,则返回本步骤(即持续查询是否有从芯片发送的搬运中断请求)。
步骤202:读取从芯片第一中断寄存器当前的值,并写入主芯片的第二中断寄存器中,以获取从芯片当前所有的中断请求。
具体而言,本实施例中,从芯片上包括第一中断寄存器,从芯片上所有的第一外设均与第一中断寄存器连接。当从芯片上的第一外设在产生中断请求时,一方面会触发从芯片上的中断引脚输出模块输出搬运中断请求至中断线,另一方面会将产生的中断请求存入第一中断寄存器中。也就是说,第一中断寄存器中存储有从芯片当前所有的中断请求,第一中断寄存器的值即代表从芯片当前所有的中断请求。主芯片在检测到中断线上存在搬运中断请求,可先确定该中断线对应的从芯片。在实际应用中,可预先建立每个从芯片与其所连接的中断线之间的对应关系,再将该对应关系存储在主芯片中。主芯片在检测到某个中断线上存在搬运中断请求时,可先从预设的对应关系中查找该中断线对应的从芯片,并将查找到的从芯片作为该中断线对应的从芯片。之后,主芯片可通过相应的通信接口访问该从芯片,以读取从芯片中第一中断寄存器当前的值,并写入主芯片中的第二中断寄存器,从而实现将从芯片上当前所有的中断请求映射至主芯片上。在从芯片中设置第一中断寄存器,并将当前所有的中断请求集中到第一中断寄存器中,使得主芯片一次读取从芯片所连接第一外设的所有的中断请求。
优选地,本实施例中,主芯片可查找从芯片对应的搬运子程序(该搬运子程序为主芯片中的程序),并通过搬运子程序读取从芯片当前所有的中断请求,以获取从芯片当前所有的中断请求。利用搬运子程序获取从芯片的中断请求,可分担主程序的压力,且有利于快速响应从芯片的中断请求。
步骤203:获取每个中断请求对应的中断子程序,并通过中断子程序处理对应的中断请求。
在实际应用中,主芯片不仅需要处理从芯片的中断请求,主芯片上的第二外设也会产生中断请求,在一个例子中,主芯片可按照以下方式处理从芯片的中断请求及主芯片上的中断请求:先对从芯片上的中断请求、主芯片上的第二外设产生的中断请求以及之前检测到搬运中断请求进行优先级排序;再按照优先级从高到低的顺序,通过对应的中断子程序处理从芯片的中断请求、主芯片的第二外设产生的中断请求以及搬运中断请求。其中,主芯片的第二外设产生的中断请求的优先级可根据实际需要进行设置,本实施例对此不做限制。
需要说明的是,搬运中断请求的优先级应低于从芯片的中断请求的优先级。也就是说,需要处理完从芯片当前所有的中断请求之后,才去处理之前检测到的(即步骤201中检测到的)搬运中断请求。这是因为搬运中断请求通常为一电平信号(如高电平),如果先消除搬运中断请求,那么产生中断请求的第一外设还是会触发中断引脚输出模块发送搬运中断请求,这样主芯片就会一直不断地响应搬运中断请求,而映射到主芯片上的从芯片的中断请求就得不到处理。因此,在检测到搬运中断请求时,要先处理从芯片的中断请求,之后再处理(即消除)该搬运中断请求。
步骤204:清除已处理的中断请求对应的第一外设的中断标志。
中断标志为一电平信号,当中断请求为电平信号时,中断标志与中断请求为同一信号(如图3A),此时清除中断标志,中断请求也会被清除。特别地,当中断请求为脉冲信号(如图3B)时,由于中断请求只存在于脉冲信号的当前周期,因此只需清除中断标志。值得一提的是,图3A、3B仅是举例示意,中断请求与中断标志的具体信号形式并不以此为限。
在处理完映射到主芯片上的从芯片的中断请求后,主芯片即可再通过对应的通信接口访问从芯片,并清除已处理的中断请求对应的第一外设的中断标志。在清除已处理的中断请求对应的第一外设的中断标志时,可先获取该已处理的中断请求对应的第一外设所对应的清除子程序,并通过该清除子程序清除对应的第一外设的中断标志。
值得一提的是,本实施例是以处理完从芯片上当前所有的中断请求后,再清除已处理的中断请求对应的第一外设的中断标志为例进行说明的。然并不以此为限,在实际应用中,也可在从芯片的任意一个中断请求被处理完后,即清除该已处理的中断请求对应的第一外设的中断标志。
需要说明的是,本实施例优选从芯片中的第一中断寄存器为可读寄存器。该可读寄存器存储的信号与第一外设本身的中断标志为同一信号,当第一外设的中断标志被清除时,该可读寄存器中对应的信号会自动被清除,第一中断寄存器的值也会随之同步调整。
步骤205:将第二中断寄存器中对应该中断标志的中断请求清除。
主芯片在清除某个已处理的中断请求对应的第一外设的中断标志后,即可将该已处理的中断请求从第二中断寄存器中清除,以及时释放第二中断寄存器的空间,同时也避免出现重复处理的情况。
步骤206:消除搬运中断请求。
需要说明的是,本实施例中,是以先执行步骤205,再执行步骤206为例进行说明的,然并不以此为限,实际应用中,也可以在消除从芯片当前所有的中断请求对应的第一外设的中断标志之后,就执行本步骤。如上文所述,如果在处理中断请求之前消除搬运中断请求,而不先清除中断标志,那么对应的中断线上还是会持续存在搬运中断请求,主芯片就会一直响应该搬运中断请求,映射到主芯片的中断请求就不会得到处理,从芯片上对应的第一外设的中断标志也永远不会被消除,因此我们要先处理中断请求,然后消除中断标记,最后消除搬运中断请求。
实施例二提供了一种能同时获取从芯片当前所有的中断请求的具体方法,即将从芯片当前所有的中断请求集中到一可读寄存器(第一中断寄存器)中,主芯片可从该可读寄存器中同时读取从芯片当前所有的中断请求。
本申请第三实施例涉及一种中断处理方法,应用于从芯片。该从芯片可以为多芯片系统的从芯片,该多芯片系统可包括一个主芯片及至少一个从芯片,且主芯片与每个从芯片之间连接一根中断线。本实施例可与第一实施例配合实施(也就是说第一实施例为主芯片视角的流程,而本实施例三是从芯片视角的流程,两者配合完成整个中断处理程序),本实施方式的具体流程如图4所示。
步骤301:判断是否产生中断请求。若是,则进入步骤302;若否,则结束流程。
步骤302:输出搬运中断请求至从芯片与主芯片之间的中断线。
从芯片在第一外设在产生中断请求时,会输出中断请求至中断线,以提醒主芯片。同时,本实施例中,从芯片还会将当前所有的中断请求集中,以供主芯片同时获取所有的中断请求。
本实施例相对于现有技术而言,在检测到中断请求时,向从芯片与主芯片之间的中断线输出搬运中断请求,以提示主芯片将从芯片当前产生的中断请求映射至主芯片上。而映射到主芯片上的每个中断请求,与主芯片本身的外设产生的中断请求一样,都会在主芯片上存在一个对应的中断子程序,主芯片即可通过该对应的中断子程序处理每个映射到主芯片上的中断请求。从系统和用户的角度,映射到主芯片后的中断请求,与主芯片本身的外设产生的中断请求没有任何差别,且两者的中断处理流程也一致,从而方便了用户的使用。同时,本申请实施例避免了在一个中断子程序上处理从芯片上所有外设产生的中断请求,也简化了从芯片上的外设的中断处理流程。
第四实施例涉及一种中断处理方法。本实施例是在第三实施例的基础上的细化,主要细化之处在于:本实施例提供了一种能同时获取从芯片当前所有的中断请求的具体方法。本实施例可与第二实施例配合实施,本实施例的具体流程如图5所示。
步骤401:判断是否产生中断请求。若是,则进入步骤402;若否,则结束流程。
步骤402:输出搬运中断请求至从芯片与主芯片之间的中断线,并将中断请求存入从芯片的第一中断寄存器。
从芯片上所有的第一外设均与第一中断寄存器连接。当从芯片上第一外设在产生中断请求时,一方面会触发从芯片上的中断引脚输出模块输出搬运中断请求,另一方面会将产生的中断请求存入第一中断寄存器中。也就是说,第一中断寄存器中存储有从芯片当前所有的中断请求。这使得主芯片仅需读取第一中断寄存器当前的值,就可获取从芯片上当前所有的中断请求。
实施例四提供了一种能同时获取从芯片当前所有的中断请求的具体方法,即将从芯片当前所有的中断请求集中到一可读寄存器(第一中断寄存器)中,主芯片可从该可读寄存器中同时读取从芯片当前所有的中断请求。
本申请第五实施例涉及一种从芯片。如图6所示,该从芯片包括第一总线1、中断引脚输出模块2、第一通信接口3及至少一个可产生中断请求的第一外设4。第一总线1分别连接第一通信接口3及每个第一外设4。每个第一外设4还连接中断引脚输出模块2。
第一外设4用于在产生中断请求时,触发中断引脚输出模块2输出搬运中断请求至从芯片与主芯片之间的中断线,且从芯片当前所有的中断请求集中,以供主芯片能同时获取所有的中断请求。
在实际应用中,可直接将第一外设4产生的中断请求作为搬运中断请求输出至中断线。值得一提的是,当从芯片上包括两个或两个以上的第一外设4,且至少有两个第一外设4同时产生中断请求时,中断引脚输出模块2仅需向中断线输出一次搬运中断请求。
主芯片在检测到中断线上的搬运中断请求时,即可通过第一通信接口3访问从芯片,并经第一总线1获取从芯片当前所有的中断请求。
由于第三实施例与本实施例相互对应,因此本实施例可与第三实施例互相配合实施。第三实施例中提到的相关技术细节在本实施例中依然有效,在第三实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第三实施例中。
本实施例相对于现有技术而言,在检测到中断请求时,向从芯片与主芯片之间的中断线输出搬运中断请求,以提示主芯片将从芯片当前产生的中断请求映射至主芯片上。而映射到主芯片上的每个中断请求,与主芯片本身的外设产生的中断请求一样,都会在主芯片上存在一个对应的中断子程序,主芯片即可通过该对应的中断子程序处理每个映射到主芯片上的中断请求。从系统和用户的角度,映射到主芯片后的中断请求,与主芯片本身的外设产生的中断请求没有任何差别,且两者的中断处理流程也一致,从而方便了用户的使用。同时,本申请实施例避免了在一个中断子程序上处理从芯片上所有外设产生的中断请求,也简化了从芯片上的外设的中断处理流程。
本申请第六实施例涉及一种从芯片。本实施例是在第五实施例的基础上的细化,主要细化之处在于:本实施例提供了一种能同时获取从芯片当前所有的中断请求的具体方法。
如图7所示,该从芯片还包括第一中断寄存器5,第一外设4连接第一中断寄存器5。
本实施例中,第一外设4在产生中断请求时,会触发中断引脚输出模块2输出搬运中断请求至从芯片与主芯片之间的中断线,与此同时,第一外设4还会将中断请求存入第一中断寄存器5。这样,第一中断寄存器5中就会存储从芯片当前所有的中断请求。
主芯片在检测到中断线上的搬运中断请求时,即可通过第一通信接口3访问从芯片,并经第一总线1访问第一中断寄存器5。主芯片可通过读取第一中断寄存器5当前的值,获取从芯片当前所有的中断请求。优选地,主芯片可通过该从芯片对应的搬运子程序读取从芯片当前所有的中断请求,以获取从芯片当前所有的中断请求。利用搬运子程序获取从芯片的中断请求,可分担主程序的压力,且有利于快速响应从芯片的中断请求。
由于第四实施例与本实施例相互对应,因此本实施例可与第四实施例互相配合实施。第四实施例中提到的相关技术细节在本实施例中依然有效,在第四实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第四实施例中。
实施例六提供了一种能同时获取从芯片当前所有的中断请求的具体方法,即将从芯片当前所有的中断请求集中到一可读寄存器(第一中断寄存器)中,主芯片可从该可读寄存器中同时读取从芯片当前所有的中断请求。
本申请第七实施例涉及一种主芯片。如图8所示,该主芯片包括第二总线6、中断控制器7、MCU8、中断检测模块9及第二通信接口10;第二总线6分别连接MCU8及第二通信接口10;中断控制器7分别连接中断检测模块9及MCU8。其中,第二通信接口10的数量可与从芯片的数量相同,且每个第二通信接口可连接至一个从芯片。
中断检测模块9用于检测中断线上是否存在从芯片发送的搬运中断请求,并在检测到从芯片通过中断线发送的搬运中断请求时,将搬运中断请求发送给中断控制器7。中断控制器7用于在接收到搬运中断请求时,向MCU8发送中断请求获取通知。MCU8用于在接收到中断请求获取通知时,获取从芯片当前所有的中断请求。具体地,MCU可通过第二总线6、对应地第二通信接口10向从芯片的第一通信接口3发送访问请求,以通过第一通信接口3访问该从芯片,并经从芯片的第一通信接口3、第一总线1获取从芯片当前所有的中断请求。
MCU8在获取到从芯片当前所有的中断请求后,还会获取每个中断请求对应的中断子程序,并通过获取的中断子程序处理对应的中断请求。
由于第一实施例与本实施例相互对应,因此本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,在第一实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
本实施例相对于现有技术而言,主芯片在检测到从芯片上的中断请求时,通过访问从芯片直接获取从芯片上当前所有的中断请求,这相当于将从芯片上所有的中断请求都映射至主芯片上。而映射到主芯片上的每个中断请求,与主芯片本身的外设产生的中断请求一样,都会在主芯片上存在一个对应的中断子程序,主芯片即可通过该对应的中断子程序处理每个映射到主芯片上的中断请求。从系统和用户的角度,映射到主芯片后的中断请求,与主芯片本身的外设产生的中断请求没有任何差别,且两者的中断处理流程也一致,从而方便了用户的使用。同时,本申请实施例避免了在一个中断子程序上处理从芯片上所有外设产生的中断请求,也简化了从芯片上的外设的中断处理流程。
本申请第八实施例涉及一种主芯片。本实施例是在第七实施例的基础上的细化,主要细化之处在于:本实施例提供了一种获取从芯片当前所有的中断请求的具体方法。
如图9所示,主芯片还包括第二中断寄存器11、硬件清零模块12及至少一个可产生中断请求的第二外设13;第二中断寄存器11、硬件清零模块12及第二外设13均连接至第二总线6,且第二中断寄存器11还分别连接中断控制器7及硬件清零模块12,第二外设13连接至中断控制器7。
本实施例中,MCU8通过读取从芯片第一中断寄存器5当前的值,并写入主芯片的第二中断寄存器11,实现获取从芯片当前所有的中断请求。具体地,MCU8可经第二总线6、对应从芯片的第二通信接口10向从芯片的第一通信接口3发送访问请求,以通过该第一通信接口3访问从芯片,然后可经从芯片的第一通信接口3、第一总线1访问从芯片的第一中断寄存器5。MCU8可读取第一中断寄存器5当前的值,并将读取的值写入主芯片的第二中断寄存器11。值得一提的是,MCU8可通过该从芯片对应的搬运子程序读取从芯片当前所有的中断请求,以获取从芯片当前所有的中断请求。利用搬运子程序获取从芯片的中断请求,可分担主程序的压力,且有利于快速响应从芯片的中断请求。
MCU8将从芯片当前所有的中断请求存储到第二中断寄存器11中后,中断控制器7可从该第二中断寄存器11获取从芯片当前所有的中断请求,并对从芯片上的中断请求、主芯片上第二外设13产生的中断请求以及之前检测到搬运中断请求进行优先级排序,并在排序完成后将排序结果通知MCU8。
MCU8可按照优先级从高到低的顺序,通过对应的中断子程序处理从芯片的中断请求、主芯片的第二外设产生的中断请求以及搬运中断请求。值得一提的是,本实施例中搬运中断请求的优先级应低于从芯片的中断请求的优先级。
MCU8在处理完从芯片当前所有的中断请求后,即可再次访问从芯片,并清除已处理完毕的中断请求对应的第一外设的中断标志。然不以此为限,MCU8也可在从芯片的任意一个中断请求被处理后,即清除该已处理的中断请求对应的第一外设的中断标志。
另外,需要说明的是,本实施例中优选从芯片中的第一中断寄存器为可读寄存器,当第一外设的中断标志被清除时,该可读寄存器中存储的对应的中断请求会自动被清除,第一中断寄存器的值也会随之同步调整。
硬件清零模块12用于在检测到MCU清除第一外设的中断标志的动作时,将第二中断寄存器11中对应该中断标志的中断请求清除。
另外,MCU8还用于在清除从芯片当前所有的中断请求对应的第一外设的中断标志之后,消除搬运中断请求。在实际应用中,MCU8也可在硬件清零模块12将第二中断寄存器11中对应中断标志的中断请求清除后,消除搬运中断请求。
由于第二实施例与本实施例相互对应,因此本实施例可与第二实施例互相配合实施。第二实施例中提到的相关技术细节在本实施例中依然有效,在第二实施例中所能达到的技术效果在本实施例中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第二实施例中。
实施例八提供了一种能同时获取从芯片当前所有的中断请求的具体方法,即将从芯片当前所有的中断请求集中到一可读寄存器(第一中断寄存器)中,主芯片可从该可读寄存器中同时读取从芯片当前所有的中断请求
本申请第九实施例涉及一种多芯片系统。如图10所示,该系统包括如第七或第八实施例所述的主芯片及至少一个如第五或第六实施例所述的从芯片,其中,图10是以第八实施例中的主芯片及第六实施例中的从芯片为例进行示意的。每个从芯片与主芯片之间连有一根中断线14;且从芯片中的第一通信接口3连接主芯片上的第二通信接口10。值得一提的是,主芯片上的第二通信接口10的数量可与从芯片的数量相同,这样,每个第二通信接口可对应连接一个第一通信接口3。然并不以此为限,主芯片上也可仅包括一个第二通信接口10,此时可设置该第二通信接口10在同一时刻可与一个第一通信接口10通信交互。
本实施例相对于现有技术而言,主芯片在检测到从芯片上的中断请求时,通过访问从芯片直接获取从芯片上当前所有的中断请求,这相当于将从芯片上所有的中断请求都映射至主芯片上。而映射到主芯片上的每个中断请求,与主芯片本身的外设产生的中断请求一样,都会在主芯片上存在一个对应的中断子程序,主芯片即可通过该对应的中断子程序处理每个映射到主芯片上的中断请求。从系统和用户的角度,映射到主芯片后的中断请求,与主芯片本身的外设产生的中断请求没有任何差别,且两者的中断处理流程也一致,从而方便了用户的使用。同时,本申请实施例避免了在一个中断子程序上处理从芯片上所有外设产生的中断请求,也简化了从芯片上的外设的中断处理流程。
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。