CN116339821B - 一种显示模组接口兼容方法及电子设备 - Google Patents
一种显示模组接口兼容方法及电子设备 Download PDFInfo
- Publication number
- CN116339821B CN116339821B CN202310595344.0A CN202310595344A CN116339821B CN 116339821 B CN116339821 B CN 116339821B CN 202310595344 A CN202310595344 A CN 202310595344A CN 116339821 B CN116339821 B CN 116339821B
- Authority
- CN
- China
- Prior art keywords
- module
- display driver
- target
- target module
- program
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供一种显示模组接口兼容方法及电子设备。UEFI启动阶段,Bootloader启动显示驱动程序,显示驱动程序初始化目标模组IC,获取目标模组IC的目标型号,调用XML接口程序解析预设的XML配置文件,读取目标模组IC的OTP数据,得到目标模组批次标识;显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果,向目标模组IC下发与第一结果对应的第一目标补丁配置文件。本申请通过调用一种归一化XML接口程序解析XML配置文件,可以从XML配置文件中获取不同物料批次的模组IC对应的补丁配置文件,将补丁配置文件下发至目标模组IC,该XML接口程序具有较好的兼容性、可移植性以及可维护性。
Description
技术领域
本申请实施例涉及软件技术领域,尤其涉及一种显示模组接口兼容方法及电子设备。
背景技术
显示模组的模组集成电路(Integrated Circuit,IC)具有物料批次差异,其中,物料批次差异包括同一型号的模组IC的物料批次差异,以及不同型号的模组IC的物料批次差异,示例的,同一型号的模组IC的物料批次差异包括:同一模组IC在硬件配置的不同阶段产生的硬件配置差异、不同厂商生产的模组IC产生的硬件配置差异等多种差异。
显示驱动程序需要调用接口程序运行模组IC,这些接口程序可以用于解决模组IC存在的硬件配置差异问题,例如,一个接口程序可以针对模组IC的拖影问题进行软件配置,以使显示模组达到标准显示效果,另一个接口程序可以针对模组IC的硬件配置错误问题进行软件配置,以使显示模组达到标准显示效果。目前,用于运行模组IC的接口程序通常是不可更改的,这种接口程序在获取数据时,并非是对数据进行动态拉取,而是将数据在代码里设置为不变的参数。也就是说,用于解决不同问题的接口程序中,具体的软件配置不同。
由于模组IC存在物料批次差异,因此,针对不同物料批次的模组IC需要匹配不同的接口程序,导致产生大量的冗余接口程序。
发明内容
本申请提供一种显示模组接口兼容方法及电子设备,以解决由于模组IC存在物料批次差异,针对不同物料批次的模组IC,需要匹配不同的接口程序,导致产生大量冗余接口程序的问题。
第一方面,本申请提供了一种显示模组接口兼容方法,应用于电子设备,包括:电子设备上电,进入统一可扩展固件接口UEFI启动阶段后,引导启动程序Bootloader启动显示驱动程序;显示驱动程序初始化显示模组的目标模组集成电路IC;显示驱动程序获取目标模组IC的目标型号,其中,每个型号的模组IC对应至少一个模组批次标识,模组IC在更改硬件配置或者更改软件配置时,更新模组批次标识;显示驱动程序调用可扩展标记XML接口程序解析预设的XML配置文件,XML配置文件中包括目标型号对应的逻辑处理程序以及至少一个补丁配置文件,逻辑处理程序用于确定目标模组批次标识是否更新,至少一个补丁配置文件用于模组IC在更改硬件配置或者更改软件配置时,修复目标模组IC的初始化代码存在的漏洞;显示驱动程序读取目标模组IC的寄存器OTP数据,得到OTP数据中的目标模组批次标识;显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果;如果逻辑处理结果为第一结果,显示驱动程序向目标模组IC下发与第一结果对应的第一目标补丁配置文件。
本申请示出的显示模组接口兼容方法,显示驱动调用一种归一化的XML接口程序解析XML配置文件,可以从XML配置文件中获取不同物料批次的模组IC对应的补丁配置文件,并将补丁配置文件下发至目标模组IC,该XML接口程序具有较好的兼容性、可移植性以及可维护性。这样,解决了由于模组IC存在物料批次差异,针对不同物料批次的模组IC,需要匹配不同的接口程序,导致产生大量冗余接口程序的问题。
在一些可实现的方式中,还包括:如果逻辑处理结果为第二结果,目标模组IC以初始化代码运行。采用本实现方式,在同一模组IC在发生配置更改过程中,针对更改配置前以及更改配置后对应的两个不同的物料批次,显示驱动程序能够调用XML接口程序从XML配置文件中获取与这两个物料批次的模组IC匹配的配置文件,这样,一个XML接口程序能够匹配不同物料批次的模组IC。
在一些可实现的方式中,逻辑处理程序包括:判断目标模组批次标识是否大于或者等于第一预设阈值,第一预设阈值包括至少一个十六进制的数值,每个模组批次标识对应一个第一预设阈值;或者,判断目标模组批次标识是否等于第二预设阈值,第二预设阈值包括至少一个十六进制的数值,每个模组批次标识对应至少一个第二预设阈值。采用本实现方式,XML配置文件中可以提供多种逻辑处理程序,以针对不同的模组批次标识提供与其匹配的逻辑处理程序,这样,显示驱动能够通过调用XML接口解析XML配置文件,以得到逻辑处理程序,进而区分模组批次标识对应的不同物料批次,解决了传统接口程序不能用于区分物料批次,需要针对不同物料批次的模组IC匹配不同接口程序的问题。
在一些可实现的方式中,第一结果包括目标模组批次标识已更新;第二结果包括目标模组批次标识未更新。采用本实现方式,逻辑处理结果可以用于区分模组批次标识对应的不同物料批次,解决了传统接口程序不能用于区分物料批次,需要针对不同物料批次提供不同接口程序的问题。
在一些可实现的方式中,第一结果包括:目标模组批次标识大于或者等于第一预设阈值,或者,目标模组批次标识等于第二预设阈值;第二结果包括:目标模组批次标识小于第一预设阈值,或者,目标模组批次标识不等于第二预设阈值。采用本实现方式,逻辑处理结果可以用于区分模组批次标识对应的不同物料批次,解决了传统接口程序不能用于区分物料批次,需要针对不同物料批次的模组IC匹配不同接口程序的问题。
在一些可实现的方式中,显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果之后,还包括:显示驱动程序将目标模组批次标识配置在内核启动参数Cmdline中;显示驱动程序修改Cmdline,得到修改后的Cmdline,修改后的Cmdline用于指示内核Kernel启动阶段,显示驱动程序获取全量配置文件或者获取目标模组批次标识,全量配置文件包括初始化代码和第一目标补丁配置文件。采用本实现方式,一个XML接口程序可以UEFI启动阶段和Kernel启动阶段交互过程中,在Kernel启动阶段为模组IC提供不同的配置方式,解决了传统接口程序仅能定义一种UEFI启动阶段和Kernel启动阶段的交互方式的问题。
在一些可实现的方式中,显示驱动程序向目标模组IC下发与逻辑处理结果对应的第一目标补丁配置文件之后,还包括:电子设备进入Kermel启动阶段后,Kernel启动显示驱动程序,显示驱动程序初始化目标模组IC;如果修改后的Cmdline指示显示驱动程序获取全量配置文件,显示驱动程序解析修改后的Cmdline,根据修改后的Cmdline获取全量配置文件;显示驱动程序向目标模组IC下发全量配置文件。采用本实现方式,XML接口程序可以UEFI启动阶段和Kernel启动阶段交互过程中,在Kernel启动阶段为模组IC定义获取全量配置文件的配置方式,解决了传统接口程序仅能定义一种UEFI启动阶段和Kernel启动阶段的交互方式的问题。
在一些可实现的方式中,显示驱动程序解析修改后的Cmdline,根据修改后的Cmdline获取全量配置文件,包括:显示驱动程序解析修改后的Cmdline,得到修改后的Cmdline中的第一地址,第一地址包括Bootloader将全量配置文件存储在根文件系统中的地址;显示驱动从第一地址中获取全量配置文件。采用本实现方式,XML接口程序可以UEFI启动阶段和Kernel启动阶段交互过程中,在Kernel启动阶段为模组IC定义获取全量配置文件的配置方式,解决了传统接口程序仅能定义一种UEFI启动阶段和Kernel启动阶段的交互方式的问题。
在一些可实现的方式中,显示驱动程序向目标模组IC下发与逻辑处理结果对应的第一目标补丁配置文件之后,还包括:电子设备进入Kermel启动阶段后,Kernel启动显示驱动程序,显示驱动程序初始化目标模组IC;如果修改后的Cmdline指示显示驱动程序获取目标模组批次标识,显示驱动程序解析修改后的Cmdline,得到目标模组批次标识;显示驱动程序调用XML接口程序解析XML配置文件;显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果;如果逻辑处理结果为第一结果,显示驱动程序向目标模组IC下发与第一结果对应的第二目标补丁配置文件。采用本实现方式,XML接口程序可以UEFI启动阶段和Kernel启动阶段交互过程中,在Kernel启动阶段为模组IC定义获取目标模组标识的配置方式,解决了传统接口程序仅能定义一种UEFI启动阶段和Kernel启动阶段的交互方式的问题。
第二方面,本申请提供了一种电子设备,包括:处理器和存储器;存储器存储有程序指令,当程序指令被处理器执行时,使得电子设备执行第一方面中任一实现方式中的显示模组接口兼容方法。
第三方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在电子设备上运行时,使得电子设备执行第一方面的任一实现方式中的显示模组接口兼容方法。
第四方面,本申请还提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行第一方面中任一实现方式中的显示模组接口兼容方法。
可以理解地,上述提供的第二方面的电子设备,第三方面的计算机存储介质,以及第四方面的计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种显示模组示意图;
图2是一种不同接口程序示意图;
图3是一种显示驱动程序在UEFI启动阶段和Kernel启动阶段的运行过程示意图;
图4是本申请实施例提供的电子设备100的硬件结构示意图;
图5是本申请实施例提供的电子设备100的软件结构框图;
图6是本申请实施例提供的显示模组接口兼容方法的第一个流程图;
图7是一种XML接口程序和XML配置文件的对应关系示意图;
图8是本申请实施例提供的模组接口兼容方法的第二个流程图;
图9是本申请实施例提供的模组接口兼容方法的第三个流程图;
图10是本申请实施例提供的模组接口兼容方法的第四个流程图;
图11为本申请实施例提供的显示模组接口兼容装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例的技术方案进行清楚地描述。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请,下面将结合附图对本申请的实施例进行详细描述。
模组是由数个基础功能组件组成的特定功能组件,一般包括多颗芯片、场效应管、电容、电阻、电感等电子元器件,可以用来组成具有完整功能的系统、设备或程序。模组通常具有相同的制程或者逻辑,更改模组的组成组件可以调试其功能或者用途。
电子设备包括多种模组,例如:显示模组、摄像模组等,本申请实施例仅以显示模组进行示例性说明。
图1是一种显示模组示意图。
如图1所示,显示模组可以是液晶显示器(Liquid Crystal Display,LCD),包括前框1、水平偏光片2、彩色滤光片3、液晶片4、液晶玻璃基板5、垂直偏光片6、模组集成电路(Integrated Circuit,IC)7、印刷电路板8、扩散片9、扩散板10、胶框11、发光二极管(LightEmitting Diode,LED)背光源12、背板13、主控制板14、背光模组15等结构,显示模组可以用于显示图像和文字。
其中,液晶片、模组IC、背光模组是显示模组的重要组成部分。液晶片由一层薄膜和一层电极组成,当电极上施加电压时,液晶片中的液晶分子会发生变化,改变液晶片的透光性,以呈现显示效果。背光模组由一个或多个LED组成,当LED发光时,液晶片中的液晶分子会发生变化,改变液晶片的透光性,以呈现显示效果。模组IC用于驱动和控制液晶片的电压以及LED的亮度。经模组IC调试后,液晶片具有均匀分布的液晶亮度,这样,显示模组能够显示图像和文字。
在制备显示模组的过程中,需要在模组IC上完成一次性可编程(One TimeProgrammable,OTP)烧录的工序。其中,OTP是一种特殊类型的非易失性存储器(Non-Volatilememory),仅允许编程一次,一旦被编程,数据永久有效。由于电子设备的应用程序框架层的接口通常不支持直接与模组IC进行通信,即不支持向模组IC内写入初始化,因此,模组IC的电学功能及光学特性需要通过OTP进行固化,以在OTP中配置初始化代码。模组IC内嵌一定的存储空间用于OTP烧录,以使OTP可以用于存储可靠且可重复读取的数据,例如:启动程序、加密密钥、模拟器件配置参数等。这样,模组IC可以读取OTP烧录的数据,以校正显示模组的相关参数,使显示模组的显示效果均匀一致。
显示模组的模组集成电路(Integrated Circuit,IC)具有物料批次差异,其中,物料批次差异包括同一型号的模组IC的物料批次差异,以及不同型号的模组IC的物料批次差异,示例的,同一型号的模组IC的物料批次差异包括:同一模组IC在硬件配置的不同阶段产生的硬件配置差异、不同厂商生产的模组IC产生的硬件配置差异、以及模组IC为匹配不同机型的电子设备产生的硬件配置差异等多种差异。不同型号的模组IC是由于型号不同,硬件配置不同,物料批次不同产生的物料批次差异。
为了区分模组IC的物料批次差异,显示模组厂商通常针对模组IC的每个物料批次在OTP中设置一个模组批次标识,示例的,模组批次标识为批次区分身份标识号(IdentityDocument,ID),批次区分ID例如为ver_000、ver_001、ver_002等。其中,批次区分ID的字段能够解析出对应的数值,例如,ver_000解析出的数值为0x3B。本申请实施例仅对模组批次标识进行示例性说明,模组批次标识的具体字段可以依据实际情况进行设置,本申请对此不予限制。
示例的,同一型号的模组IC的物料批次差异包括以下几种情况。
第一种情况,同一模组IC在硬件配置的不同阶段产生的硬件配置差异。
硬件配置阶段包括V1、V2、V3、V4、VN1、VN2等多个试制迭代阶段,在VN1阶段,模组IC具有第一硬件配置K1,第一硬件配置K1的模组批次标识为ver_000。模组IC在完成VN1阶段的配置后,进入VN2阶段,如果在VN2阶段发现模组IC具有硬件配置错误,那么,显示模组厂商需要将模组IC返厂,进行硬件配置修改,此时,修改硬件配置后的模组IC具有第二硬件配置K2,第二硬件配置K2的模组批次标识为ver_001。也就是说,同一模组IC,在硬件配置的不同阶段由于更改了硬件配置因此具有两个物料批次,这两个物料批次对应的硬件配置不同,模组批次标识不同。
第二种情况,不同厂商生产的模组IC产生的硬件配置差异。
示例的,A厂商生产了A型号的模组IC,A厂商生产的模组IC具有第三硬件配置K3,第三硬件配置K3的模组批次标识为ver_002。B厂商生产了A型号的模组IC,由于两个厂商的工业生产过程存在差异,B厂商生产的模组IC具有第四硬件配置K4,第四硬件配置K4的模组批次标识为ver_003。也就是说,同一型号的模组IC,在不同厂商的生产过程中具有两个物料批次,这两个物料批次对应的硬件配置不同,模组批次标识不同。
第三种情况,模组IC为匹配不同机型的电子设备产生的硬件配置差异。
同一型号的模组IC可以应用至不同机型的电子设备中。示例的,A型号的模组IC可以应用至M1机型的电子设备或者M2机型的电子设备中。其中,M1机型的电子设备采用的显示模组为6.57英寸,M2机型的电子设备采用的显示模组为6.67英寸,因此,M1机型的电子设备和M2机型的电子设备分别对应的显示模组的参数不同,这样,模组IC为匹配不同机型的电子设备,OTP中烧录的参数不同。其中,匹配M1机型的模组IC具有第五硬件配置K5,第五硬件配置K5中模组批次标识为ver_004。匹配M2机型的模组IC具有第六硬件配置K6,第六硬件配置K6的模组批次标识为ver_005。也就是说,同一型号的模组IC为匹配不同机型的电子设备可以具有两个物料批次,这两个物料批次对应的硬件配置不同,模组批次标识不同,OTP版本不同。
本申请实施例包括但不限于上述情况中存在的物料批次差异,多种情况下,模组IC存在物料批次差异问题。
模组IC完成硬件配置过程后,并不一定能够使显示模组达到标准的显示效果,因此,还需要针对模组IC设置匹配的接口程序,显示驱动程序调用这些接口程序能够解决硬件配置存在的问题。其中,接口程序可以是一种用户机器接口程序,是为了使用户便于控制操作系统而构建的接口。目前,这些接口程序通常是不可更改的,在获取数据时,并非对数据进行动态拉取,而是将数据在代码里设置为不变的参数。这样,针对不同物料批次的模组IC需要匹配不同的接口程序,导致产生大量的冗余接口程序。
图2是一种不同接口程序示意图。
如图2所示,不同接口程序能够通过不同的软件配置方式解决模组IC存在的不同问题,这些问题涉及模组IC的硬件配置问题以及软件配置问题,示例的,模组IC存在的问题包括以下几种情况。
第一种情况,硬件配置存在拖影问题。
拖影是一种显示模组的故障现象,具体表现为显示的字体、图片、窗口后面拖有黑色的横条纹,根据条纹的严重程度不同,条纹可长可短。拖影问题可能是显示模组内部电路损坏、显示模组响应时间、显示模组刷新速率过慢等原因造成的。拖影问题可以通过超频(Over Drive,OD)技术解决,例如,在电子设备的统一可扩展固件接口(UnifiedExtensible Firmware Interface,UEFI)启动阶段为模组IC设置更高的工作频率。
示例的,同一模组IC具有两个不同的物料批次。其中,模组批次标识为ver_006的模组IC具有第七硬件配置K7,第七硬件配置K7为初始硬件配置,第七硬件配置K7对应于第一接口程序Q1,第一接口程序Q1可以对第七硬件配置K7进行初始化。
如果初始化后,发现第七硬件配置K7存在拖影问题,可以更改其硬件配置或者更改其软件配置,例如,在硬件配置中更改电路电压提高第七硬件配置K7的工作频率,或者,在软件配置中写入能够提高第七硬件配置K7的工作频率的程序。
这样,第七硬件配置K7发生了物料批次更改,以更改硬件配置为例,同一模组IC具有第八硬件配置K8,模组批次标识为ver_007,因此,需要提供第二接口程序Q2,第二接口程序Q2在读取到模组批次标识为ver_007后,可以对第八硬件配置K8下发用于解决拖影问题的补丁配置文件。
第二种情况,硬件配置存在寄存器数量不足问题。
示例的,模组批次标识为ver_006的模组IC具有第七硬件配置K7,第七硬件配置K7为初始硬件配置,第七硬件配置K7对应于第一接口程序Q1,第一接口程序Q1可以对第七硬件配置K7进行初始化。
如果初始化后,发现第七硬件配置K7存在寄存器数量不足的问题,可以在第七硬件配置K7上增加两个寄存器,形成第九硬件配置K9,第九硬件配置K9对应的模组批次标识为ver_008。
这样,第一接口程序Q1并不具备运行新增的两个寄存器的能力,因此,需要提供第三接口程序Q3,第三接口程序Q3在读取到模组批次标识为ver_008后,可以对第九硬件配置K9下发包括新增的寄存器的运行参数的补丁配置文件。
因此,第一接口程序Q1、第二接口程序Q2以及第三接口程序Q3的程序配置方式不同。也就是说,针对同一型号的不同物料批次的模组IC需要设置不同的接口程序。
具体而言,不同接口程序的不同程序配置方式是指接口程序中的识别程序不同、补丁配置文件的下发程序不同、以及UEFI启动阶段至内核Kernel启动阶段的交互程序不同。示例的,第二接口程序Q2中包括第一识别程序U1、第一下发程序U2。其中,第一识别程序U1仅能识别模组批次标识ver_007,并得到其对应的数值为0x9C,第一下发程序U2仅能针对0x9C下发用于解决拖影问题的补丁配置文件。第三接口程序Q3中包括第二识别程序S1、第二下发程序S2。其中,第二识别程序S1仅能识别模组批次标识ver_008,并得到其对应的数值为0x40,第二下发程序S2仅能针对模组批次标识ver_008下发包括新增的寄存器的运行参数的补丁配置文件。
这样,每个接口都有固定的程序配置方式,不同的接口之间无法通用。
进一步的,这些接口程序的实际应用过程如下。
图3是一种显示驱动程序调用接口程序在UEFI启动阶段和Kernel启动阶段运行模组IC的流程示意图。
如图3所示,显示驱动程序调用接口程序在UEFI启动阶段和Kernel启动阶段运行模组IC的过程包括以下步骤S1-S11。
步骤S1,电子设备上电,进入UEFI启动阶段后,Bootloader启动显示驱动程序。
电子设备自上电至出现登录界面,通常可以划分为四个阶段:基本输入输出系统(Basic Input Output System,BIOS)/UEFI启动阶段、内核引导阶段、内核启动阶段以及服务启动阶段。
其中,BIOS是一种传统的固件启动程序,用于开机时检测硬件功能和引导操作系统启动,功能有限。UEFI是一种相较于BIOS具有更丰富功能的启动程序,可以用于将系统从预启动环境,加载到当前操作系统,从而节省开机时间。本申请实施例仅以UEFI启动进行示例性说明。UEFI启动阶段的主要功能是加载引导启动程序(Bootloader),以使Bootloader具有电子设备的控制权。
Bootloader可以初始化硬件,建立内存的控件映射图,从而将操作系统的软件和硬件环境调整到合适的状态,以便为最终调用操作系统的Kernel提供完善的环境。操作系统的上电或者复位通常从地址0x00000000处开始执行,Bootloader程序设置在该地址处。
步骤S2,显示驱动程序初始化显示模组的模组IC。
本申请实施例涉及Bootloader对模组IC的硬件初始化过程。Bootloader启动显示驱动程序后,显示驱动程序初始化模组IC。
步骤S3,显示驱动程序调用接口程序识别模组IC。
步骤S4,显示驱动程序调用接口程序读取模组IC的OTP数据,得到OTP数据中的模组批次标识。
步骤S5,显示驱动程序调用接口程序对OTP数据中的模组批次标识进行逻辑处理,得到模组批次标识对应的数值。
步骤S6,显示驱动程序调用接口程序根据模组批次标识对应的数值对模组IC进行屏幕处理。
步骤S7,UEFI启动阶段结束。
UEFI启动阶段结束后,Bootloader将电子设备的控制权提供给Kernel,以使Kernel管理操作系统的进程、内存、设备驱动程序、文件、网络系统等,维持操作系统的性能和稳定性。
步骤S8,电子设备进入Kernel启动阶段后,Kernel控制显示驱动程序。
步骤S9,显示驱动程序调用接口程序读取OTP数据。
步骤S10,显示驱动程序调用接口程序对OTP数据的模组批次标识进行逻辑处理,得到模组批次标识对应的数值。
步骤S11,显示驱动程序调用接口程序根据模组批次标识对应的数值对模组IC进行屏幕处理。
其中,一个接口程序仅能用于对一个模组批次标识进行处理,且仅提供一种处理方式,示例的,显示驱动程序调用第二接口程序Q2实现上述过程时,步骤S4-步骤S5中,显示驱动程序调用第一识别程序U1读取模组IC的OTP数据,得到OTP数据中的模组批次标识为ver_007,并得到其对应的数值为0x9C,步骤S6中,显示驱动程序调用第一下发程序U2对模组IC下发用于解决拖影问题的补丁配置文件。Kernel启动阶段,Kernel可以以自身的功能重新以与步骤S2-S6相似的方式执行步骤S9-S11。如果显示驱动程度调用第三接口程序Q3,上述步骤S1-S11需要采用另一种程序配置方式。
综上,由于模组IC存在物料批次差异,因此,针对不同物料批次的模组IC需要匹配不同的接口程序,导致产生大量的冗余接口程序。
为了解决上述问题,本申请提供了一种显示模组接口兼容方法。
本申请提供的显示模组接口兼容方法可以应用于电子设备。其中,电子设备包括但不限于手机、平板电脑、个人电脑、工作站设备、大屏设备(例如:智慧屏、智能电视等)、可穿戴设备(例如:智能手环、智能手表)掌上游戏机、家用游戏机、虚拟现实设备、增强现实设备、混合现实设备等、车载智能终端等。
图4是本申请实施例提供的电子设备100的硬件结构示意图。
如图4所示,电子设备100可以包括处理器110,存储器120,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,摄像头192,显示屏193,以及用户标识模块(subscriber identification module,SIM)卡接口194等。其中,传感器模块180可以包括触摸传感器180A,陀螺仪传感器180B,气压传感器180C,地磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J等。其中,陀螺仪传感器180B,气压传感器180C,地磁传感器180D,加速度传感器180E等均可用于检测电子设备的运动状态,因此,也可以被称作运动传感器。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
存储器120可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。存储器120可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在存储器120的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,存储器120,显示屏193,摄像头192,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏193显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC ,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system ,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏193,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏193和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏193用于显示图像,视频等。显示屏193包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏193,N为大于1的正整数。
电子设备100可以通过ISP,摄像头192,视频编解码器,GPU,显示屏193以及应用处理器等实现拍摄功能。
ISP 用于处理摄像头192反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头192中。
摄像头192用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,RYYB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头192,N为大于1的正整数。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
触摸传感器180A,也称“触控器件”。触摸传感器180A可以设置于显示屏193,由触摸传感器180A与显示屏193组成触摸屏,也称“触控屏”。触摸传感器180A用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏193提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180A也可以设置于电子设备100的表面,与显示屏193所处的位置不同。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
地磁传感器180D包括霍尔传感器。电子设备100可以利用地磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据地磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180G检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,电子设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,电子设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏193不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
SIM卡接口194用于连接SIM卡。SIM卡可以通过插入SIM卡接口194,或从SIM卡接口194拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口194可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口194可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口194也可以兼容不同类型的SIM卡。SIM卡接口194也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图5是本申请实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图5所示,应用程序包可以包括电池管理、相机,图库,日历,通话,地图,导航,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用程序接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5所示,应用程序框架层可以包括窗口管理器,输入管理器InputManager,传感器管理器SensorManager,电话管理器,资源管理器,通知管理器等。
输入管理器可以用来监听用户的输入事件,例如用户手指在电子设备100的显示屏193执行的点击事件、滑动事件等。通过监听输入事件,电子设备100可以判断是否正在使用电子设备。
传感器管理器用于监听电子设备中的各个传感器返回的数据,例如运动传感器数据、接近光传感器数据、温度传感器数据等。利用各个传感器返回的数据,电子设备可以判断其是否有抖动,或者显示屏193是否被遮挡等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如: MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
其中,显示驱动可以对上述显示屏193中显示面板的模组IC进行控制。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件组合实现。
图6是本申请实施例提供的显示模组接口兼容方法的第一个流程图。
如图6所示,本申请实施例提供的显示模组接口兼容方法,包括以下步骤S101-S107。
步骤S101,电子设备上电,进入UEFI启动阶段后,Bootloader启动显示驱动程序。
其中,电子设备每次上电或者复位后,都可以执行本申请实施例提供的显示模组接口兼容方法。
UEFI启动阶段中,电子设备通过操作系统加载Bootloader,Bootloader可以安装于主引导扇区(Master Boot Record,MBR),MBR是电子设备开机以后访问硬盘时读取的第一个扇区,用于记录硬盘本身的相关信息、硬盘各个分区的大小及位置信息。这样,操作系统能够快速加载Bootloader,以使Bootloader启动显示驱动程序。
这里需要说明的是,本申请实施例示出的显示模组兼容方法可以适用于不同的操作系统,本申请对此不予限制。
示例的,显示驱动程序为LCD显示驱动程序,LCD显示驱动程序可以用于提供微处理器(Microprocessor Unit,MPU)或者微控制器(Microcontroller Unit,MCU)与LCD的之间的接口程序。
步骤S102,显示驱动程序初始化显示模组的目标模组IC。
模组IC的电学功能及光学特性通过OTP进行固化,这样,OTP中配置有初始化代码,显示驱动程序可以对模组IC执行初始化代码以完成模组IC的初始化。
步骤S103,显示驱动程序获取目标模组IC的型号,其中,每个型号的模组IC对应至少一个模组批次标识,模组IC在更改硬件配置或者更改软件配置时,更新模组批次标识。
显示驱动程序可以通过识别码IDPIN、产品编号、OTP版本等多种规格信息确认模组IC的型号。不同的厂商可能提供不同的模组IC型号识别方法,例如将模组IC的规格信息录入寄存器,显示驱动程序从寄存器中读取规格信息来确认模组IC的型号,或者将模组IC的规格信息存入对应的屏幕配置文件中,显示驱动程序读取屏幕配置文件获取模组IC的型号。模组IC的实际产品上可能蚀刻有模组IC的型号,在调试过程中,调试者也可以人工获取模组IC的型号。本申请实施例对模组IC的型号获取方式不进行限制。
示例的,显示驱动程序可以获取到目标模组IC的型号为H1型号,H1型号的目标模组IC在硬件配置的不同阶段更改了硬件配置,VN1阶段,H1型号的模组IC对应的模组批次标识为ver_000,VN2阶段,H1型号的模组IC对应的模组批次标识为ver_001。
步骤S104,显示驱动程序调用可扩展标记语言(Extensible Markup Language,XML)接口程序解析预设的XML配置文件,XML配置文件中包括目标型号对应的逻辑处理程序以及至少一个补丁配置文件,逻辑处理程序用于确定目标模组批次标识是否更新,至少一个补丁配置文件用于在模组IC更改硬件配置或者更改软件配置时,修复目标模组IC的初始化代码存在的漏洞。
图7是一种XML接口程序和XML配置文件的对应关系示意图。
如图7所示,在一些实施例中,XML接口程序可以配置在显示驱动程序中。XML接口程序可以包括两种。第一种XML接口程序是XML简单应用程序(Simple API for XML,SAX)接口程序,第二种是文档对象模型(Document Object Model,DOM)接口程序。其中,SAX接口程序是基于事件流的解析,DOM接口程序是基于对象模型集合(以下称为DOM树)的解析。
SAX接口程序可以顺序扫描XML配置文件,扫描到XML配置文件的每个节点都会调用相关的处理程序,直至整个XML配置文件扫描结束。显示驱动可以调用SAX接口程序单次解析XML配置文件,以读取XML配置文件。
DOM接口程序解析XML配置文件的过程中,XML分析器首先将XML配置文件转化为DOM树,这样,DOM树的根节点提供了对XML配置文件访问和操作的入口,DOM接口程序可以通过该入口访问XML配置文件中的内容。显示驱动程序可以调用DOM接口程序多次解析XML配置文件,以读取XML配置文件。
本申请实施例对XML接口程序的具体类型不进行限制,XML接口程序可以实现对XML配置文件的解析,以使显示驱动可以执行逻辑处理程序即可。
传统接口程序通常是不可更改的代码,传统接口程序的使用过程中并不需要配置XML配置文件,本申请实施例中,在XML配置文件中能够针对不同型号的模组IC配置匹配的程序。这样,一个XML接口程序能够匹配不同物料批次的模组IC。
具体而言,XML配置文件可以针对每个型号的模组IC对应的预设逻辑处理程序、以及每个逻辑处理结果对应的预设补丁配置文件进行手动配置。
示例的,预设的XML配置文件库中可以包括:H1型号的模组IC对应预设逻辑处理程序E1、H2型号的模组IC对应的预设逻辑处理程序E2。其中,不同型号对应的预设逻辑处理程序具有不同的程序配置方式,逻辑处理过程不同。例如,预设逻辑处理程序E1可以通过关系运算符“>=”对H1型号的模组IC对应的不同模组批次标识ver_000和ver_001进行逻辑处理,预设逻辑处理程序E2可以通过逻辑运算符“||”对H2型号的模组IC对应的不同模组批次标识ver_002和ver_003进行逻辑处理。调试过程中,调试者可以针对不同型号的模组IC手动配置一个与其匹配的预设逻辑处理程序,例如,为H1型号的模组IC在XML配置文件中配置预设逻辑处理程序E1。
示例的,预设的XML配置文件库中可以包括:逻辑处理结果P1对应的预设补丁配置文件L1、逻辑处理结果P2对应的预设补丁配置文件L2。其中,不同的预设补丁配置文件可以用于解决不同的物料批次差异问题。例如,预设补丁配置文件L1可以用于解决拖影问题,预设补丁配置文件L2可以用于解决硬件配置错误问题。逻辑处理结果P1和P2可以是同一模组IC的不同物料批次对应的逻辑处理结果,也可以是不同型号的模组IC的不同物料批次对应的逻辑处理结果。XML配置文件中可以配置多个预设补丁配置文件,以使显示驱动程序确定了逻辑处理结果后,可以根据逻辑处理结果获取到对应的预设补丁配置文件,以在模组IC在更改硬件配置或者更改软件配置时,修复目标模组IC的初始化代码存在的漏洞。
这里需要说明的是,预设的XML配置文件库中还可以包括其他程序,例如识别程序。显示驱动程序读取目标模组IC的OTP数据的程序也可以在预设的XML配置文件库进行配置。本申请实施例对XML配置文件和预设的XML配置文件库的具体设置位置不进行限制。示例的,XML配置文件可以设置于显示驱动程序中,XML配置文件也可以设置于其他XML接口可解析的位置。预设的XML配置文件库可以设置于内存、云端等位置。
这样,针对模组IC的不同型号,显示驱动程序可以调用XML接口程序在配置好的XML配置文件中对模组IC执行相应的程序,该XML接口具有较好的兼容性和可移植性,解决了每个型号的模组IC需要配置一个不同的接口程序的问题。
步骤S105,显示驱动程序读取目标模组IC的OTP数据,得到OTP数据中的目标模组批次标识。
示例的,目标模组IC的型号为H1,显示驱动程序调用XML接口程序解析XML配置文件后,可以通过XML配置文件中的识别程序读取目标模组IC的OTP数据,可能得到模组批次标识为ver_000或者ver_001。这是由于H1型号的目标模组IC在硬件配置的不同阶段可能更改了硬件配置,例如,VN1阶段,H1型号的模组IC为初始硬件配置,对应的模组批次标识为ver_000,VN2阶段,H1型号的模组IC在初始硬件配置的基础上增加了寄存器数量,对应的模组批次标识为ver_001。
这里需要说明的是,本申请实施例中涉及的物料批次更改过程,可以是前述介绍中任何一种物料批次更改过程。本申请实施例中的物料批次更改过程仅用于进行示例性说明。
显示驱动程序得到目标模组批次标识后,实际上无法直接确定需要针对目标模组批次标识下发的具体配置,因此,需要对目标模组批次标识进行进一步的逻辑处理,以区分目标模组批次标识对应的物料批次。
步骤S106,显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果。
传统接口程序中不存在逻辑处理程序。传统接口程序在获取模组批次标识后,直接根据模组批次标识下发对应的补丁配置文件。模组IC每新增一个物料批次,则需要提供一个新的传统接口程序,每个传统接口程序适配于一个物料批次,因此不用区分模组IC是否发生物料批次的更改。本申请实施例中,一个XML接口程序能够匹配不同物料批次的模组IC。
示例的,传统接口程序读取到模组批次标识为ver_000后,直接针对ver_000下发与其匹配的补丁配置文件。本申请实施例中,显示驱动程序可以通过逻辑处理程序区分出模组批次标识为ver_000还是ver_001。这样,显示驱动程序能够针对不同的模组批次标识下发不同的配置文件。
在一些实施例中,逻辑处理程序包括:判断目标模组批次标识是否大于或者等于第一预设阈值,第一预设阈值包括至少一个十六进制的数值,每个模组批次标识对应一个第一预设阈值。
其中,逻辑处理程序可以通过if条件判断语句,对模组批次标识的数值进行关系运算,得到逻辑处理结果。例如,通过关系运算符“>=”对模组批次标识的数值进行关系运算。
示例的,逻辑处理程序包括:ver_000:val>=0x9C。其中,0x9C为第一预设阈值。也就是说,逻辑处理程序中具有一个第一预设阈值,显示驱动程序通过确定目标模组批次标识的数值与该第一预设阈值进行比对,根据得到的逻辑处理结果区分目标模组IC是否发生物料批次更改。第一预设阈值可以是根据目标模组IC的目标型号设置的。
在一些实施例中,逻辑处理程序包括:判断目标模组批次标识是否等于第二预设阈值,第二预设阈值包括至少一个十六进制的数值,每个模组批次标识对应至少一个第二预设阈值。
其中,逻辑处理程序可以通过if条件判断语句,对目标模组批次标识的数值进行逻辑运算,得到逻辑处理结果。例如,通过逻辑运算符“||”对模组批次标识的数值进行逻辑运算。
示例的,逻辑处理程序包括ver_000:val==0x3B || val==0x3C || val==0x3D。其中,0x3B、0x3C以及0x3D为第二预设阈值。也就是说,逻辑处理程序中预设多个第二预设阈值,每个第二预设阈值可以标识一个物料批次更改过程中模组批次标识的数值,例如,0x3B是解决拖影问题的物料批次中模组批次标识的数值,0x3C是解决硬件配置错误的物料批次中模组批次标识的数值。这样,显示驱动程序将读取到的目标模组批次标识的数值与这些第二预设阈值进行比对,根据得到的逻辑处理结果可以确定目标模组IC对应的物料批次。第二预设阈值可以是根据目标模组IC的目标型号设置的。
上述的两种实施例中,无论通过关系运算符“>=”执行逻辑处理,还是通过逻辑运算符“||”执行逻辑处理,实质上都是通过确定目标模组批次标识对应的数值范围,并根据目标模组批次标识的数值范围区分目标模组IC的物料批次。本申请实施例可以基于确定目标模组批次标识对应的数值范围的思想通过其他程序配置方式实现对目标模组批次标识的逻辑处理。
这里需要说明的是,上述第一预设阈值和第二预设阈值仅用于进行示例性说明,具体数值可以根据实际情况进行设置,本申请实施例对此不予赘述。
在一些实施例中,逻辑处理结果包括第一结果和第二结果。第一结果包括目标模组批次标识已更新,此时,目标模组IC发生了物料批次更改。第二结果包括目标模组批次标识未更新,此时,目标模组IC未发生物料批次更改。
在一些实施例中,第一结果包括:模组批次标识大于或者等于第一预设阈值,或者,模组批次标识等于第二预设阈值。
示例的,第一结果包括:ver_000:val>=0x9C,或者,ver_000:val==0X3B ||val==0X3C || val==0X3D。
第二结果包括:模组批次标识小于第一预设阈值,或者,模组批次标识不等于第二预设阈值。
示例的,第二结果包括:ver_000:val<0xFF,或者,ver_000:val !=0X3B || val!=0X3C || val!=0X3D。
这样,不同的逻辑处理结果能够用于区分目标模组IC的物料批次,确定目标模组IC是否发生物料批次更改,以便于进一步的为目标模组IC提供匹配的配置文件。
这里需要说明的是,逻辑处理结果还可以以其他形式的程序配置表示,例如,逻辑处理结果并非以上述程序设置方式表示,而是以“yes”“no”、“if”“else”、或者标志位“1”、“0”等程序设置方式表示,本申请实施例对此不予赘述。
步骤S107,如果逻辑处理结果为第一结果,显示驱动程序向目标模组IC下发与第一结果对应的第一目标补丁配置文件。
在一些实施例中,本申请实施例提供的显示模组接口兼容方法,步骤S106之后,还包括步骤S108。
步骤S108,如果逻辑处理结果为第二结果,目标模组IC以初始化代码运行。
这样,根据不同的逻辑处理结果,显示驱动可以区分出模组IC的不同物料批次,并使模组CI以对应的参数运行。也就是说,目标模组批次标识已更新,则模组IC发生物料批次更改,模组IC原本执行初始化代码,显示驱动程序在初始化代码的基础上下发补丁配置文件,以使模组IC以与其匹配的配置文件运行。
示例的,H1型号的模组IC的逻辑处理结果为ver_001:val>=0x9C。此时,步骤S107的程序实现方式可以为:执行条件判断函数if(ver_001:val>=0x9C),再通过输出函数print()输出第一目标补丁配置文件。
示例的,第一目标补丁配置文件可以为:
<DSIOtpCode>
11 F1 22 AA 33 44 55
66 0A 77
11 F1 22 AA 33 44 55
</DSIOtpCode>
相应的,步骤S108的程序实现方式可以为:执行条件判断函数if(ver_001:val>=0x9C),else()的程序结构,或者,执行条件判断函数if(ver_001:val<0x9C),print()的程序结构。
本申请实施例上述程序设置方式仅用于进行示例性说明,具体也可以采用其他程序设置方式,本申请实施例对此不予限制。
完成上述过程后,UEFI启动阶段结束。
图8是本申请实施例提供的模组接口兼容方法的第二个流程图。
如图8所示,在一些实施例中,步骤S106之后,还包括以下步骤S109-S110。
步骤S109,显示驱动程序将目标模组批次标识配置在内核启动参数Cmdline中。
Cmdline是一系列启动参数组成的参数序列,参数之间用空格隔开依次排列,每个参数中都是以Key=Value这种键值对的方式进行描述,参数中一般包括启动存储介质、文件系统分区及挂载方式进而终端串口等参数。
示例的,目标模组批次标识为ver_000时,显示驱动程序将ver_000字段配置在Cmdline中,并可以通过键值对ver_000=0xFF进行描述。
步骤S110,显示驱动程序修改Cmdline,得到修改后的Cmdline,修改后的Cmdline用于指示Kernel启动阶段,显示驱动程序获取全量配置文件或者获取模组批次标识,全量配置文件包括初始化代码和第一目标补丁配置文件。
在一些实施例中,Cmdline在Bootloader的分区目录的文件中,显示驱动程序通过修改该文件的配置参数得到修改后的Cmdline。
具体而言,步骤S109-步骤S110用于Bootloader通过修改后的Cmdline指导Kernel启动。
Bootloader通过修改后的Cmdline指导Kernel启动有两种方式。
第一种方式是Bootloader通过环境变量Bootargs将Cmdline传递给Kernel。
第二种方式是Bootloader对Cmdline进行参数配置后,将配置后的Cmdline存入内存中,在Kernel启动阶段,Kernel从内存中读取并解析Cmdline,根据Cmdline中的参数启动。
这里需要说明的是,本申请在下文提供了两种实施例,仅其中一种实施例需要使用步骤S109中在Cmdline中配置的模组批次标识。
由于本申请仅提供了一个XML接口,因此,该XML接口需要在UEFI启动阶段和Kernel启动阶段交互过程中,在Kernel启动阶段为模组IC提供不同的配置方式,解决了传统接口程序仅能定义一种UEFI启动阶段和Kernel启动阶段的交互方式的问题。因此,无论在下述实施例中是否需要使用目标模组批次标识,都将目标模组批次标识配置在Cmdline中,这样,Cmdline能够指示Kernel以不同配置方式进行配置,满足了不同模组IC的配置需求。
图9是本申请实施例提供的模组接口兼容方法的第三个流程图。
如图9所示,在一些实施例中,步骤S107之后,还包括步骤S201-204。
步骤S201,电子设备进入Kernel启动阶段后,Kernel启动显示驱动程序。
其中,Bootloader引导Kernel启动后,Kernel启动显示驱动程序。示例的,Bootloader引导Kernel启动过程如下。
Bootloader可以包括引导程序Shimx64.efi和引导程序Grubx64.efi,电子设备进入UEFI阶段后,识别操作系统,将Shimx64.efi加载到内存运行,并通过Shimx64.efi获取Grubx64.efi,Grubx64.efi将内核压缩文件Vmlinuz和初始化内核镜像盘Initfamfs加载到内存中。解压Vmlinuz后,运行内核镜像,实现Kernel启动。
这里需要说明的是,每种操作系统中Bootloader引导Kernel启动的具体方式不同,本申请实施例仅进行示例性说明。本申请中的内存可以是操作系统为内核对象分配的内存。
步骤S202,显示驱动程序初始化目标模组IC。
步骤S203,如果修改后的Cmdline指示显示驱动程序获取全量配置文件,显示驱动程序解析修改后的Cmdline,根据修改后的Cmdline获取全量配置文件。
在一些实施例中,显示驱动程序解析修改后的Cmdline,得到修改后的Cmdline中的第一地址,第一地址包括所述Bootlaoder将全量配置文件存储在根文件系统中的地址。显示驱动程序从第一地址中获取全量配置文件。
具体而言,Bootloader可以将全量配置文件以设备树的形式存入根文件系统中,并通过修改后的Cmdline向Kernel传输设备树在根文件系统中的第一地址。这里需要说明的是,本申请实施例仅以Linux系统进行示例性说明,本申请实施例对具体的操作系统不进行限制。其中,Cmdline可以调用内核调用函数theKernel(),该内核调用函数的函数指针指向寄存器,寄存器中包括设备树文件(Device Tree Source,DTS)的地址。
也就是说,全量配置文件可以是一种DTS文件,Kernel启动阶段,显示驱动程序新增一个DTS文件对模组IC进行配置。由于UEFI启动阶段,模组IC根据全量配置文件中的配置参数运行可以达到标准的显示效果,因此,Kernel启动阶段,显示驱动程序直接复用全量配置文件,可以完成对模组IC的全量配置。
步骤S204,显示驱动程序向目标模组IC下发全量配置文件。
这里需要说明的是,上述实施例仅示出了目标模组批次标识已更新时,显示驱动程序对目标模组IC的配置过程。实际上,全量配置文件还可以仅包括初始化代码。如果目标模组批次标识未更新,显示驱动程序获取到全量配置文件后,目标模组IC以初始化代码运行。
图10是本申请实施例提供的模组接口兼容方法的第四个流程图。
如图10所示,在一些实施例中,步骤S107之后,还包括步骤S301-306。
步骤S301,电子设备进入Kernel启动阶段后,Kernel启动显示驱动程序。
Kernel启动显示驱动程序的具体方式参阅上述实施例,本申请对此不予赘述。
步骤S302,显示驱动程序初始化目标模组IC。
步骤S303,如果修改后的Cmdline指示Kernel获取模组批次标识,显示驱动程序解析修改后的Cmdline,得到模组批次标识。
其中,Cmdline可以调用内核调用函数theKernel(),该内核调用函数的函数指针指向寄存器,寄存器中包括模组批次标识。
也就是说,显示驱动并非获取了能够直接进行配置的全量配置文件,而是对获取到的目标模组批次标识进行处理,避免了再次读取OTP数据。
这里需要说明的是,UEFI启动阶段和Kernel启动阶段的控制主体不同,在两个阶段的具体屏幕处理过程存在差异,Kernel实际上可以利用自身的部分功能对模组IC进行配置,本申请实施例示出的两种UEFI启动阶段和Kernel启动阶段的交互过程,实际上可以减小两个阶段的屏幕处理过程的差异,例如,前一个实施例中,Kernel启动阶段直接复用全量配置文件,本实施例中,Kernel启动阶段,直接获取UEFI启动阶段获取到的目标模组批次标识,避免再次读取OTP数据。
步骤S304,显示驱动程序调用XML接口程序解析XML配置文件。
步骤S305,显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果。
步骤S306,如果逻辑处理结果为第一结果,显示驱动程序向目标模组IC下发与逻辑处理结果对应的第二目标补丁配置文件。
其中,步骤S304-306的具体实现过程可以参阅UEFI启动阶段的实现过程,本申请实施例对此不予赘述。
这里需要说明的,Kernel启动阶段,显示驱动程序得到模组批次标识后,可以根据模组批次标识对其进行其他基于Kernel自身功能的处理。Kernel启动阶段中,显示驱动程序对模组IC的处理过程包括但不限于上述处理方式。
在一些实施例中,步骤S305之后,还包括步骤S307。
步骤S307,如果逻辑处理结果为第二结果,目标模组IC以初始化代码运行。
这样,XML接口程序可以UEFI启动阶段和Kernel启动阶段交互过程中,在Kernel启动阶段为模组IC定义获取目标模组标识的配置方式,解决了传统接口程序仅能定义一种UEFI启动阶段和Kernel启动阶段的交互方式的问题。
本申请示出的显示模组接口兼容方法,显示驱动调用一种归一化的XML接口程序解析XML配置文件,可以从XML配置文件中获取不同物料批次的模组IC对应的补丁配置文件,并将补丁配置文件下发至目标模组IC,该XML接口程序具有较好的兼容性、可移植性以及可维护性。这样,解决了由于模组IC存在物料批次差异,针对不同物料批次的模组IC,需要匹配不同的接口程序,导致产生大量冗余接口程序的问题。
上述本申请提供的实施例中,从电子设备100的角度对本申请提供的显示模组接口兼容方法的各方案进行了介绍。可以理解的是,电子设备100为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
图11为本申请实施例提供的显示模组接口兼容装置的结构示意图。
如图11所示,本申请实施例提供的显示模组接口兼容装置可以包括:显示屏1001、存储器1002、处理器1003和通信模块1004。上述各器件可以通过一个或多个通信总线1005连接。显示屏1001可以包括显示面板10011和触摸传感器10012,其中,显示面板10011用于显示图像,触摸传感器10012可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型,通过显示面板10011提供与触摸操作相关的视觉输出。处理器1003可以包括一个或多个处理单元,例如:处理器1003可以包括应用处理器,调制解调处理器,图形处理器,图像信号处理器,控制器,视频编解码器,数字信号处理器,基带处理器,和/或神经网络处理器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。存储器1002与处理器1003耦合,用于存储各种软件程序和/或计算机指令,存储器1002可包括易失性存储器和/或非易失性存储器。当处理器执行计算机指令时,显示模组接口兼容装置可执行上述方法实施例中电子设备100执行的各个功能或者步骤。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:电子设备上电,进入统一可扩展固件接口UEFI启动阶段后,引导启动程序Bootloader启动显示驱动程序;显示驱动程序初始化显示模组的目标模组集成电路IC;显示驱动程序获取目标模组IC的目标型号,其中,每个型号的模组IC对应至少一个模组批次标识,模组IC在更改硬件配置或者更改软件配置时,更新模组批次标识;显示驱动程序调用可扩展标记XML接口程序解析预设的XML配置文件,XML配置文件中包括目标型号对应的逻辑处理程序以及至少一个补丁配置文件,逻辑处理程序用于确定目标模组批次标识是否更新,至少一个补丁配置文件用于模组IC在更改硬件配置或者更改软件配置时,修复目标模组IC的初始化代码存在的漏洞;显示驱动程序读取目标模组IC的寄存器OTP数据,得到OTP数据中的目标模组批次标识;显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果;如果逻辑处理结果为第一结果,显示驱动程序向目标模组IC下发与第一结果对应的第一目标补丁配置文件。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:如果逻辑处理结果为第二结果,目标模组IC以初始化代码运行。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:判断目标模组批次标识是否大于或者等于第一预设阈值,第一预设阈值包括至少一个十六进制的数值,每个模组批次标识对应一个第一预设阈值;或者,判断目标模组批次标识是否等于第二预设阈值,第二预设阈值包括至少一个十六进制的数值,每个模组批次标识对应至少一个第二预设阈值。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:第一结果包括目标模组批次标识已更新;第二结果包括目标模组批次标识未更新。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:第一结果包括:目标模组批次标识大于或者等于第一预设阈值,或者,目标模组批次标识等于第二预设阈值;第二结果包括:目标模组批次标识小于第一预设阈值,或者,目标模组批次标识不等于第二预设阈值。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:显示驱动程序将目标模组批次标识配置在内核启动参数Cmdline中;显示驱动程序修改Cmdline,得到修改后的Cmdline,修改后的Cmdline用于指示内核Kernel启动阶段,显示驱动程序获取全量配置文件或者获取目标模组批次标识,全量配置文件包括初始化代码和第一目标补丁配置文件。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:电子设备进入Kermel启动阶段后,Kernel启动显示驱动程序;显示驱动程序初始化目标模组IC;如果修改后的Cmdline指示显示驱动程序获取全量配置文件,显示驱动程序解析修改后的Cmdline,根据修改后的Cmdline获取全量配置文件;显示驱动程序向目标模组IC下发全量配置文件。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:显示驱动程序解析修改后的Cmdline,得到修改后的Cmdline中的第一地址,第一地址包括Bootloader将全量配置文件存储在根文件系统中的地址;显示驱动从第一地址中获取全量配置文件。
在一些实施例中,当存储器1002中的软件程序和/或多组指令被处理器1003运行时,使得该装置用于执行如下方法步骤:电子设备进入Kermel启动阶段后,Kernel启动显示驱动程序;显示驱动程序初始化目标模组IC;如果修改后的Cmdline指示显示驱动程序获取目标模组批次标识,显示驱动程序解析修改后的Cmdline,得到目标模组批次标识;显示驱动程序调用XML接口程序解析XML配置文件;显示驱动程序对目标模组批次标识执行逻辑处理程序,得到逻辑处理结果;如果逻辑处理结果为第一结果,显示驱动程序向目标模组IC下发与逻辑处理结果对应的第二目标补丁配置文件。
本申请实施例还提供一种芯片系统,该芯片系统包括至少一个处理器和至少一个接口电路。处理器和接口电路可通过线路互联。例如,接口电路可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路可用于向其它装置发送信号。示例性的,接口电路可读取存储器中存储的指令,并将该指令发送给处理器。当所述指令被处理器执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种显示模组接口兼容方法,其特征在于,应用于电子设备,包括:
电子设备上电,进入统一可扩展固件接口UEFI启动阶段后,引导启动程序Bootloader启动显示驱动程序;
所述显示驱动程序初始化显示模组的目标模组集成电路IC;
所述显示驱动程序获取所述目标模组IC的目标型号,其中,每个型号的模组IC对应至少一个模组批次标识,所述模组IC在更改硬件配置或者更改软件配置时,更新所述模组批次标识;
所述显示驱动程序调用可扩展标记XML接口程序解析预设的XML配置文件,所述XML配置文件中包括所述目标型号对应的逻辑处理程序以及至少一个补丁配置文件,所述逻辑处理程序用于确定目标模组批次标识是否更新,所述至少一个补丁配置文件用于在所述模组IC更改硬件配置或者更改软件配置时,修复所述目标模组IC的初始化代码存在的漏洞;
所述显示驱动程序读取所述目标模组IC的寄存器OTP数据,得到所述OTP数据中的所述目标模组批次标识;
所述显示驱动程序对所述目标模组批次标识执行所述逻辑处理程序,得到逻辑处理结果;
如果所述逻辑处理结果为第一结果,所述显示驱动程序向所述目标模组IC下发与所述第一结果对应的第一目标补丁配置文件,所述第一结果包括所述目标模组批次标识已更新;
如果所述逻辑处理结果为第二结果,所述目标模组IC以所述初始化代码运行,所述第二结果包括所述目标模组批次标识未更新。
2.根据权利要求1所述的显示模组接口兼容方法,其特征在于,所述逻辑处理程序包括:
判断所述目标模组批次标识是否大于或者等于第一预设阈值,所述第一预设阈值包括至少一个十六进制的数值,每个所述模组批次标识对应一个所述第一预设阈值;
或者,判断所述目标模组批次标识是否等于第二预设阈值,所述第二预设阈值包括至少一个十六进制的数值,每个所述模组批次标识对应至少一个所述第二预设阈值。
3.根据权利要求2所述的显示模组接口兼容方法,其特征在于,
所述第一结果包括:所述目标模组批次标识大于或者等于所述第一预设阈值,或者,所述目标模组批次标识等于所述第二预设阈值;
所述第二结果包括:所述目标模组批次标识小于所述第一预设阈值,或者,所述目标模组批次标识不等于所述第二预设阈值。
4.根据权利要求1所述的显示模组接口兼容方法,其特征在于,所述显示驱动程序对所述目标模组批次标识执行所述逻辑处理程序,得到逻辑处理结果之后,还包括:
所述显示驱动程序将所述目标模组批次标识配置在内核启动参数Cmdline中;
所述显示驱动程序修改所述Cmdline,得到修改后的Cmdline,所述修改后的Cmdline用于指示内核Kernel启动阶段,所述显示驱动程序获取全量配置文件或者获取所述目标模组批次标识,所述全量配置文件包括所述初始化代码和所述第一目标补丁配置文件。
5.根据权利要求4所述的显示模组接口兼容方法,其特征在于,所述显示驱动程序向所述目标模组IC下发与所述逻辑处理结果对应的第一目标补丁配置文件之后,还包括:
电子设备进入Kermel启动阶段后,Kernel启动所述显示驱动程序;
所述显示驱动程序初始化所述目标模组IC;
如果所述修改后的Cmdline指示所述显示驱动程序获取所述全量配置文件,所述显示驱动程序解析所述修改后的Cmdline,根据所述修改后的Cmdline获取所述全量配置文件;
所述显示驱动程序向所述目标模组IC下发所述全量配置文件。
6.根据权利要求5所述的显示模组接口兼容方法,其特征在于,所述显示驱动程序解析所述修改后的Cmdline,根据所述修改后的Cmdline获取所述全量配置文件,包括:
所述显示驱动程序解析所述修改后的Cmdline,得到所述修改后的Cmdline中的第一地址,所述第一地址包括所述Bootloader将所述全量配置文件存储在根文件系统中的地址;
所述显示驱动从所述第一地址中获取所述全量配置文件。
7.根据权利要求4所述的显示模组接口兼容方法,其特征在于,所述显示驱动程序向所述目标模组IC下发与所述逻辑处理结果对应的第一目标补丁配置文件之后,还包括:
电子设备进入Kermel启动阶段后,Kernel启动所述显示驱动程序;
所述显示驱动程序初始化所述目标模组IC;
如果所述修改后的Cmdline指示所述显示驱动程序获取所述目标模组批次标识,所述显示驱动程序解析所述修改后的Cmdline,得到所述目标模组批次标识;
所述显示驱动程序调用所述XML接口程序解析所述XML配置文件;
所述显示驱动程序对所述目标模组批次标识执行所述逻辑处理程序,得到逻辑处理结果;
如果所述逻辑处理结果为所述第一结果,所述显示驱动程序向所述目标模组IC下发与所述第一结果对应的第二目标补丁配置文件。
8.一种电子设备,其特征在于,包括:处理器和存储器;所述存储器存储有程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行如权利要求1-7中任一项所述的显示模组接口兼容方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310595344.0A CN116339821B (zh) | 2023-05-25 | 2023-05-25 | 一种显示模组接口兼容方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310595344.0A CN116339821B (zh) | 2023-05-25 | 2023-05-25 | 一种显示模组接口兼容方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116339821A CN116339821A (zh) | 2023-06-27 |
CN116339821B true CN116339821B (zh) | 2023-10-20 |
Family
ID=86893264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310595344.0A Active CN116339821B (zh) | 2023-05-25 | 2023-05-25 | 一种显示模组接口兼容方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116339821B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116661859B (zh) * | 2023-07-27 | 2023-10-10 | 灵动集成电路南京有限公司 | 一种mcu外设电路模块的驱动方法、装置、终端设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920171A (zh) * | 2018-05-15 | 2018-11-30 | 联想(北京)有限公司 | 固件更新方法及装置、电子设备 |
CN111142711A (zh) * | 2019-12-31 | 2020-05-12 | 惠州Tcl移动通信有限公司 | 一种固件配置方法、装置、存储介质及移动终端 |
CN112905271A (zh) * | 2021-03-04 | 2021-06-04 | 上海升途智能系统有限公司 | 一种应用程序接口api的调用方法、装置及电子设备 |
CN114691397A (zh) * | 2020-12-29 | 2022-07-01 | 深圳市江波龙电子股份有限公司 | 一种磁盘修复方法、装置、电子设备和存储介质 |
CN115543487A (zh) * | 2022-11-25 | 2022-12-30 | 北京得瑞领新科技有限公司 | 基于otp的只读存储器中启动代码扩展方法及芯片 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9547489B2 (en) * | 2014-03-31 | 2017-01-17 | Qualcomm Incorporated | System and method for modifying a sequence of instructions in a read-only memory of a computing device |
US20220391746A1 (en) * | 2021-06-02 | 2022-12-08 | International Business Machines Corporation | Api optimizer using contextual analysis of interface data exchange |
-
2023
- 2023-05-25 CN CN202310595344.0A patent/CN116339821B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920171A (zh) * | 2018-05-15 | 2018-11-30 | 联想(北京)有限公司 | 固件更新方法及装置、电子设备 |
CN111142711A (zh) * | 2019-12-31 | 2020-05-12 | 惠州Tcl移动通信有限公司 | 一种固件配置方法、装置、存储介质及移动终端 |
CN114691397A (zh) * | 2020-12-29 | 2022-07-01 | 深圳市江波龙电子股份有限公司 | 一种磁盘修复方法、装置、电子设备和存储介质 |
CN112905271A (zh) * | 2021-03-04 | 2021-06-04 | 上海升途智能系统有限公司 | 一种应用程序接口api的调用方法、装置及电子设备 |
CN115543487A (zh) * | 2022-11-25 | 2022-12-30 | 北京得瑞领新科技有限公司 | 基于otp的只读存储器中启动代码扩展方法及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN116339821A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10958850B2 (en) | Electronic device and method for capturing image by using display | |
US10469742B2 (en) | Apparatus and method for processing image | |
US10616474B2 (en) | Electronic device including iris recognition sensor and method of operating the same | |
CN112506386B (zh) | 一种折叠屏显示方法及电子设备 | |
CN108353152B (zh) | 图像处理设备及其操作方法 | |
CN110780929B (zh) | 调用硬件接口的方法及电子设备 | |
US10467471B2 (en) | Electronic device and method for authenticating biometric data through plural cameras | |
CN116339821B (zh) | 一种显示模组接口兼容方法及电子设备 | |
CN112087649B (zh) | 一种设备搜寻方法以及电子设备 | |
CN110769094A (zh) | 一种根据后壳颜色显示用户界面的方法和电子设备 | |
CN116723257A (zh) | 一种图像显示方法及电子设备 | |
CN116315667A (zh) | 数据传输方法、装置、设备及存储介质 | |
CN116483734B (zh) | 一种基于编译器的插桩方法、系统及相关电子设备 | |
CN113656089B (zh) | 应用程序中的类验证方法和装置 | |
CN116665751B (zh) | 测试方法及电子设备 | |
US11070736B2 (en) | Electronic device and image processing method thereof | |
CN113784331B (zh) | 更新用户身份识别模块卡系统数据的方法及装置 | |
CN113467821A (zh) | 应用程序的修复方法、装置、设备及可读存储介质 | |
CN116414500A (zh) | 电子设备操作引导信息录制方法、获取方法和终端设备 | |
CN115952564B (zh) | 数据写入方法和终端设备 | |
CN116669020B (zh) | 一种密码管理方法、系统和电子设备 | |
CN116679990B (zh) | 一种服务状态初始化的统一方法及电子设备 | |
CN116592756B (zh) | 折叠屏夹角的检测方法及电子设备 | |
CN115175164B (zh) | 通信控制方法及相关装置 | |
CN117473578A (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 |