利用ARMv8中断分组路由机制保障二次开发实时性的方法技术

技术编号:30512092 阅读:28 留言:0更新日期:2021-10-27 22:53
本发明专利技术公开了利用ARMv8中断分组路由机制保障二次开发实时性的方法,包括如下步骤:步骤S1、启动外接设备,ARMv8的CPU初始化设置;步骤S2、待操作系统初始化完成后,实时程序启动,CPU通知EL3将双方未使用的中断号设置为Group 0,其对应的中断处理函数为报错提示非法使用或者是Ignore返回的一种;步骤S3、当安全处理程序有需要时,调用操作系统提供的接口,安装对应的中断函数;步骤S4、判定安全程序的运行状态;当安全程序正常运行时:对于预先设计好的中断,当中断来临时,会正常被操作系统捕获并处理;对于未预先设计好的中断,当中断来临时,会被EL3程序捕获,产生告警或忽略。该方案在不降低系统的性能,满足对方需求时,充分保障系统的实时性。障系统的实时性。

【技术实现步骤摘要】
利用ARMv8中断分组路由机制保障二次开发实时性的方法


[0001]本专利技术涉及计算机底层开发
,具体的,涉及利用ARMv8中断分组路由机制保障二次开发实时性的方法。

技术介绍

[0002]ARMv8本身支持EL0~EL3四种运行权限等级,其中数字越大,权限越高;高权限的EL等级可以修改、设置低等级的配置,但反过来低权限的EL等级不能修改、读取高等级的设置;ARMv8的CPU启动时,工作在EL3最高权限,后续根据需要,切换到低EL等级,Linux、VxWorks等操作系统均运行在EL1上。同时ARMv8将中断分为Group 0,Secure Group1,Non

secure Group1三种类型,其中Group 0中断固定在EL3中运行,Secure Group 1可以工作在Secure EL1或者Secure EL2,Non

secure Group 1工作在Non

secure EL1或者Non

secure EL2中。同时对于每种中断,可以配置其为Group 0,Secure Group 1,Non

secure Group1三种类型的任意一种。
[0003]ARM v8的工作模式如下:EL0(用户态),EL1(内核态),EL2(虚拟机/可选),EL3(监控态Monitor/可选);每一个工作状态,有不同的访问权限,CPU运行在ELx,中断类型有同步的和异步的,同步中段有1种,syn;异步中断有3种,irq、fiq、err.外部中断通过irq告知CPU。
[0004]对于需要(不同部门,不同厂家)进行二次联合开发的实时程序,由于不方便互相开放源码,通常是双方工作在相同的、高权限的CPU上下文环境,互相约定使用的资源;或者一方工作在受限的CPU上下文环境(类似于用户态),一方工作在高权限的CPU上下文环境(类似于内核态),受限方通过规定的接口进行接口调用;其弊端也显而易,对方前者,由于双方均工作在相同的CPU上下文环境,如果双方均可以使用特权指令,访问特权寄存器,存在一方不恰当使用中断的风险,影响实时性;对于后者,由于CPU上下文环境切换需要额外CPU开销,同样会影响程序的实时性。

技术实现思路

[0005]本专利技术的目的是解决系统二次联合开发过程中实时性较差的问题,提出了利用ARMv8中断分组路由机制保障二次开发实时性的方法;通过利用ARMv8中断分组路由的特性,对于需要二次开发或者接入其它厂家的程序,能够有效防止其随意滥用中断,在不降低系统的性能,满足对方需求时,充分保障系统的实时性。
[0006]为实现上述技术目的,本专利技术提供的一种技术方案是,利用ARMv8中断分组路由机制保障二次开发实时性的方法,包括如下步骤:步骤S1、启动外接设备,ARMv8的CPU初始化设置完成后切换到Non

Secure EL1引导操作系统;步骤S2、待操作系统初始化完成后,实时程序启动,CPU通知EL3将双方未使用的中断号通过GICD_IGROUPR及GICR_IGROUPR寄存器将其设置为Group 0,其对应的中断处理函
数为报错提示非法使用或者是Ignore返回的一种;步骤S3、当安全处理程序有需要时,调用操作系统提供的接口,安装对应的中断函数;步骤S4、判定安全程序的运行状态;当安全程序正常运行时:对于预先设计好的中断,当中断来临时,会正常被操作系统捕获并处理;对于未预先设计好的中断,当中断来临时,会被EL3程序捕获,产生告警或忽略。
[0007]作为优选,步骤S1中,ARMv8的CPU初始化设置包括GIC的配置,通过配置寄存器GICD_CTRL.DS将GIC配置为工作两种secure状态或者单一secure状态;当GICD_CTRL.DS的值为“0”时,支持secure和non secure两种状态;对应支持的group类型为:group0、secure group1、non secure group1;当GICD_CTRL.DS的值为“1”时,支持secure或non secure状态的一种;对应支持的group类型为:group0和group1。
[0008]作为优选,在GIC配置中包括对终端类型进行定义:定义四种中断类型,分别为:SGI、PPI、SPI和LPI;其中,SGI的中断号是0

15之间,用于core之间相互通信,由软件触发的中断;PPI的中断号在16

31之间,为每个core私有,只用于当前core处理一些业务时使用;SPI的中断号在32

1020之间,由外设触发的中断信号产线;LPI只基于消息类型的中断。
[0009]作为优选,ARMv8的CPU初始化设置还包括CPU的配置,通过SCR_EL3寄存器对security进行相关配置;包括有secure EL1中断、non secure EL1中断、EL3中断以及其对应的触发方式;其中,secure EL1中断:当前执行在secure EL1,则触发方式为irq;当前执行在non secure EL1,则触发方式为fiq;当前执行在EL3,则触发方式为fiq;non secure EL1中断:当前执行在secure EL1,则触发方式为fiq;当前执行在non secure EL1,则触发方式为irq;当前执行在EL3,则触发方式为fiq;EL3中断:当前执行在secure EL1,则触发方式为fiq;当前执行在non secure EL1,则触发方式为fiq;当前执行在EL3,则触发方式为fiq。
[0010]作为优选,CPU初始化设置还包括采用寄存器GICD_CTLR内的仲裁器对中断优先级进行排序,并且将SPI和PPI中断分发到仲裁器和CPU

Interface模块中。
[0011]作为优选,CPU

Interface模块用于判定中断状态是否解除以及路由到哪一个CPU。
[0012]本专利技术的有益效果:
1、安全性强:由于该机制是ARMv8架构提供,能够有效防止二次开发所接入的实时程序滥用中断;2、实时性强:由于二次开发所接入的实时程序,同样运行在Non

secure EL1,与操作系统同一EL等级,没有像诸如Linux内核态、用户态所带来调用操作系统接口,进程切换的开销;3、适用性强:由于各操作系统在初始化ARMv8 GIC中断控制器时,均在初期阶段将各中断置为自身运行的EL等级,后续不再修改;因此本方案待操作系统初始化后,再通过EL3程序将不允许使用中断号置为Group 0,可以适配各操作系统。
具体实施方式
[0013]为使本专利技术的目的、技术方案以及优点更加清楚明白,下面结合实施例对本专利技术作进一步详细说明,应当理解的是,此处所描述的具体实施方式仅是本专利技术的一种最佳实施例,仅用以解释本专利技术,并不限定本专利技术的保护范围,本领域普通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.利用ARMv8中断分组路由机制保障二次开发实时性的方法,其特征在于:包括如下步骤:步骤S1、启动外接设备,ARMv8的CPU初始化设置完成后切换到Non

Secure EL1引导操作系统;步骤S2、待操作系统初始化完成后,实时程序启动,CPU通知EL3将双方未使用的中断号通过GICD_IGROUPR及GICR_IGROUPR寄存器将其设置为Group 0,其对应的中断处理函数为报错提示非法使用或者是Ignore返回的一种;步骤S3、当安全处理程序有需要时,调用操作系统提供的接口,安装对应的中断函数;步骤S4、判定安全程序的运行状态;当安全程序正常运行时:对于预先设计好的中断,当中断来临时,会正常被操作系统捕获并处理;对于未预先设计好的中断,当中断来临时,会被EL3程序捕获,产生告警或忽略。2.根据权利要求1所述的利用ARMv8中断分组路由机制保障二次开发实时性的方法,其特征在于:步骤S1中,ARMv8的CPU初始化设置包括GIC的配置,通过配置寄存器GICD_CTRL.DS将GIC配置为工作两种secure状态或者单一secure状态;当GICD_CTRL.DS的值为“0”时,支持secure和non secure两种状态;对应支持的group类型为:group0、secure group1、non secure group1;当GICD_CTRL.DS的值为“1”时,支持secure或non secure状态的一种;对应支持的group类型为:group0和group1。3.根据权利要求2所述的利用ARMv8中断分组路由机制保障二次开发实时性的方法,其特征在于:在GIC配置中包括对终端类型进行定义:定义四种中断类型,分别为:SGI、PPI、SPI和LPI;其中,SGI的中断号是0

15之间,用于cor...

【专利技术属性】
技术研发人员:陈小杰张晓凤苏雪
申请(专利权)人:浙江众合科技股份有限公司
类型:发明
国别省市:

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

1