CN116010127B - 消息处理方法、设备及存储介质 - Google Patents
消息处理方法、设备及存储介质 Download PDFInfo
- Publication number
- CN116010127B CN116010127B CN202310158762.3A CN202310158762A CN116010127B CN 116010127 B CN116010127 B CN 116010127B CN 202310158762 A CN202310158762 A CN 202310158762A CN 116010127 B CN116010127 B CN 116010127B
- Authority
- CN
- China
- Prior art keywords
- message
- component
- electronic device
- register
- smc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000013507 mapping Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 abstract description 25
- 230000003993 interaction Effects 0.000 abstract description 19
- 239000000306 component Substances 0.000 description 171
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 13
- 238000005192 partition Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000008358 core component Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 210000000329 smooth muscle myocyte Anatomy 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例提供一种消息处理方法、设备及存储介质,该方法应用于电子设备,电子设备包括第一组件和第二组件,该方法包括:第一组件在向第二组件发送第一消息时,通过获取与第一消息对应的第二消息,向第二组件发送该第二消息,第二消息用于指示第一消息。其中第一消息为设备内组件间交互的一种自定义消息,第二消息为目标协议定义的一种预设消息。上述方案实现设备内跨组件交互消息的通用性要求,在不影响设备原有软件框架下,保持消息传输的效率。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种消息处理方法、设备及存储介质。
背景技术
目前,不同终端设备制造商对于设备内部各组件间的信息交互,如从设备较低异常级别(EL,exception level)的组件向较高异常级别的组件传输数据,通常采用自定义的安全监视器调用(SMC)实现数据传输。
然而,随着通用芯片的普及,需要标准化SMC调用,如何在不影响设备商原有软件框架的前提下,调整设备内组件间的执行逻辑是目前亟待解决的一个问题。
发明内容
本申请实施例提供一种消息处理方法、设备及存储介质,应用于终端技术领域,实现设备内跨组件交互消息的通用性要求,在不影响设备原有软件框架下,保持消息传输的效率。
第一方面,本申请实施例提出一种消息处理方法,应用于电子设备,电子设备包括第一组件和第二组件,第一组件的权限级别小于第二组件的权限级别;该消息处理方法包括:第一组件获取第一消息,第一消息为第一组件向第二组件发送的消息;第一组件确定第一消息对应的第二消息,第二消息为目标协议定义的一种预设消息,第二消息用于指示第一消息;第一组件向第二组件发送第二消息。
示例性的,第一组件可以是安卓内核的组件,第二组件可以是虚拟机监视器,虚拟机监视器的权限级别大于安卓内核的组件。第一消息为设备自定义消息,第二消息可以是FF-A协议规定的一种消息。
上述方案中,第一组件在需要向第二组件发送第一消息时,并非直接发送该第一消息,通过确定与第一消息对应的目标协议消息类型,如第二消息,发送第二消息以指示该第一消息,从而实现设备内跨组件交互消息的通用性,在不影响设备软件框架的情况下,保持消息传输的效率。
第一方面的一个可选实施例中,第一组件确定第一消息对应的第二消息,包括:第一组件通过查询预设的消息映射关系,确定第一消息对应的第二消息;其中,消息映射关系包括第一组件向第二组件发送的多种消息,以及每种消息与目标协议定义的消息的映射关系。
其中,消息映射关系中的第二消息可以对应一种或多种设备的自定义消息。
上述方案中,通过在代码层面配置消息映射关系,使得设备在执行消息调用时,通过查询该消息映射关系,传输符合目标协议规定的消息类型,保持消息传输的效率。
第一方面的一个可选实施例中,电子设备还包括第三组件,第三组件的权限级别大于第二组件的权限级别;该方法还包括:第二组件向第三组件转发第二消息。
示例性的,第二组件可以是虚拟机监视器,第三组件可以是安全分区管理(SPM)组件,安全分区管理组件的权限级别大于虚拟机监视器。安全分区管理组件用于处理和转发不同安全分区间的消息以及不同运行环境间的消息,如第二消息。
上述方案中,从较低权限级别组件流向较高权限级别组件的消息,采用目标协议规定的消息类型,实现消息传输的标准化。
第一方面的一个可选实施例中,电子设备还包括第四组件,第四组件位于电子设备的第一运行环境,第一组件位于电子设备的第二运行环境;该方法还包括:第三组件向第四组件转发第二消息;第四组件获取第二消息对应的第一消息。
示例性的,第一运行环境为安全运行环境,第二运行环境为非安全运行环境。第三组件可以是上述安全分区管理组件,第四组件可以是可信执行环境操作系统的组件,该示例中,安全分区管理组件的权限级别大于可信执行环境操作系统的组件的权限级别。
第一方面的一个可选实施例中,第四组件获取第二消息对应的第一消息,包括:第四组件通过查询电子设备的寄存器,获取第二消息对应的第一消息;寄存器中存储有第一消息和第二消息。
上述方案中,较低权限级别组件接收来自较高权限级别组件转发的消息后,可从寄存器读取到该消息指示的具体内容,寄存器存储了自定义消息和目标协议规定的消息之间的对应关系,以及自定义消息的消息内容,该实现对设备原有的软件框架的影响较小,保持消息传输的效率。
第一方面的一个可选实施例中,该方法还包括:第一组件将第一消息写入电子设备的第一寄存器,以及第一组件将第二消息写入电子设备的第二寄存器。
上述方案中,将第一消息和第二消息分别写入不同的寄存器,以便数据流传输过程中的组件能够从寄存器读取传输消息的具体内容。这里的数据流传输过程中的组件包括转发第二消息的组件(如上述第三组件),以及最终接收第二消息的组件(如上述第四组件)。
第一方面的一个可选实施例中,该方法还包括:第四组件响应于第一消息,生成第三消息;第四组件确定第三消息对应的第四消息,第四消息为目标协议定义的一种消息,第四消息用于指示第三消息;第四组件通过第三组件和第二组件,向第一组件发送第四消息。
其中,第三消息为第一消息的响应消息,第三消息为设备自定义消息。消息映射关系包括第三消息与第四消息的对应关系。与第二消息类似,第四消息可以对应一种或多种设备的自定义消息。
上述方案中,第四组件在返回第一消息的响应消息时,同样需要基于消息映射关系,将响应消息映射到目标协议规定的消息,通过多组件转发,以便第一组件接收到该目标协议规定的消息,进而读取到响应消息的内容。消息传输满足通用化要求。
第一方面的一个可选实施例中,该方法还包括:第四组件将第三消息写入电子设备的第三寄存器,以及第四组件将第四消息写入电子设备的第四寄存器。
上述方案中,将第三消息和第四消息分别写入不同的寄存器,以便数据流传输过程中的组件能够从寄存器读取传输消息的具体内容。
第二方面,本申请实施例提供一种电子设备,包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得电子设备执行如第一方面任一项的方法。
电子设备也可以称为终端(terminal)、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。电子设备可以是手机(mobilephone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如第一方面的方法。
第四方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行如第一方面的方法。
第五方面,本申请实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如第一方面所述的方法。
应当理解的是,本申请的第二方面至第五方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的一种设备软件框架的示意图;
图2为本申请实施例提供的设备未适配FF-A的软件架构示意图;
图3为本申请实施例提供的设备适配FF-A的软件架构示意图;
图4为本申请实施例提供的一种消息处理方法的流程示意图;
图5为本申请实施例提供的一种消息映射关系的示意图;
图6为本申请实施例提供的一种消息映射关系的示意图;
图7为本申请实施例提供的两种SMC调用的消息数据存储的示意图;
图8为本申请实施例提供的电子设备内部组件的交互示意图;
图9为本申请实施例提供的电子设备的结构示意图;
图10为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,本申请实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一消息、第二消息、第三消息和第四消息仅仅是为了区分设备内发送的不同消息,并不对其先后顺序进行限定。又例如,第一寄存器和第二寄存器仅仅是为了区分不同的寄存器。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示a,b,c,a-b,a-c,b-c或a-b-c,其中a,b,c可以是单个,也可以是多个。
本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
下面首先对本申请实施例涉及的专业术语进行简要介绍。
EL:异常级别,exception level,主要是指在安卓系统上执行程序的权限级别。通常情况下,权限级别从高到低设置为EL0,EL1,EL2和EL3,即EL0的权限级别最低,EL3的权限级别最高。
Firmware:固件,设备内部保存的设备驱动程序,通过固件操作系统才能够按照标准的设备驱动实现特定机器的运行动作。
FF-A:Firmware Framework for Arm®A-Profile processors,设备内跨组件交互时可使用的一种规范协议,可用于在ARM® Cortex-A芯片上实现各个软件镜像之间的交互通用化。
ATF:Arm® trusted firmware,ARM®芯片上的可信固件,可以看作固化在ARM®上的程序代码。
SMC:secure monitor call,安全监视器调用,是ARM®的汇编指令,实现从低EL到高EL级别的请求消息交互。SMC指令可用于传递请求消息的参数,如将参数写入设备寄存器。
示例性的,图1为本申请实施例提供的一种设备软件框架的示意图。
图1中左侧的普通世界(normal world)为非安全运行环境,非安全运行环境包括一个或多个虚拟机(visual machine,VM)以及虚拟机监视器(hypervisor),客机操作系统(Guest OS)是运行在虚拟机之上的系统软件,是虚拟机的重要组成部分,例如Guest OS为安卓操作系统。此外,各类应用程序也运行在虚拟机上。虚拟机监视器负责管理虚拟机,同时处理和转发虚拟机之间的消息以及不同运行环境间的消息。图1中应用层的各类应用程序位于异常级别的EL0层,安卓操作系统位于EL1层,虚拟机监视器位于EL2层,虚拟机监视器的权限级别大于安卓操作系统的权限级别,安卓操作系统的权限级别大于应用程序的权限级别。
图1中右侧的安全世界(secure world)为安全运行环境,安全运行环境可以包括一个或多个安全分区(secure partition,SP),例如图1中的SP0和SP1。以SP0为例,SP0可以包括一个或多个应用程序,以及TEE(Trusted Execution Environment,可信执行环境)操作系统(OS)。安全分区管理(secure partition manager,SPM)可用于处理和转发不同安全分区间的消息以及不同运行环境间的消息,例如SPM用于转发SP0和SP1的组件之间的消息,SPM用于转发普通世界与安全世界的组件之间的消息等。SPM包括SPMC(secure partitionmanager core)和SPMD(secure partition manager dispatch)。
基于图1所示的软件架构,现有的设备商在其设备的安卓OS内核(kernel)、TEE OS内核以及安全分区管理SPM都使用自定义的SMC指令进行交互,即不同设备商使用各自的SMC指令。
示例性的,图2为本申请实施例提供的设备未适配FF-A的软件架构示意图。如图2所示,EL1层的安卓OS内核和TEE OS,以及EL3层的SPD(secure payload dispatch)均使用设备商自定义的SMC调用来传递请求消息的参数,即使用私有SMC调用实现跨组件消息交互。例如,安卓OS内核中的某段业务代码中包括私有SMC指令,又例如,TEE OS中的某段业务代码中包括私有SMC指令,再例如,SPM代码中包括私有SMC指令。
基于图2所示的软件架构,普通世界与安全世界之间的数据流如下:安卓OS内核通过私有SMC调用,实现向虚拟机监视器发送请求消息,将请求消息的参数写入寄存器;虚拟监视器转发该请求消息至SPD,SPD可从寄存器中读取请求消息的参数;SPD可转发该数据请求至TEE OS,TEE OS可从寄存器中读取请求消息的参数,最终实现请求消息从普通世界转发至安全世界。TEE OS接收请求消息后,可依次通过SPD、虚拟监视器向安卓OS内核返回请求消息对应的响应消息。
现阶段,针对不同设备商各自定义的SMC调用的情况,需要对SMC调用进行标准化(通用化)处理,以适配FF-A协议框架。然而,适配FF-A协议可能对设备软件框架本身带来比较大的影响,例如:私有SMC调用的调用链比较长,触发调用的点比较多,导致代码层面需要修改的范围比较大等。
对此,本申请实施例示出一种消息处理方法,通过对设备EL1层的安卓OS内核和TEE OS,以及EL3层的SPM进行适配FF-A规范的相关配置,以实现标准SMC调用。该方法的主要思路如下:对照FF-A规范的定义,通过建立私有消息(自定义消息)与标准FF-A消息的映射关系,将私有消息的标识、消息参数,以及标准FF-A消息的标识记录在设备寄存器的相应位置,实现设备内部消息参数的传递,带来如下效果:整体软件框架不受影响,代码上层业务不受影响;缩小了代码修改范围,避免大面积修改代码导致遗漏修改等问题;充分利用协议字段,避免数据拆分,保持消息传递效率。
下面结合附图对本申请实施例提供的消息处理方法进行详细介绍。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请实施例提供的设备适配FF-A的软件架构示意图。与图2相比,图3示出的软件架构主要对安卓OS内核、TEE OS以及ATF中的SPM的代码层进行FF-A规范的适配调整。通过在安卓OS内核、TEE OS以及SPM的代码中配置消息映射关系,以及消息与参数的寄存位置,以实现适配标准FF-A的SMC调用,实现设备内部消息参数传递。
基于图3所示的软件架构,本申请实施例提供一种消息处理方法。下面结合附图4对本申请提供的方案进行详细说明。
图4为本申请实施例提供的一种消息处理方法的流程示意图。本实施例的消息处理方法应用于电子设备,电子设备包括第一组件和第二组件,第一组件的权限级别小于第二组件的权限级别。如图4所示,该消息处理方法包括以下步骤:
S401.第一组件获取第一消息。
第一消息为第一组件向第二组件发送的消息,第一消息为设备商自定义的消息。第一组件可通过私有SMC调用以传输该第一消息。然而,为了能够适配目标协议(如FF-A规范协议),第一组件可通过消息映射,实现标准SMC调用,具体可参见下述步骤。
S402.第一组件确定第一消息对应的第二消息。
第二消息为目标协议定义的一种预设消息。一种可能的实施方式中,第一组件通过查询预设的消息映射关系,确定第一消息对应的第二消息。第二消息用于指示第一消息。
其中,消息映射关系包括第一组件向第二组件发送的多种消息(自定义消息/私有消息),以及每种消息与目标协议定义的消息的映射关系。
示例性的,图5为本申请实施例提供的一种消息映射关系的示意图。如图5所示,设备商的自定义消息包括如TSP_MSG_1,TSP_MSG_2,TSP_MSG_3,TSP_MSG_4以及TSP_MSG_5,目标协议定义的消息包括如FFA_MSG_WAIT,FFA_INTERRUPT以及FFA_MSG_SEND_DIRECT_RESP。其中TSP_MSG_1,TSP_MSG_2均与FFA_MSG_WAIT具有对应关系,TSP_MSG_3与FFA_INTERRUPT具有对应关系,TSP_MSG_4,TSP_MSG_5均与FFA_MSG_SEND_DIRECT_RESP具有对应关系。
需要说明的是,图5仅作为示例,一个自定义消息仅与一个FF-A消息对应,但一个FF-A消息可以对应多个自定义消息。
现有方案中,电子设备内没有预设上述消息映射关系,设备直接通过私有SMC调用传输第一消息。示例性的,图6为本申请实施例提供的一种消息映射关系的示意图。图6示出的多个自定义消息与图5一致,不同之处在于设备直接通过SMC调用传输各个自定义消息,也即通过SMC调用,传输的SMC消息与自定义消息相同,SMC消息不适配FF-A协议。
可以理解,由于不同设备商自定义其组件间交互消息,消息的通用性差。
相较于现有方案,本实施例通过预设消息映射关系,可实现跨组件消息交互时,使用适配底层芯片协议(如FF-A协议)的消息来传输数据。这里的跨组件消息交互主要是指从低权限级别的组件向高权限级别的组件发送消息,例如,图3中安卓OS内核向虚拟机监视器发送的消息,或者TEE OS向SPM发送的消息。
S403.第一组件将第一消息写入第一寄存器,以及将第二消息写入第二寄存器。
第一组件在确定第一消息对应的第二消息后,需要将第一消息和第二消息写入寄存器中,以便其他组件通过寄存器读取第一消息和第二消息。为了读取方便,可将第一消息的相关数据写入第一寄存器,将第二消息的相关数据写入第二寄存器。
为了便于理解,下面分别针对图5和图6所示的SMC调用的消息数据存储过程进行说明。示例性的,图7为本申请实施例提供的两种SMC调用的消息数据存储的示意图。
一种可能的实施方式中,针对图6所示的直接通过私有SMC调用传输SMC消息的情况,假设SMC消息包括参数A0至A4,SMC消息使用的寄存器包括X0至X4。其中,A0指示SMC消息的标识,该标识用于指示该消息的业务类型,A1至A4为SMC消息中携带的多条数据内容。可将SMC消息的参数A0至A4分别写入寄存器X0至X4,如图7的(a)所示。
一种可能的实施方式中,针对图5所示的通过标准SMC调用传输FF-A消息的情况,SMC消息可对应前述的第一消息,FF-A消息可对应前述的第二消息。假设SMC消息包括参数A0至A4,与前述实施方式相同。由于标准SMC调用传输FF-A消息,因此需要配置相应的寄存器来存储FF-A消息的相关数据。
示例性的,如图7的(b)所示,可配置寄存器X0至X2存储FF-A消息的相关数据,例如X0存储FF-A消息的标识,该标识用于指示该消息的业务类型,X1存储FF-A消息的发送方和接收方的标识,X3存储FF-A消息的其他参数。与此同时,配置寄存器X3至X7存储SMC消息的相关数据,例如,将SMC消息中的参数A0至A4分别写入寄存器X0至X4。与图7的(a)相比,SMC消息的参数存储位置发生偏移,或者说,将原有传递到寄存器X0至X4的参数A0至A4偏移存储到FF-A协议定义的寄存器X3至X7中。
结合图7中(b)所示的寄存器,第一消息的相关数据写入第一寄存器,第一寄存器包括寄存器X3至X7,第二消息的相关数据写入第二寄存器,第二寄存器包括寄存器X0至X2。
本步骤中,第一组件需要分别将第一消息和第二消息写入指定寄存器,以便其他组件(如第二组件等)可通过指定寄存器获取第一消息和第二消息的相关数据。其他组件也可通过第一消息和第二消息的相关数据的存储位置,获知第一消息与第二消息具有对应关系,以提升跨组件消息传输的效率。
S404.第一组件向第二组件发送第二消息。
上述实施例示出的消息处理方法,第一组件在向第二组件发送第一消息时,通过获取与第一消息对应的第二消息,最终向第二组件发送该第二消息,第二消息用于指示第一消息。其中第一消息为设备内组件间交互的一种自定义消息,第二消息为目标协议定义的一种预设消息。上述方案实现设备内跨组件交互消息的通用性要求,在不影响设备原有软件框架下,保持消息传输的效率。上述方案在技术实现上,通过在设备内构建自定义消息与目标协议定义的预设消息的映射关系,实现在SMC调用时进行消息映射,避免消息数据拆分(即避免将原有自定义消息拆分成多条消息发送),保持消息传输的效率。
此外,上述方案可避免大面积修改代码,通过配置消息映射以及消息参数与寄存器的映射,在执行SMC调用时,实现组件间传输目标协议定义的消息,满足消息传输的通用性要求,保持消息传输的效率。设备软件框架不受影响,代码上层业务不受影响。
在一些实施例中,电子设备还包括第三组件,其中,第三组件的权限级别大于第二组件的权限级别。在S404之后,消息处理方法还包括:
S405.第二组件向第三组件转发第二消息。
在一些实施例中,电子设备还包括第四组件,第四组件位于电子设备的第一运行环境,第一组件位于电子设备的第二运行环境,在S405之后,消息处理方法还包括:
S406.第三组件向第四组件转发第二消息。
示例性的,图8为本申请实施例提供的电子设备内部组件的交互示意图。如图8所示,第一组件和第二组件位于电子设备的第二运行环境(普通世界),第四组件位于电子设备的第一运行环境(安全世界),第一组件和第四组件的权限级别为EL1,第二组件的权限级别为EL2,第三组件的权限级别为EL3。基于前文对权限级别的描述可知,本示例中,第一组件的权限级别小于第二组件的权限级别,第三组件的权限级别大于第二组件的权限级别。
基于图8可知,第二消息从第一组件流出,依次经第二组件、第三组件的转发,最终由第四组件接收,实现消息从普通世界向安全世界的传输,第二消息为目标协议定义的消息。
S407.第四组件获取第二消息对应的第一消息。
第四组件可通过查询电子设备的寄存器,获取第二消息对应的第一消息。电子设备的寄存器中存储有第一消息和第二消息的相关数据,如图7的(b)所示。
上述实施例示出的消息处理方法,组件间传输的消息均为目标协议定义的消息,实现跨组件交互消息的通用性。
在一些实施例中,第四组件在获知第二消息对应的第一消息后,还可以执行以下步骤:
S408.第四组件生成第三消息。
第四组件响应于第一消息,生成第三消息。第三消息可以看作是第一消息的响应消息。
S409.第四组件确定第三消息对应的第四消息。
与S402类似,第四组件可通过查询预设的消息映射关系,确定第三消息对应的第四消息。第四消息为目标协议定义的一种预设消息,例如第四消息为一种FF-A消息。
可以理解,第四组件在向第一组件返回响应消息时,同样需要基于预设的消息映射关系,将设备商自定义的第三消息映射到目标协议定义的第四消息,以满足跨组件交互消息的通用性要求。第四消息用于指示第三消息。
S410.第四组件将第三消息写入第三寄存器,以及将第四消息写入第四寄存器。
本步骤中,第三消息和第四消息写入寄存器的原理,与S403中第一消息和第二消息写入寄存器的原理一致,可将第三消息的相关数据写入第三寄存器,将第四消息的相关数据写入第四寄存器,具体可参照上文,此处不再赘述。
可选的,第三寄存器可以是第一寄存器,如图7的(b)所示的寄存器X0至X2;第四寄存器可以是第二寄存器,如图7的(b)所示的寄存器X3至X7。
S411.第四组件向第三组件发送第四消息。
S412.第三组件向第二组件转发第四消息。
S413.第二组件向第一组件转发第四消息。
如图8所示,第四消息从第四组件流出,依次经第三组件、第二组件的转发,最终由第一组件接收,实现消息从安全世界向普通世界的传输,第四消息为目标协议定义的消息。
S414.第一组件获取第四消息对应的第三消息。
上述实施例示出的消息处理方法,第四组件在向第三组件发送第三消息时,通过获取与第三消息对应的第四消息,最终向第三组件发送该第四消息,第四消息用于指示第三消息。其中,第三消息为设备内组件间交互的一种自定义消息,第四消息为目标协议定义的一种预设消息。通过构建的消息映射,以及消息参数与寄存器的映射,实现组件间传输目标协议定义的消息,满足消息传输的通用性要求,保持消息传输的效率。
上面已对本申请实施例的设备列表排序的方法进行了说明,下面对本申请实施例提供的执行上述列表排序的方法的装置进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本申请实施例提供的相关装置可以执行上述列表排序的方法中的步骤。
本申请实施例提供的消息处理方法,可以应用在具备通信功能的电子设备中。电子设备包括终端设备,终端设备的具体设备形态等可以参照发明内容部分,此处不再赘述。
本申请实施例提供一种电子设备,该电子设备包括:包括:处理器和存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,使得电子设备执行上述方法。
示例性的,图9为本申请实施例提供的一种电子设备的结构示意图。如图9所示,电子设备包括处理器901,通信线路904以及至少一个通信接口(图9中示例性的以通信接口903为例进行说明)。
处理器901可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路904可包括在上述组件之间传送信息的电路。
通信接口903,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线局域网(wireless local area networks,WLAN)等。
在一些实施例中,电子设备还可以包括存储器902。
存储器902可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-onlymemory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路904与处理器相连接。存储器也可以和处理器集成在一起。
存储器902用于存储执行本申请方案的计算机执行指令,并由处理器901来控制执行。处理器901用于执行存储器902中存储的计算机执行指令,从而实现本申请实施例所提供的方法。
本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
作为一种示例,处理器901可以包括一个或多个CPU。
作为一种示例,电子设备可以包括多个处理器。每一个处理器可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
本申请实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
示例性的,图10为本申请实施例提供的一种芯片的结构示意图。如图10所示,芯片1000包括一个或两个以上(包括两个)处理器1020和通信接口1030。
在一些实施例中,存储器1040存储了如下的元素:可执行模块或者数据结构,或者,可执行模块或者数据结构的子集,或者,可执行模块或者数据结构的扩展集。
本申请实施例中,存储器1040可以包括只读存储器和随机存取存储器,并向处理器1020提供指令和数据。存储器1040的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。
本申请实施例中,存储器1040、通信接口1030以及存储器1040通过总线系统1010耦合在一起。其中,总线系统1010除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。为了便于描述,在图10中将各种总线都标为总线系统1010。
上述本申请实施例描述的方法可以应用于处理器1020中,或者由处理器1020实现。处理器1020可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1020中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1020可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器1020可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。
上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序。计算机程序被处理器执行时实现上述方法。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或者在计算机可读介质上传输。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
一种可能的实现方式中,计算机可读介质可以包括RAM,ROM,只读光盘或其它光盘存储器,磁盘存储器或其它磁存储设备,或目标于承载的任何其它介质或以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。而且,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,数字用户线(Digital SubscriberLine,DSL)或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘,激光盘,光盘,数字通用光盘(DigitalVersatile Disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。上述的组合也应包括在计算机可读介质的范围内。
本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行上述方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (8)
1.一种消息处理方法,其特征在于,应用于电子设备,所述电子设备包括第一组件和第二组件,所述第一组件的权限级别小于所述第二组件的权限级别;所述方法包括:
所述第一组件获取第一消息,所述第一消息为所述第一组件向所述第二组件发送的消息;
所述第一组件确定所述第一消息对应的第二消息,所述第二消息为目标协议定义的一种预设消息,所述第二消息用于指示所述第一消息;
所述第一组件向所述第二组件发送所述第二消息;
所述电子设备还包括第三组件,所述第三组件的权限级别大于所述第二组件的权限级别;所述方法还包括:
所述第二组件向所述第三组件转发所述第二消息;
所述电子设备还包括第四组件,所述第四组件位于所述电子设备的第一运行环境,所述第一组件位于所述电子设备的第二运行环境;所述方法还包括:
所述第三组件向所述第四组件转发所述第二消息;
所述第四组件获取所述第二消息对应的所述第一消息。
2.根据权利要求1所述的方法,其特征在于,所述第一组件确定所述第一消息对应的第二消息,包括:
所述第一组件通过查询预设的消息映射关系,确定所述第一消息对应的第二消息;
其中,所述消息映射关系包括所述第一组件向所述第二组件发送的多种消息,以及每种消息与目标协议定义的消息的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述第四组件获取所述第二消息对应的所述第一消息,包括:
所述第四组件通过查询所述电子设备的寄存器,获取所述第二消息对应的所述第一消息;
所述寄存器中存储有所述第一消息和所述第二消息。
4. 根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第一组件将所述第一消息写入所述电子设备的第一寄存器,以及
所述第一组件将所述第二消息写入所述电子设备的第二寄存器。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第四组件响应于所述第一消息,生成第三消息;
所述第四组件确定所述第三消息对应的第四消息,所述第四消息为目标协议定义的一种消息,所述第四消息用于指示所述第三消息;
所述第四组件通过所述第三组件和所述第二组件,向所述第一组件发送所述第四消息。
6. 根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第四组件将所述第三消息写入所述电子设备的第三寄存器,以及
所述第四组件将所述第四消息写入所述电子设备的第四寄存器。
7.一种电子设备,其特征在于,包括:处理器和存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,使得所述电子设备执行如权利要求1至6任一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311022647.XA CN117009108B (zh) | 2023-02-24 | 2023-02-24 | 消息处理方法、设备及存储介质 |
CN202310158762.3A CN116010127B (zh) | 2023-02-24 | 2023-02-24 | 消息处理方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310158762.3A CN116010127B (zh) | 2023-02-24 | 2023-02-24 | 消息处理方法、设备及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311022647.XA Division CN117009108B (zh) | 2023-02-24 | 2023-02-24 | 消息处理方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116010127A CN116010127A (zh) | 2023-04-25 |
CN116010127B true CN116010127B (zh) | 2023-08-29 |
Family
ID=86033727
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310158762.3A Active CN116010127B (zh) | 2023-02-24 | 2023-02-24 | 消息处理方法、设备及存储介质 |
CN202311022647.XA Active CN117009108B (zh) | 2023-02-24 | 2023-02-24 | 消息处理方法、设备及存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311022647.XA Active CN117009108B (zh) | 2023-02-24 | 2023-02-24 | 消息处理方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN116010127B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992430A (zh) * | 2019-02-28 | 2019-07-09 | 维沃移动通信有限公司 | 一种数据传输方法、第一终端和第二终端 |
CN112835520A (zh) * | 2021-01-29 | 2021-05-25 | 深圳忆联信息系统有限公司 | 基于映射表动态加载的读请求处理方法及装置 |
CN114625481A (zh) * | 2022-03-22 | 2022-06-14 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
CN115017497A (zh) * | 2021-11-24 | 2022-09-06 | 荣耀终端有限公司 | 信息处理方法、装置及存储介质 |
CN115150894A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 通信方法及装置 |
CN115150811A (zh) * | 2021-03-30 | 2022-10-04 | 华为技术有限公司 | 多租户运维管理方法、装置及系统 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6651171B1 (en) * | 1999-04-06 | 2003-11-18 | Microsoft Corporation | Secure execution of program code |
EP1767010B1 (en) * | 2004-06-15 | 2015-11-11 | Tekelec Global, Inc. | Method, system, and computer program products for content-based screening of MMS messages |
US7706895B2 (en) * | 2005-02-25 | 2010-04-27 | Rockwell Automation Technologies, Inc. | Reliable messaging instruction |
US9396011B2 (en) * | 2013-03-12 | 2016-07-19 | Qualcomm Incorporated | Algorithm and apparatus to deploy virtual machine monitor on demand |
US10049064B2 (en) * | 2015-01-29 | 2018-08-14 | Red Hat Israel, Ltd. | Transmitting inter-processor interrupt messages by privileged virtual machine functions |
US20180060077A1 (en) * | 2016-08-26 | 2018-03-01 | Qualcomm Incorporated | Trusted platform module support on reduced instruction set computing architectures |
CA3061638C (en) * | 2017-04-28 | 2022-04-26 | Anonos Inc. | Systems and methods for enforcing centralized privacy controls in de-centralized systems |
EP3726390B1 (en) * | 2018-02-02 | 2024-04-24 | Huawei Technologies Co., Ltd. | Method and device for protecting kernel integrity |
CN109543452A (zh) * | 2018-11-29 | 2019-03-29 | 北京元心科技有限公司 | 数据传输方法、装置、电子设备及计算机可读存储介质 |
US11550609B2 (en) * | 2020-01-16 | 2023-01-10 | Vmware, Inc. | Unified hypercall interface across processors in virtualized computing systems |
US11169838B2 (en) * | 2020-01-16 | 2021-11-09 | Vmware, Inc. | Hypercall implementation in a virtualized computer system |
CN115509677A (zh) * | 2021-06-23 | 2022-12-23 | 华为技术有限公司 | 一种虚拟机与安全隔离区间的通信方法及相关装置 |
CN115017495B (zh) * | 2021-11-09 | 2023-08-08 | 荣耀终端有限公司 | 定时校验方法、电子设备和可读存储介质 |
CN115422547A (zh) * | 2022-08-29 | 2022-12-02 | 飞腾信息技术有限公司 | 一种数据处理方法、处理器和相关设备 |
CN115328974B (zh) * | 2022-10-12 | 2022-12-13 | 南斗六星系统集成有限公司 | 一种数据实时性检测方法、装置、设备及可读存储介质 |
-
2023
- 2023-02-24 CN CN202310158762.3A patent/CN116010127B/zh active Active
- 2023-02-24 CN CN202311022647.XA patent/CN117009108B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992430A (zh) * | 2019-02-28 | 2019-07-09 | 维沃移动通信有限公司 | 一种数据传输方法、第一终端和第二终端 |
CN112835520A (zh) * | 2021-01-29 | 2021-05-25 | 深圳忆联信息系统有限公司 | 基于映射表动态加载的读请求处理方法及装置 |
CN115150811A (zh) * | 2021-03-30 | 2022-10-04 | 华为技术有限公司 | 多租户运维管理方法、装置及系统 |
CN115150894A (zh) * | 2021-03-31 | 2022-10-04 | 华为技术有限公司 | 通信方法及装置 |
CN115017497A (zh) * | 2021-11-24 | 2022-09-06 | 荣耀终端有限公司 | 信息处理方法、装置及存储介质 |
CN114625481A (zh) * | 2022-03-22 | 2022-06-14 | 北京有竹居网络技术有限公司 | 数据处理方法、装置、可读介质及电子设备 |
Non-Patent Citations (1)
Title |
---|
High Performance Network Virtualization with SRIOV;Yaozu Dong;《IEEE Xplore》;第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116010127A (zh) | 2023-04-25 |
CN117009108A (zh) | 2023-11-07 |
CN117009108B (zh) | 2024-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6871957B2 (ja) | エミュレートされたエンドポイントコンフィグレーション | |
EP3800566B1 (en) | Signature verification of field-programmable gate array programs | |
US8904518B2 (en) | Information processing device, information processing method, and program distribution system | |
JP5620506B2 (ja) | アプリケーション画像の表示方法及び装置 | |
US20090183173A1 (en) | Method and system for determining a host machine by a virtual machine | |
US8904388B2 (en) | Scripting language executor service for applications | |
US8874686B2 (en) | DDS structure with scalability and adaptability and node constituting the same | |
US7765363B2 (en) | Mask usable for snoop requests | |
US10235189B2 (en) | Isolating a redirected smart card reader to a remote session | |
US20070169120A1 (en) | Mechanism to transition control between components in a virtual machine environment | |
CN101777005B (zh) | 重定向物理设备控制器的中断而提供多个虚拟设备控制器的装置和方法 | |
US8826307B2 (en) | Extensible private driver interface | |
US20240160488A1 (en) | Dynamic microservices allocation mechanism | |
CN109194589B (zh) | 一种mdc实现方法及装置 | |
JP2021532495A (ja) | 仮想マシン・メモリの安全なアクセス | |
CN102708076A (zh) | 驱动程序填隙 | |
WO2022268150A1 (zh) | 一种虚拟机与安全隔离区间的通信方法及相关装置 | |
CN117708855A (zh) | 基于核间通信的数据加密方法、装置、设备及介质 | |
CN116010127B (zh) | 消息处理方法、设备及存储介质 | |
US10909270B2 (en) | Information processing device, mobile object, information processing method, and computer program product | |
US20200021862A1 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
CN112579212A (zh) | 跨语言调用的方法、调用方装置及被调用方装置 | |
US11604670B2 (en) | Virtual machine live migration method, apparatus, and system | |
CN115629809A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN109976876B (zh) | 加速器管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |