专利名称:一种防止lcd自动识别失效的方法
技术领域:
本发明涉及嵌入式设备的IXD显示领域,尤其涉及的是一种防止IXD自动识别失效的方法。
背景技术:
在嵌入式设备中,通常同一款设备需要匹配几种不同的IXD,设备在IXD的驱动管理上,通常是通过开机时读取IXD驱动芯片ID,再通过ID进行匹配对应的IXD驱动。LCD驱动芯片ID的读取对读时序要求较高,如果开机时ID读取错误,可能会导致 IXD驱动匹配错误,从而导致设备显示异常。随着产品的竟争激烈,IXD厂家通常也会采取一些降成本做法,对IXD的品质一致性有所影响.这样就有出现在生产出货时检测LCD显示都是正常,但是在终端使用时,会偶发出现开机时因读取IXD的ID不对,导致显示异常,重新开机后又恢复正常等等不良情况。因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种防止LCD自动识别失效的方法,以便解决因LCD的ID读取失败导致显示异常的问题。本发明解决技术问题所采用的技术方案如下
一种防止IXD自动识别失效的方法,其特征在于,包括步骤
A、系统开机后判断是否有外部操作对LCD驱动芯片ID进行重新识别;
B、如果有,则系统调用第一识别过程对LCD驱动芯片ID进行识别;否则,系统从自身的 NVRAM中读取IXD驱动芯片ID自动识别的结果;
C、系统对从NVRAM中读取的LCD驱动芯片ID自动识别的结果进行判断,如果自动识别的结果不正常,则继续调用第一识别过程对IXD驱动芯片ID进行识别;
D、如果系统对读取的LCD驱动芯片ID自动识别结果判断为正常,则调用第二识别过程对LCD驱动芯片ID进行识别,并将该识别结果保存到系统的NVRAM中。所述的方法,其中,所述步骤C之后还包括步骤
如果识别结果正常,则系统直接调用第二识别过程对IXD驱动芯片ID进行识别,并将识别结果保存到系统的NVRAM中。所述的方法,其中,系统对LCD驱动芯片ID识别时,首先预定义一数据结构,所述数据结构包括读取IXD驱动芯片ID的指针函数、表示IXD驱动芯片ID的变量以及IXD驱动芯片对应的驱动函数结构体。所述的方法,其中,系统建立并存储有一自动识别列表,所述自动识别列表包括与系统匹配的各个IXD驱动芯片的ID,在有新的与系统匹配的IXD驱动芯片时,将该IXD驱动芯片ID添加到所述自动识别列表中。所述的方法,其中,所述NVRAM中的LCD驱动芯片ID自动识别结果为系统中存储
3有适配该系统的IXD驱动芯片ID。所述的方法,其中,所述第一识别过程包括步骤
E1、遍历NVRAM中存储的自动识别列表中的LCD驱动芯片ID,同时系统调用预定义数据结构的LCD驱动芯片ID的指针函数,读取当前设备的LCD驱动芯片ID,并将当前设备的 IXD驱动芯片ID与自动识别列表中设定的IXD驱动芯片ID进行比较;
E2、如果从自动识别列表中读取的LCD驱动芯片ID与自动识别列表中设定的LCD驱动芯片ID相同,将LCD驱动芯片对应的驱动函数结构体挂载到系统驱动结构体。所述的方法,其中,第一识别过程包括步骤
E3、如果从自动识别列表中读取的LCD驱动芯片ID与自动识别列表中设定的LCD驱动芯片ID不相同,则继续读取自动识别列表中的LCD驱动芯片ID。所述的方法,其中,所述第二识别过程包括步骤
F1、遍历NVRAM中存储的自动识别列表中的IXD驱动芯片ID,并将该IXD驱动芯片ID 与从NVRAM中读取的IXD驱动芯片ID自动识别结果相匹配;
F2、如果匹配结果显示两者相同,则将LCD驱动芯片对应的驱动函数结构体挂载到系统驱动结构体。所述的方法,其中,第二识别过程包括步骤
F3、如果匹配结果显示两者不相同,则继续读取自动识别列表中的IXD驱动芯片ID。所述的方法,其中,所述外部操作为按键操作。本发明所提供的防止LCD自动识别失效的方法,系统开机后判断是否有外部操作对IXD驱动芯片ID进行重新识别;如果有,则系统调用第一识别过程对IXD驱动芯片ID进行识别;否则,系统从自身的NVRAM中读取LCD驱动芯片ID自动识别的结果;并对该结果进行判断,如果自动识别的结果不正常,则继续调用第一识别过程对LCD驱动芯片ID进行识别;判断结果为正常,则调用第二识别过程对LCD驱动芯片ID进行识别,并将该识别结果保存到系统的NVRAM中,这样能够很好的防止在设备开机时LCD自动识别的失效,使开机时能够正确的调用IXD的驱动程序,以便IXD正常显示。
图1是本发明实施例的防止LCD自动识别失效的方法流程图。图2是本发明实施例的防止LCD自动识别失效的方法的另一个实施例的流程图。图3是本发明实施例的第一识别过程的一个实施例的方法流程图。图4是本发明实施例的第二识别过程的一个实施例的方法流程图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。NVRAM称为非易失性随机访问存储器(Non-Volatile feindom Access Memory),是指断电后仍能保持数据的一种RAM。本发明提供的防止IXD自动识别失效的方法,如图1所示,主要包括以下步骤S100、系统开机后判断是否有外部操作对LCD驱动芯片ID进行重新识别。所述外部操作为按键操作,及用户自行识别LCD,当然也可以为其他的操作。S200、如果有,则系统调用第一识别过程对IXD驱动芯片ID进行识别;否则,系统从自身的NVRAM中读取IXD驱动芯片ID自动识别的结果。S300、系统对从NVRAM中读取的IXD驱动芯片ID自动识别的结果进行判断,如果自动识别的结果不正常,则继续调用第一识别过程对LCD驱动芯片ID进行识别。S400、如果系统对读取的IXD驱动芯片ID自动识别结果判断为正常,则调用第二识别过程对LCD驱动芯片ID进行识别,并将该识别结果保存到系统的NVRAM中。其中,在步骤S200之后还包括步骤
如果识别结果正常,则系统直接调用第二识别过程对LCD驱动芯片ID进行识别,并将识别结果保存到系统的NVRAM中。优选地,系统对IXD驱动芯片ID识别时,首先预定义一数据结构,所述数据结构包括读取IXD驱动芯片ID的指针函数、表示IXD驱动芯片ID的变量以及IXD驱动芯片对应的驱动函数结构体,
所述数据结构如下
Struct Led—match
{
Led—read—id getid; Kal—unitl6 device—id; LCD—Funcs 氺led—funcs;
}o在本发明实施例中,系统本身建立并存储有一自动识别列表,所述自动识别列表包括与系统匹配的各个LCD驱动芯片的ID,在有新的与系统匹配的LCD驱动芯片时,将该 IXD驱动芯片ID添加到所述自动识别列表中,在读取该列表时,通过结构体LccLmatch读取每个型号的IXD驱动芯片ID。所述建立自动识别列表的程序如下
Struct Led—match match—led[]=
{
{
Read_vendor_id_ITI9225C, 0x9225,&LCD_func_ITI9225C
},
{
Read_vendor_id_ST7735R, 0x7735,&LCD_func_ST7735R
},
{
Read_vendor_id_ITI9163DS, 0x9163,&LCD_func_ITI9163DS
}, };
从上面的结构体变量match_lcd可以看出,其包括的IXD驱动芯片的型号有3种,分别是 ITI9225C、ST7735R, ITI9163DS,他们的 ID 分别为 0x9225,0x7735,0x9163,当然,LCD 驱
动芯片的型号可以有很多种,并不限于上述的3种。优选地,本发明提供的防止LCD自动识别失效的方法的另一个实施例,其软件流程图如图2所示,
首先,系统在开机后判断外部重新识别条件是否成立,如果成立则调用自动识别LCD 过程,也即是第一识别过程,并将IXD识别结果保存到NVRAM中。如果判断外部重新识别条件不成立,则系统直接从NVRAM中读取LCD识别结果,并判断读取的IXD识别结果是否正常,如果不正常则再次调用自动识别IXD过程,如果正常则调用手动识别IXD过程,也即是第二识别过程,并将IXD识别结果保存到NVRAM中,结束IXD 识别。在本发明实施例中,所述NVRAM中的LCD驱动芯片ID自动识别结果为系统中存储有适配该系统的IXD驱动芯片ID。其中,所述第一识别过程为自动识别IXD过程,具体包括以下步骤
步骤S11、遍历NVRAM中存储的自动识别列表中的LCD驱动芯片ID,同时系统调用预定义数据结构的LCD驱动芯片ID的指针函数,读取当前设备的LCD驱动芯片ID,并将当前设备的IXD驱动芯片ID与自动识别列表中设定的IXD驱动芯片ID进行比较。步骤S12、如果从自动识别列表中读取的LCD驱动芯片ID与自动识别列表中设定的LCD驱动芯片ID相同,将LCD驱动芯片对应的驱动函数结构体挂载到系统驱动结构体。其中,第一识别过程还包括步骤
步骤S13、如果从自动识别列表中读取的LCD驱动芯片ID与自动识别列表中设定的 LCD驱动芯片ID不相同,则继续读取自动识别列表中的LCD驱动芯片ID。本发明还提供的上述自动识别过程的另一个实施例,其流程图如图3所示, 首先,进入自动识别IXD过程后,遍历IXD自动识别列表,并判断是否到IXD自动识别
列表最后一项,如果是则直接退出自动识别LCD过程,然后判断getid的结果是否等于对应项中的devicejd,如果不等则读取LCD自动识别列表中的下一项,如果相等,则将对应项中lccLfimcs挂载到系统驱动结构体,供系统加载驱动使用。同时,本发明实施例中的所述第二识别过程为手动识别IXD过程,主要包括以下步骤
步骤S21、遍历NVRAM中存储的自动识别列表中的IXD驱动芯片ID,并将该IXD驱动芯片ID与从NVRAM中读取的IXD驱动芯片ID自动识别结果相匹配。步骤S22、如果匹配结果显示两者相同,则将IXD驱动芯片对应的驱动函数结构体挂载到系统驱动结构体。其中,所述第二识别过程还包括步骤
步骤S23、如果匹配结果显示两者不相同,则继续读取自动识别列表中的LCD驱动芯片ID。本发明还提供的上述手动识别IXD过程的另一个实施例,其流程图如图4所示, 首先,进入手动识别IXD过程后,遍历IXD自动识别列表,并判断是否到IXD自动识别
列表最后一项,如果是则直接退出手动识别LCD过程,然后判断NVRAM中保存的结果是否等于对应项中的devicejd,如果不等则读取LCD自动识别列表中的下一项,如果相等,则将对应项中lccLfimcs挂载到系统驱动结构体,供系统加载驱动使用。本发明所提供的防止LCD自动识别失效的方法,系统开机后判断是否有外部操作对IXD驱动芯片ID进行重新识别;如果有,则系统调用第一识别过程对IXD驱动芯片ID进行识别;否则,系统从自身的NVRAM中读取LCD驱动芯片ID自动识别的结果;并对该结果进行判断,如果自动识别的结果不正常,则继续调用第一识别过程对LCD驱动芯片ID进行识别;判断结果为正常,则调用第二识别过程对LCD驱动芯片ID进行识别,并将该识别结果保存到系统的NVRAM中,这样能够很好的防止在设备开机时LCD自动识别的失效,使开机时能够正确的调用IXD的驱动程序,以便IXD正常显示。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种防止IXD自动识别失效的方法,其特征在于,包括步骤A、系统开机后判断是否有外部操作对LCD驱动芯片ID进行重新识别;B、如果有,则系统调用第一识别过程对LCD驱动芯片ID进行识别;否则,系统从自身的 NVRAM中读取IXD驱动芯片ID自动识别的结果;C、系统对从NVRAM中读取的LCD驱动芯片ID自动识别的结果进行判断,如果自动识别的结果不正常,则继续调用第一识别过程对IXD驱动芯片ID进行识别;D、如果系统对读取的LCD驱动芯片ID自动识别的结果判断为正常,则调用第二识别过程对LCD驱动芯片ID进行识别,并将该识别结果保存到系统的NVRAM中。
2.根据权利要求1所述的方法,其特征在于,所述步骤C之后还包括步骤如果识别结果正常,则系统直接调用第二识别过程对IXD驱动芯片ID进行识别,并将识别结果保存到系统的NVRAM中。
3.根据权利要求1所述的方法,其特征在于,系统对LCD驱动芯片ID识别时,首先预定义一数据结构,所述数据结构包括读取LCD驱动芯片ID的指针函数、表示LCD驱动芯片ID 的变量以及LCD驱动芯片对应的驱动函数结构体。
4.根据权利要求1所述的方法,其特征在于,系统建立并存储有一自动识别列表,所述自动识别列表包括与系统匹配的各个LCD驱动芯片的ID,在有新的与系统匹配的LCD驱动芯片时,将该LCD驱动芯片ID添加到所述自动识别列表中。
5.根据权利要求1所述的方法,其特征在于,所述NVRAM中的LCD驱动芯片ID自动识别的结果为系统中存储有适配该系统的LCD驱动芯片ID。
6.根据权利要求1所述的方法,其特征在于,所述第一识别过程包括步骤E1、遍历NVRAM中存储的自动识别列表中的LCD驱动芯片ID,同时系统调用预定义数据结构的LCD驱动芯片ID的指针函数,读取当前设备的LCD驱动芯片ID,并将当前设备的 IXD驱动芯片ID与自动识别列表中设定的IXD驱动芯片ID进行比较;E2、如果从自动识别列表中读取的LCD驱动芯片ID与自动识别列表中设定的LCD驱动芯片ID相同,将LCD驱动芯片对应的驱动函数结构体挂载到系统驱动结构体。
7.根据权利要求6所述的方法,其特征在于,第一识别过程还包括步骤E3、如果从自动识别列表中读取的LCD驱动芯片ID与自动识别列表中设定的LCD驱动芯片ID不相同,则继续读取自动识别列表中的LCD驱动芯片ID。
8.根据权利要求1所述的方法,其特征在于,所述第二识别过程包括步骤F1、遍历NVRAM中存储的自动识别列表中的IXD驱动芯片ID,并将该IXD驱动芯片ID 与从NVRAM中读取的IXD驱动芯片ID自动识别的结果相匹配;F2、如果匹配结果显示两者相同,则将LCD驱动芯片对应的驱动函数结构体挂载到系统驱动结构体。
9.根据权利要求8所述的方法,其特征在于,第二识别过程还包括步骤F3、如果匹配结果显示两者不相同,则继续读取自动识别列表中的IXD驱动芯片ID。
10.根据权利要求1所述的方法,其特征在于,所述外部操作为按键操作。
全文摘要
本发明公开了一种防止LCD自动识别失效的方法,系统开机后判断是否有外部操作对LCD驱动芯片ID进行重新识别;如果有,则系统调用第一识别过程对LCD驱动芯片ID进行识别;否则,系统从自身的NVRAM中读取LCD驱动芯片ID自动识别的结果;并对该结果进行判断,如果自动识别的结果不正常,则继续调用第一识别过程对LCD驱动芯片ID进行识别;判断结果为正常,则调用第二识别过程对LCD驱动芯片ID进行识别,并将该识别结果保存到系统的NVRAM中,这样能够很好的防止在设备开机时LCD自动识别的失效,使开机时能够正确的调用LCD的驱动程序,以便LCD正常显示。
文档编号G09G3/36GK102411915SQ20111038711
公开日2012年4月11日 申请日期2011年11月29日 优先权日2011年11月29日
发明者陈增灼 申请人:康佳集团股份有限公司