当前位置: 首页 > 专利查询>浙江大学专利>正文

基于PowerPC体系结构的嵌入式操作系统的中断管理方法技术方案

技术编号:2852658 阅读:405 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于PowerPC体系结构的嵌入式操作系统的中断管理方法,步骤如下:将中断分为系统中断和用户中断两类,将用户中断服务程序分为一类中断服务程序和二类中断服务程序;用户中断发生时,首先由硬件响应中断;然后保存上下文、堆栈切换、维护中断嵌套,以保证在中断处理完成后被中断的任务能继续运行;中断发生后通过中断源在用户中断向量表中找到并调用相应的中断服务程序,接着再次维护中断嵌套、堆栈切换,最后恢复上下文,处理器继续运行原先被中断的任务。本发明专利技术具有如下优点:提高了中断的执行效率和中断的利用效率,方便了中断的控制和使用。防止了由于嵌套中断而引起的堆栈溢出异常,提高了用户堆栈大小的可控性和可预知性。

【技术实现步骤摘要】

本专利技术涉及嵌入式实时操作系统技术,主要是实现一种。
技术介绍
中断是操作系统必不可少的一种机制,中断用于通知处理器有某个事件的发生。中断一旦被识别,处理器将保存反映当前任务状态的数据(比如寄存器中数值),这些数据被称为“上下文”;保存上下文之后处理器将执行专门的中断服务程序来响应引发中断的事件;最后恢复上下文,继续执行被中断的任务。中断机制被用于处理内部和外部一些不可预期的突发事件。由于其不可预期的特点,那么中断机制的健壮性对于一个操作系统尤其是实时的嵌入式操作系统来说就显得尤为重要。它直接关系到操作系统的稳定性和运行的效率。由于中断机制和操作系统相结合,那么中断机制必然要保证任务的正常运行,这就需要在中断发生和中断退出时做好初始和善后的工作。目前较流行的微内核嵌入式操作系统,比如uC/OS等,不提供中断的封装和管理,用户需要自己定义中断服务程序的接口、现场保护、现场恢复以及与中断源绑定等,这给用户编写中断服务程序带来极大不便,必然增加了用户开发的难度,延长开发周期、降低了系统的稳定性。中断管理不同于操作系统的任务管理等其他机制,它与硬件体系结构相关性大。因此从稳定性、执行效率和系统开销这三大嵌入式系统的指标考虑,针对不同的体系结构,不同的处理器系列,需要实现特定的中断管理方法。
技术实现思路
本专利技术解决了一般中断管理存在的缺陷,而提供一种。这种,实现步骤如下1)、将中断分为系统中断和用户中断两类,系统中断由系统集中管理,处理由系统引发的中断,比如由于非正常操作引起的异常、重启(Reset)中断;用户中断处理用户可用的外部中断,比如串口中断、模数转换中断等。系统中断是指除了外部中断和可屏蔽外部断点外的所有中断。系统中断发生时将进入统一的系统中断服务程序入口,在执行中断服务程序之前只保存少量必要的寄存器数据。用户中断是指外部中断和可屏蔽外部断点,外部中断由外部引脚触发,可屏蔽外部断点中断由片内其他模块产生,硬件系统不区分具体的用户中断,而使用统一的用户中断服务程序入口,通过维护一张用户中断向量表来调度用户中断。本专利技术分别为系统中断和用户中断提供入口封装,所有系统中断统一采用一个系统中断入口,所有用户中断统一采用一个用户中断为入口,在这两个入口内分别对中断进行操作。2)、将用户中断服务程序分为一类中断服务程序和二类中断服务程序,一类中断服务程序中不允许用户调用系统服务,这类中断服务程序中没有影响任务调度的操作,中断服务程序结束后系统将回到中断发生的地方继续运行;二类中断服务程序中允许调用系统服务,当中断服务程序结束时会引发任务调度以保证优先级最高的任务被执行;3)、用户中断发生时,首先由硬件响应中断;然后保存上下文、堆栈切换、维护中断嵌套,以保证在中断处理完成后被中断的任务能继续运行;中断发生后通过中断源在用户中断向量表中找到并调用相应的中断服务程序,接着再次维护中断嵌套、堆栈切换,最后恢复上下文,处理器继续运行原先被中断的任务;维护中断嵌套是指在处理中断的过程中,屏蔽低优先级的中断,防止低优先级的中断干扰高优先级的中断服务程序的执行;在用户中断程序返回以后,再恢复被屏蔽中断。在软件层上管理中断嵌套,多级的中断嵌套使用系统的堆栈空间保存上下文,而任务的上下文将被保存在任务的堆栈空间,当处理器在嵌套中断和用户任务间切换时需要进行系统堆栈和任务堆栈的切换。4)、对于二类中断服务程序,当从中断返回任务层时需要进行任务调度以保证高优先级的任务能即使运行;保存和恢复上下文时,对于一类中断只保存和恢复易失性寄存器的值,而对于二类中断还需要保存和恢复非易失性寄存器的值。本专利技术具有如下优点1.本专利技术将中断和中断服务程序进行分类。中断分为系统中断和用户中断,对不同类型的中断服务程序使用不同的处理机制,从而提高了中断的执行效率。2.在本专利技术中,支持基于PowerPC体系的中断嵌套,最大可以支持16层的嵌套,提高了中断的利用效率,方便了中断的控制和使用。3.本专利技术提供统一的中断管理接口,用户可以通过调用这些接口来配置中断服务程序的属性。本专利技术隐藏了复杂的中断处理细节,提高了用户在PowerPC体系结构中开发中断服务程序的效率和方便性。4.本专利技术引入系统堆栈来处理嵌套中断,有效防止了由于嵌套中断而引起的堆栈溢出异常,提高了用户堆栈大小的可控性和可预知性,节省了内存的开销。此中断机制在PowerPC体系结构的MPC555硬件平台上经过严格测试,证明该机制具有良好的性能和稳定性。附图说明图1本专利技术中系统中断处理流程图;图2本专利技术中一类用户中断处理流程图;图3本专利技术中二类用户中断处理流程图。具体实施例方式下面结合PowerPC体系结构的MPC555平台对本专利技术作进一步介绍本专利技术将整个中断系统分为两类,一类是系统中断,一类是用户中断,这两类中断共同组成了PowerPC体系结构的中断体系。●系统中断在PowerPC体系结构中,系统中断是指除了外部中断和可屏蔽外部断点外的所有中断。系统中断发生时将进入统一的系统中断服务程序入口,在执行中断服务程序之前只保存少量必要的寄存器数据。例如在MPC555硬件平台上浮点数异常中断就属于系统中断,如图1所示,该中断发生时的处理过程如下1.中断发生,硬件从中断向量表中找到统一的系统中断入口,从该入口开始执行以下步骤。2.保存相应的寄存器数据,在MPC555硬件平台上这些寄存器包括通用整型寄存器GPR0-GPR13,LR,CR,MSR,SRR0,SRR1,XER,CTR。3.从特定寄存器获取中断源,根据中断源调用系统中断服务程序,在本例中调用的是浮点数异常系统中断服务程序。4.恢复在步骤2中保存的寄存器数据。5.中断返回,从中断发生的地方继续运行程序。●用户中断PowerPC体系结构中,用户中断是指外部中断和可屏蔽外部断点。外部中断由外部引脚触发,可屏蔽外部断点中断由片内其他模块产生。在本专利技术中,硬件系统不区分具体的用户中断,而使用统一的用户中断服务程序入口,本专利技术通过维护一张用户中断向量表来调度用户中断。用户中断服务程序被分为一类用户中断服务程序和二类中断服务程序。例如在PowerPC体系结构的MPC555平台上的一个实例中,用户为一个串口中断配置了一段一类中断服务程序,当该串口中断发生时,中断服务程序负责进行一些简单的数据处理,如图2所示,该中断处理过程如下6.中断发生,硬件从中断向量表中找到统一的用户中断入口,从该入口开始执行以下步骤。7.保存返回地址以及少量的要在以下步骤中使用的寄存器,比如通用寄存器GPR2~GPR3。8.如果是从任务进入中断需要从任务堆栈切换到系统堆栈,如果是嵌套中断则不需要进行堆栈切换。9.屏蔽比该中断优先级低的中断。10.获得中断源,然后根据该值从用户中断向量表找到该串口中断的用户中断服务程序并执行。11.如果是从中断中退回任务需要从系统堆栈切换回任务堆栈,如果从嵌套中断退出则不需要进行堆栈切换。12.恢复在步骤2中保存的寄存器。13.从该中断中退出,继续执行被中断的程序。在同一个实例中,用户为一个模数转换中断配置了一个二类中断服务程序,当该中断发生时,中断服务程序会激活一个具有较高优先级的处理模数转换的任务,以保证在中断退出后,该任务能即使被运行,该中断处理过本文档来自技高网...

【技术保护点】
一种基于PowerPC体系结构的嵌入式操作系统的中断管理方法,其特征在于:实现步骤如下:1)、将中断分为系统中断和用户中断两类,系统中断由系统集中管理,处理由系统引发的中断;用户中断处理用户可用的外部中断;2)、将用户中断服 务程序分为一类中断服务程序和二类中断服务程序,一类中断服务程序中不允许用户调用系统服务,这类中断服务程序中没有影响任务调度的操作,中断服务程序结束后系统将回到中断发生的地方继续运行;二类中断服务程序中允许调用系统服务,当中断服务程序结束时会引发任务调度以保证优先级最高的任务被执行;3)、用户中断发生时,首先由硬件响应中断;然后保存上下文、堆栈切换、维护中断嵌套,以保证在中断处理完成后被中断的任务能继续运行;中断发生后通过中断源在用户中断向量表中找到并调用相应的中断服务 程序,接着再次维护中断嵌套、堆栈切换,最后恢复上下文,处理器继续运行原先被中断的任务;4)、对于二类中断服务程序,当从中断返回任务层时需要进行任务调度以保证高优先级的任务能即使运行;保存和恢复上下文时,对于一类中断只保存和恢复在该工 程中使用的易失性寄存器的值,而对于二类中断还需要保存和恢复非易失性寄存器的值。...

【技术特征摘要】

【专利技术属性】
技术研发人员:赵民德姜旭锋厉蒋李红郑能干吴朝晖
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

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

1