一种中断处理方法及装置的制造方法

文档序号:9471240阅读:428来源:国知局
一种中断处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及电子技术领域,尤其涉及一种中断处理方法及装置。
【背景技术】
[0002]产品业务在进行驱动处理时,在临界区需要进行上锁的操作,此时需要将中断请求(interrupt request,IRQ)进行屏蔽,以防止业务中断对其操作的影响,但此时如果软件出现死锁的场景,那么CPU则无法进行任何操作,同时中断被屏蔽也无法进入任何中断处理。
[0003]针对上述场景需要提出相应的解决方法,在先进的RISC机器(Advanced(ReducedInstruct1n Set Computer, RISC)Machines,ARM) V8架构中,依靠TrustZone 技术将系统资源分别划分为安全世界和非安全世界,系统安全/非安全层级如图1所示,分为EL0/1/2/3共4个层级,其中EL3只有安全层级,EL2只有非安全层级,OS内核态运行在非安全的ELl下。
[0004]进一步依靠TrustZone技术可将对应中断的中断号配置为安全中断或非安全中断,即使在产品业务OS下对IRQ/快速中断请求(fast interrupt request, FIQ)中断进行屏蔽,安全中断也可以触发,即OS下无法屏蔽该安全中断的触发,例如将看门狗定时器中断配置为安全中断时,看门狗定时器中断无法被屏蔽。
[0005]在ARM V8架构中,定时产生安全中断进行监测,防止软件死锁的场景出现。当安全中断在安全世界触发后,则进入安全世界的异常向量入口,并在安全世界实现和执行与异常向量关联的中断处理函数;当安全中断在非安全世界触发后,也是进入到安全世界EL3的异常向量入口,并在安全世界的EL3层级实现和执行与异常向量关联的中断处理函数。
[0006]这种方式,中断处理函数的所有执行处于安全世界的EL3安全层级,而安全世界的EL3层级的无法实现OS下的调度和共享内存操作,并且安全世界和非安全世界使用不同的页表配置,无法满足非安全世界下OS的相关访问。

【发明内容】

[0007]本发明实施例提供一种中断处理方法及装置,可以将与安全世界的异常向量表关联的目标中断处理函数转由非安全世界执行,从而实现OS下的调度和共享内存操作,满足非安全世界下OS的相关访问。
[0008]本发明实施例第一方面提供了一种中断处理方法,可包括:
[0009]当系统代码在非安全世界运行至目标位置定时产生安全中断时,获取安全世界的异常向量表;
[0010]判断与所述异常向量表关联的目标中断处理函数是否由非安全世界执行;
[0011]若所述目标中断处理函数是由非安全世界执行,则控制所述安全世界将所述目标中断处理函数的地址传输至非安全世界;
[0012]控制所述非安全世界根据所述地址查找所述目标中断处理函数,并执行所述目标中断处理函数。
[0013]基于第一方面,在第一方面的第一种可行的实施方式中,所述目标中断处理函数的地址为系统通过高级配置与电源接口 ACPI或者同步异常指令传输至安全世界的地址。
[0014]基于第一方面,在第一方面的第二种可行的实施方式中,所述判断与所述异常向量表关联的目标中断处理函数是否由非安全世界执行之前,还包括:
[0015]获取与所述异常向量表关联的目标中断处理函数的目标中断号;
[0016]所述判断与所述异常向量表关联的目标中断处理函数是否由非安全世界执行,包括:
[0017]根据预先设置的各个中断号对应的中断处理函数执行世界类别,判断所述目标中断号对应的目标中断处理函数是否由非安全世界执行;所述执行世界类别包括安全世界执行或者非安全世界执行。
[0018]基于第一方面的第二种可行的实施方式,在第一方面的第三种可行的实施方式中,所述执行所述目标中断处理函数之后,还包括:
[0019]若检测到所述目标中断处理函数执行完成,控制所述非安全世界通过安全调用汇编指令向所述安全世界指示所述目标中断处理函数执行完毕;
[0020]控制所述安全世界根据预先备份的数据,恢复所述目标位置的上下文数据,并返回至所述非安全世界的所述目标位置继续执行系统代码。
[0021]基于第一方面的第二种可行的实施方式,在第一方面的第四种可行的实施方式中,所述方法还包括:
[0022]若所述目标中断号对应的目标中断处理函数由安全世界执行,则控制所述安全世界调用并执行所述目标中断处理函数。
[0023]本发明第二方面提供一种中断处理装置,包括:
[0024]第一获取模块,用于当系统代码在非安全世界运行至目标位置定时产生安全中断时,获取安全世界的异常向量表;
[0025]判断模块,用于判断与所述异常向量表关联的目标中断处理函数是否由非安全世界执行;
[0026]第一控制模块,用于若所述目标中断处理函数是由非安全世界执行,则控制所述安全世界将所述目标中断处理函数的地址传输至非安全世界;
[0027]第二控制模块,用于控制所述非安全世界根据所述地址查找所述目标中断处理函数,并执行所述目标中断处理函数。
[0028]基于第二方面,在第二方面的第一种可行的实施方式中,所述目标中断处理函数的地址为系统通过高级配置与电源接口 ACPI或者同步异常指令传输至安全世界的地址。
[0029]基于第二方面,在第二方面的第二种可行的实施方式中,所述装置还包括:
[0030]第二获取模块,用于获取与所述异常向量表关联的目标中断处理函数的目标中断号;
[0031]所述判断模块具体用于根据预先设置的各个中断号对应的中断处理函数执行世界类别,判断所述目标中断号对应的目标中断处理函数是否由非安全世界执行;所述执行世界类别包括安全世界执行或者非安全世界执行。
[0032]基于第二方面第二种可行的实施方式,在第二方面的第三种可行的实施方式中,所述装置还包括:
[0033]第三控制模块,用于若检测到所述目标中断处理函数执行完成,控制所述非安全世界通过安全调用汇编指令向所述安全世界指示所述目标中断处理函数执行完毕;
[0034]第四控制模块,用于控制所述安全世界根据预先备份的数据,恢复所述目标位置的上下文数据,并返回至所述非安全世界的所述目标位置继续执行系统代码。
[0035]基于第二方面第二种可行的实施方式,在第二方面的第四种可行的实施方式中,所述装置还包括:
[0036]第五控制模块,用于若所述目标中断号对应的目标中断处理函数由安全世界执行,则控制所述安全世界调用并执行所述目标中断处理函数。
[0037]本发明实施例中,当系统代码在非安全世界运行至目标位置定时产生安全中断时,获取安全世界的异常向量表,判断与该异常向量表关联的目标中断处理函数是否由非安全世界执行,若该目标中断处理函数由非安全世界执行,则控制安全世界将目标中断处理函数的地址传输至非安全世界,控制非安全世界根据该地址查找到目标中断处理函数,并执行该目标中断处理函数,这种方式可以将与安全世界的异常向量表关联的目标中断处理函数转由非安全世界执行,从而实现OS下的调度和共享内存操作,满足非安全世界下OS的相关访问。
【附图说明】
[0038]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1是本发明实施例提供的一种ARM V8架构示意图;
[0040]图2是本发明实施例提供的一种中断处理方法的流程示意图;
[0041]图3是本发明实施例提供的另一种中断处理方法的流程示意图;
[0042]图4是本发明实施例提供的一种结合具体软件的应用场景示意图;
[0043]图5是本发明实施例提供的一种中断处理装置的结构示意图;
[0044]图6是本发明实施例提供的一种硬件架构示意图。
【具体实施方式】
[0045]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]请参照图1,是本发明实施例提供的一种ARM V8架构示意图,如图所示,该系统架构包括非安全世界和安全世界,其中安全/非安全层级如下图所示,分为异常层级(Except1n Level,EL) 0/1/2/3共4个层级,其中EL3只有安全层级,EL2只有非安全层级,OS内核态运行在非安全世界的ELl下。依靠TrustZone技术可将对应中断号配置为安全中断或非安全中断,即使在产品业务OS下对IRQ/FIQ中断进行屏蔽,安全中断也可以触发,即OS下无法屏蔽该中断的触发,例如看门狗定时器。
[0047]安全中断触发后,该安全中断无法直接进入OS下配置的非安全世界ELl的异常向量入口处理,而是进入到安全世界EL3的异常向量入口,该异常向量由安全世界初始化,而EL3层级的安全世界无法实现OS下的调度和共享内存操作(只有非安全世界才可以实现OS下的调度和共享内存),并且安全世界和非安全世界使用不同的页表配置,无法满足非安全世界下OS的相关访问,如日志记录等操作。因此,本发明实施例针对这个问题提出一种中断处理方法,可以当与安全世界的异常向量关联的目标中断处理函数需要在非安全世界执行时,将该目标中断处理函数的地址由安全世界传输至非安全世界,并由非安全世界执行该目标中断处理函数,该目标中断处
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1