中断处理方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:35369779 阅读:21 留言:0更新日期:2022-10-29 18:11
本申请属于计算机应用程序的中断处理技术领域,涉及一种中断处理方法、装置、计算机设备及存储介质,方法包括接收第一中断请求,根据第一中断请求调用对应的第一中断服务程序;在执行完毕第一中断服务程序的第一子程序后,开启中断重入;开始执行第一中断服务程序的第二子程序;若接收到第二中断请求,则根据第二中断请求调用对应的第二中断服务程序;在执行完毕第二中断服务程序后,返回第二子程序;若第二子程序执行完毕,则关闭中断重入,执行中断返回;其中,第一中断请求和第二中断请求具有相同优先级。引入中断重入机制,优先响应实时要求高的事件,既能满足中断服务子程序的实时要求,也能响应CAN总线的高实时要求,从而让系统高效运行。系统高效运行。系统高效运行。

【技术实现步骤摘要】
中断处理方法、装置、计算机设备及存储介质


[0001]本申请涉及计算机应用
,尤其涉及中断处理方法、装置、计算机设备及存储介质。

技术介绍

[0002]在嵌入式系统中,经常需要处理一些实时性要求较高,并且兼具复杂度比较高的计算任务,这类计算任务通常在响应中断请求的中断服务程序中处理。在处理计算任务的同时,往往还需要执行多机交互的通信任务,对这一类外部特殊事件进行快速响应,是很有必要的。
[0003]现有技术中,一般采用两种方式来进行处理。第一种是:在中断里进行实时计算,外部特殊事件通过查询响应。此响应方式缺点在于仅在多机交互实时要求不高的情况下适用,对于需要快速反应的交互场合往往响应通信任务的实时性不够。第二种是:通过设置中断抢占优先级来对计算任务和通信任务进行不同级别的响应。此方式实现不够灵活,一旦设定后无法轻易调整,在某些特殊场合不便使用。

技术实现思路

[0004]本申请实施例的目的在于提出一种中断处理方法、装置、计算机设备及存储介质,以解决在中断服务程序进行计算任务时,如何提高响应外部特殊事件的实时性和灵活性的问题。为了解决上述技术问题,本申请提供一种中断处理方法,采用了如下所述的技术方案,包括下述步骤:
[0005]接收第一中断请求,根据所述第一中断请求调用对应的第一中断服务程序;
[0006]在执行完毕所述第一中断服务程序的第一子程序后,开启中断重入;
[0007]开始执行所述第一中断服务程序的第二子程序;
[0008]若接收到第二中断请求,则根据所述第二中断请求调用对应的第二中断服务程序;
[0009]在执行完毕所述第二中断服务程序后,返回所述第二子程序;
[0010]若所述第二子程序执行完毕,则关闭中断重入,执行中断返回;
[0011]其中,所述第一中断请求和所述第二中断请求具有相同优先级。
[0012]进一步的,所述开启中断重入的步骤包括:
[0013]保存可屏蔽中断返回指针寄存器IRP现场;
[0014]保存状态控制寄存器CSR现场;
[0015]保存寻址模式寄存器AMR现场;
[0016]使能全局中断。
[0017]进一步的,所述关闭中断重入的步骤包括:
[0018]关闭全局中断;
[0019]延时预设数量个时钟周期,等待中断关闭;
[0020]恢复寻址模式寄存器AMR现场;
[0021]恢复状态控制寄存器CSR现场;
[0022]恢复可屏蔽中断返回指针寄存器IRP现场。
[0023]进一步的,在所述接收第一中断请求的步骤之前还包括:
[0024]安装中断向量表,定义所述中断向量表中的中断向量的入口地址;
[0025]关闭所述全局中断开关,清除所有中断号的中断标志位;
[0026]映射所需要的中断,设置中断使能,打开全局中断;
[0027]设置中断服务子程序。
[0028]进一步的,所述根据所述第一中断请求调用对应的第一中断服务程序的步骤具体包括:
[0029]把CPU内部寄存器的值推入堆栈保存,把当前PC寄存器的值放入IRP寄存器中;
[0030]CPU读出中断向量表中所述第一中断请求对应的地址,按照中断向量表的跳转指令,跳转到所述第一中断服务程序中,执行所述第一中断服务程序。
[0031]进一步的,所述进行中断返回的步骤具体包括:
[0032]执行完所述第一中断服务程序、第二中断服务程序和第三中断服务器程序后,程序返回在堆栈中保存的值进行出栈。
[0033]为了解决上述技术问题,本申请还提供一种中断处理装置,采用了如下所述的技术方案,包括:
[0034]接收模块,用于接收第一中断请求,根据所述第一中断请求调用对应的第一中断服务程序;
[0035]开启中断重入模块,用于在执行完毕所述第一中断服务程序的第一子程序后,开启中断重入;
[0036]执行模块,用于开始执行所述第一中断服务程序的第二子程序;
[0037]调用模块,用于若接收到第二中断请求,则根据所述第二中断请求调用对应的第二中断服务程序;
[0038]返回模块,用于在执行完毕所述第二中断服务程序后,返回所述第二子程序;
[0039]关闭中断重入模块,用于若所述第二子程序执行完毕,则关闭中断重入,执行中断返回;
[0040]其中,所述第一中断请求和所述第二中断请求具有相同优先级。
[0041]进一步的,所述开启中断重入模块还包括:
[0042]IRP保存模块,用于保存可屏蔽中断返回指针寄存器IRP现场;
[0043]CSR包括模块,用于保存状态控制寄存器CSR现场;
[0044]AMR保存模块,用于保存寻址模式寄存器AMR现场;
[0045]全局中断使能模块,用于使能全局中断。
[0046]为了解决上述技术问题,本申请还提供一种计算机设备,采用了如下所述的技术方案,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述的中断处理方法的步骤。
[0047]为了解决上述技术问题,本申请还提供一种计算机可读存储介质,采用了如下所述的技术方案,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令
被处理器执行时实现上述的中断处理方法的步骤。
[0048]与现有技术相比,本申请主要有以下有益效果:通过将第一中断服务程序分为第一子程序和第二子程序,优先执行第一子程序。在执行第二子程序时允许中断重入,并在允许中断重入期间,能够及时响应第二中断请求。从而可以实现可以优先处理计算任务中实时性要求比较高的部分,例如惯阻驱动中断服务中的GPS同步子程序,并在执行实时性要求比较低的部分时能够及时的响应通信任务等外部特殊事件。例如在执行惯阻驱动中断服务中的导航计算子程序时,可以响应并处理关于控制器域网(Controller Area Network,CAN)总线消息的中断请求,比如CAN总线CAN消息接收中断请求、定时发送CAN总线CAN消息中断请求等。可见,本申请实施例既能满足计算任务的中断服务程序的实时要求,也能满足通信任务的高实时要求,从而让系统高效运行。而且由于允许中断重入是在中断服务程序中设置,这种设置也比较灵活。例如,可以根据需要,将不需要中断重入的全球定位系统(Global Positioning System,GPS)同步子程序可以放在前面优先执行,尤其适用于嵌入式软件,如飞控软件,执行制导、稳定、姿控等大量实时要求比较高并且兼具复杂度比较高的运算任务,同时需要兼顾通信等协作处理的场合。
附图说明
[0049]为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种中断处理方法,其特征在于,包括下述步骤:接收第一中断请求,根据所述第一中断请求调用对应的第一中断服务程序;在执行完毕所述第一中断服务程序的第一子程序后,开启中断重入;开始执行所述第一中断服务程序的第二子程序;若接收到第二中断请求,则根据所述第二中断请求调用对应的第二中断服务程序;在执行完毕所述第二中断服务程序后,返回所述第二子程序;若所述第二子程序执行完毕,则关闭中断重入,执行中断返回;其中,所述第一中断请求和所述第二中断请求具有相同优先级。2.根据权利要求1所述的中断处理方法,其特征在于,所述开启中断重入的步骤,包括:保存可屏蔽中断返回指针寄存器IRP现场;保存状态控制寄存器CSR现场;保存寻址模式寄存器AMR现场;使能全局中断。3.根据权利要求1所述的中断处理方法,其特征在于,所述关闭中断重入的步骤,包括:关闭全局中断;延时预设数量个时钟周期,等待中断关闭;恢复寻址模式寄存器AMR现场;恢复状态控制寄存器CSR现场;恢复可屏蔽中断返回指针寄存器IRP现场。4.根据权利要求1所述的中断处理方法,其特征在于,在所述接收第一中断请求的步骤之前还包括:安装中断向量表,定义所述中断向量表中的中断向量的入口地址;关闭全局中断,清除所有中断号的中断标志位;映射所需要的中断,设置中断使能,打开全局中断;设置中断服务子程序。5.根据权利要求1所述的中断处理方法,其特征在于,所述根据所述第一中断请求调用对应的第一中断服务程序的步骤,具体包括:把CPU内部寄存器的值推入堆栈保存,把当前PC寄存器的值放入IRP寄存器中;CPU读出中断向量表中所述第一中断请求对应的地址,按照中断向量表的跳转指令,跳转...

【专利技术属性】
技术研发人员:ꢀ七四专利代理机构
申请(专利权)人:宁波天擎航天科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1