发明内容
本发明要解决的技术问题在于,提供一种移动终端的触摸屏固件修复方法和装置,旨在解决现有的移动终端触摸屏固件更新失败导致触摸屏失效的问题。
本发明解决技术问题所采用的技术方案如下:
一种移动终端的触摸屏固件修复方法,其中,包括以下步骤:
A、当移动终端的触摸屏固件更新失败时,重启所述移动终端;
B、读取预先存储的触摸屏的识别ID,根据所述识别ID从驱动程序结构列表中找出与所述触摸屏匹配的驱动程序;
C、将所述驱动程序中与所述识别ID对应的固件数据写入所述触摸屏中;
D、加载所述驱动程序,以完成触摸屏固件修复。
所述的移动终端的触摸屏固件修复方法,其中,在所述步骤A之前还包括:
A0、在触摸屏的触控IC中设置一用于存放触摸屏的识别ID的识别数据存储区。
所述的移动终端的触摸屏固件修复方法,其中,所述步骤B具体包括:
B1、从触摸屏的识别数据存储区读取识别ID;
B2、根据触摸屏的识别ID依次判断驱动程序结构列表中的多个驱动程序是否与触摸屏匹配,找出与触摸屏匹配的驱动程序。
所述的移动终端的触摸屏固件修复方法,其中,所述步骤C具体包括:
C1、根据所述识别ID读入所述驱动程序中对应的固件数据;
C2、清空触摸屏中的FLASH;
C3、每次向所述触摸屏写入1KB的固件数据;
C4、判断所述固件数据是否写完,若写完,则进入步骤C5;若否,则返回步骤C3;
C5、校验所述固件数据是否完整,若否,则返回步骤C2;若是,则执行所述步骤D。
所述的移动终端的触摸屏固件修复方法,其中,所述步骤B还包括:
B3、当从驱动程序结构列表中找不到与所述触摸屏匹配的驱动程序,则返回错误代码。
一种移动终端的触摸屏固件修复装置,其中,包括:
触摸屏判断模块,用于当移动终端的触摸屏固件更新失败时,重启所述移动终端;
驱动匹配模块,用于读取预先存储的触摸屏的识别ID,根据所述识别ID从驱动程序结构列表中找出与所述触摸屏匹配的驱动程序;
固件写入模块,用于将所述驱动程序中与所述识别ID对应的固件数据写入所述触摸屏中;
加载模块,用于加载所述驱动程序,以完成触摸屏固件修复。
所述的移动终端的触摸屏固件修复装置,其中,还包括:
预先设置模块,用于在触摸屏的触控IC中设置一用于存放触摸屏的识别ID的识别数据存储区。
所述的移动终端的触摸屏固件修复装置,其中,所述驱动匹配模块包括:
读取单元,用于从触摸屏的识别数据存储区读取识别ID;
驱动判断单元,用于根据触摸屏的识别ID依次判断驱动程序结构列表中的多个驱动程序是否与触摸屏匹配,找出与触摸屏匹配的驱动程序。
所述的移动终端的触摸屏固件修复装置,其中,所述固件写入模块包括:
固件读入单元,用于根据所述识别ID读入所述驱动程序中对应的固件数据;
清空单元,用于清空触摸屏中的FLASH;
固件写入单元,用于向所述触摸屏写入1KB的固件数据;
固件判断单元,用于判断所述固件数据是否写完;
固件校验单元,用于校验所述固件数据是否完整。
所述的移动终端的触摸屏固件修复装置,其中,所述驱动匹配模块还用于当从驱动程序结构列表中找不到与所述触摸屏匹配的驱动程序,则返回错误代码。
本发明所提供的一种移动终端的触摸屏固件修复方法和装置,有效地解决了现有的移动终端触摸屏固件更新失败导致触摸屏失效的问题,通过当移动终端的触摸屏固件更新失败时,重启所述移动终端;读取预先存储的触摸屏的识别ID,根据所述识别ID从驱动程序结构列表中找出与所述触摸屏匹配的驱动程序;将所述驱动程序中与所述识别ID对应的固件数据写入所述触摸屏中;加载所述驱动程序,以完成触摸屏固件修复;使得重启移动终端时能够自动修复固件损坏的触摸屏,只要触摸屏固件损坏后重启移动终端,就会启动驱动软件中的修复模式,强制进入固件更新程序,把驱动程序中包含的完整的参数重新写入到触控IC中,从而修复已经无效的触摸屏,消除了固件更新导致的返修和退货,提高产品的质量,给用户带来了大大的方便。
具体实施方式
本发明提供一种移动终端的触摸屏固件修复方法和装置,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明提供的移动终端的触摸屏固件修复方法较佳实施例的流程图,如图所示,所述方法包括以下步骤:
步骤S100、当移动终端的触摸屏固件更新失败时,重启所述移动终端;
步骤S200、读取预先存储的触摸屏的识别ID,根据所述识别ID从驱动程序结构列表中找出与所述触摸屏匹配的驱动程序;
步骤S300、将所述驱动程序中与所述识别ID对应的固件数据写入所述触摸屏中;
步骤S400、加载所述驱动程序,以完成触摸屏固件修复。
下面结合具体的实施例对上述步骤进行详细的描述。
在步骤S100中,当移动终端的触摸屏固件更新失败时,重启所述移动终端。
具体来说,在现有的MTK平台中,为了管理同一个项目中的多款触摸屏驱动,MTK建立了一个触摸屏的架构层去管理所有的驱动,目的是能够遍历所有的触摸屏驱动,以达到多款触摸屏兼容的目的。基于MTK平台的移动终端的驱动架构层的控制流程为:将触摸屏(TP)驱动添加到驱动程序结构列表中,然后判断驱动列表当前节点是否为空,若为空,则结束,也就是匹配失败;若不为空,则取出列表中当前驱动,并将驱动列表遍历指针后移。然后再判断取出的当前驱动是否匹配当前TP,若为是,则加载当前驱动,若为否,则继续判断驱动列表当前节点是否为空,即继续依次取出驱动程序结构列表中的驱动程序来与触摸屏(TP)匹配。也就是说,触摸屏的设备驱动程序只有在运行时才会自动添加到驱动列表中,如果系统没有正常加载TP驱动程序,那这个列表就会是空,而且,在进行驱动匹配时列表指针会后移,移到没有数据的尾部后也会是空的,因此需要在检查当前指向的列表节点是否为空,在进行驱动匹配时就会运行从驱动列表当前指针指向的节点中取得的驱动程序,使用此驱动去适配设备,适配失败就退出驱动返回架构层,从驱动列表的下一个节点中获取下一个驱动进行适配。
当检测到有新的固件(FW)时,会先把触摸屏里面的原先的参数全部清除,然后再把新的参数从FW中写到触摸屏的主控IC中,而在更新数据的过程有十几秒钟,而开机界面此时没有任何变化,由于开机见面十几秒钟没有任何变化用户会以为开机失败,强制拔出电池重新上电开机。此时由于旧的参数已经被删除,新的参数未写入,造成触摸屏的主控IC无法运行,触摸屏失效,引起用户返修或退货。
至于如何判断移动终端的触摸屏固件更新失败,通过上述的驱动架构层控制流程可知,当在正常加载匹配完全部驱动后仍然没有匹配成功,这说明触摸屏已经损坏了。具体来说,在驱动加载时设立一个标志,当驱动匹配成功时,就把此标志置位,架构层就通过此标志了解到加载的结果,从而决定是否继续进行下一个触摸屏驱动的匹配,当所有驱动列表中的驱动全部使用完还没有匹配成功,则触摸屏固件更新失败。
由于出问题的设备总是少数,为了所有设备的开机效率,详细的错误检查与信息核对只能在错误机器上进行,要避开正常的设备。因此,需要在驱动架构层设置一个修复模式,当在正常加载匹配完全部驱动后仍然没有匹配成功,说明触摸屏已经损坏了,然后进入修复模式,对每一款驱动都进入触控IC的调试模式进行详细信息匹配。在驱动架构层就通过另一个标志通知各个触摸屏驱动进入修复模式,并且把驱动列表从头重新遍历一遍,每一个触摸屏驱动在匹配时如果匹配成功,就进行触摸屏的参数更新。
在步骤S200中,读取预先存储的触摸屏的识别ID,根据所述识别ID从驱动程序结构列表中找出与所述触摸屏匹配的驱动程序。具体来说,为了让触摸屏在更新参数中损坏的情况下仍然可以被识别,需要在触摸屏的触控IC中设定一个专用的识别数据存储区,而且这个存储区只能在触摸屏出厂时写入,其它任何时候都不容许修改。所述识别数据存储区用于存放供应商的触摸屏的识别ID,而且这部分数据只在触摸屏出厂时与初始参数一起写入,之后不再修改。
具体来说,在架构层正常遍历驱动列表没有匹配成功之后就进入修复模式,并且从头重新遍历驱动列表,如果在修复模式下还没有匹配上,那就是触摸屏的连接线没有连接好,需要重新连接。每当由于意外造成触摸屏的固件更新失败,重启之后在驱动架构层中就会进入修复模式,从而修复触摸屏,而如果触摸屏是正常的,启动时就会在第一次遍历驱动列表时找到匹配当前触摸屏的驱动程序,然后直接退出驱动的加载过程,不会进行第二遍的遍历,防止正常启动时消耗其它时间,影响开机速度。
在每一个驱动程序中,都会加上与驱动匹配的触摸屏的调试模式的开启方式和通信方式,使得触摸屏在调试模式中把保存在专用的识别数据存储区的信息反馈给驱动程序,通过这个专用的识别数据存储区存储的识别ID等信息,便可判定当前驱动是否和当前触摸屏匹配,如果匹配,就进入固件更新阶段,如果不匹配,就返回架构层,读取下一个驱动程序进行适配,直到匹配成功。
在步骤S300中,将所述驱动程序中与所述识别ID对应的固件数据写入所述触摸屏中。具体来说,若根据所述识别ID找出与所述触摸屏匹配的驱动程序,则把对应于ID的参数从驱动自带的参数数据包中取出来,进入驱动自身自带的参数更新程序,强行把对应于当前ID的有效参数写入到触控IC中,在确认写入完成之后,退回到正常流程,并把当前驱动作为触摸屏的运行驱动添加到移动终端的系统中。
在所述步骤S400中,加载所述驱动程序,以完成触摸屏固件修复。具体来说,通过上述步骤便将移动终端触摸屏固件修复好,只需加载所述驱动程序,便可正常使用所述触摸屏。
进一步地,在所述步骤S100之前,还包括:
S90、在触摸屏的触控IC中设置一用于存放触摸屏的识别ID的识别数据存储区。
进一步地,所述步骤S200具体包括:
S210、从触摸屏的识别数据存储区读取识别ID;
S220、根据触摸屏的识别ID依次判断驱动程序结构列表中的多个驱动程序是否与触摸屏匹配,找出与触摸屏匹配的驱动程序。
进一步地,所述步骤S200还包括:
S230、当从驱动程序结构列表中找不到与所述触摸屏匹配的驱动程序,则返回错误代码。
进一步地,所述步骤S300具体包括:
S310、根据所述识别ID读入所述驱动程序中对应的固件数据;
S320、清空触摸屏中的FLASH;
S330、每次向所述触摸屏写入1KB的固件数据;
S340、判断所述固件数据是否写完,若写完,则进入步骤S350;若否,则返回步骤S330;
S350、校验所述固件数据是否完整,若否,则返回步骤S320;若是,则执行所述步骤S400。
具体来说,在步骤S300中首先根据所述识别ID读入所述驱动程序中对应的固件数据,然后清空触摸屏中原有的固件数据,即上述的FLASH。再依次写入所述识别ID对应的固件数据,每次写入1KB,直到所述固件数据写入完毕。然后校验写入的固件数据是否完整,若完整,则进入步骤S400,加载所述驱动程序,以完成触摸屏固件修复;若不完整,则清空触摸屏的原有固件,重新写入。
本发明提供的移动终端的触摸屏固件修复方法,在确认触摸屏已经损坏后,通过修复模式取得预先存储的触摸屏的识别ID,然后把对应于ID的参数从驱动自带的参数数据包中取出来,进入驱动自身自带的参数更新程序,强行把对应于当前ID的有效参数写入到触控IC中,在确认写入完成之后,退回到正常流程,并把当前驱动作为触摸屏的运行驱动添加到系统中,使得只要触摸屏固件损坏的设备重新开机,驱动软件中的修复模式就会启动,强制进入固件更新程序,把驱动程序中包含的完整的参数重新写入到触控IC中,从而修复已经无效的触摸屏,消除了固件更新导致的返修和退货,提高产品的质量;其通过软件实现,实现简单,成本较低,给用户带来了大大的方便。
基于上述移动终端的触摸屏固件修复方法,本发明还提供了一种移动终端的触摸屏固件修复装置,如图2所示,所述装置包括:
触摸屏判断模块10,用于当移动终端的触摸屏固件更新失败时,重启所述移动终端;具体如步骤S100所述;
驱动匹配模块20,用于读取预先存储的触摸屏的识别ID,根据所述识别ID从驱动程序结构列表中找出与所述触摸屏匹配的驱动程序;具体如步骤S200所述;
固件写入模块30,用于将所述驱动程序中与所述识别ID对应的固件数据写入所述触摸屏中;具体如步骤S300所述;
加载模块40,用于加载所述驱动程序,以完成触摸屏固件修复;具体如步骤S400所述。
进一步地,所述的移动终端的触摸屏固件修复装置,其中,还包括:
预先设置模块,用于在触摸屏的触控IC中设置一用于存放触摸屏的识别ID的识别数据存储区。
进一步地,所述驱动匹配模块20包括:
读取单元,用于从触摸屏的识别数据存储区读取识别ID;
驱动判断单元,用于根据触摸屏的识别ID依次判断驱动程序结构列表中的多个驱动程序是否与触摸屏匹配,找出与触摸屏匹配的驱动程序。
进一步地,所述固件写入模块30包括:
固件读入单元,用于根据所述识别ID读入所述驱动程序中对应的固件数据;
清空单元,用于清空触摸屏中的FLASH;
固件写入单元,用于向所述触摸屏写入1KB的固件数据;
固件判断单元,用于判断所述固件数据是否写完;
固件校验单元,用于校验所述固件数据是否完整。
具体来说,所述固件读入单元根据所述识别ID读入所述驱动程序中对应的固件数据,然后通过清空单元清空触摸屏中原有的固件数据,即上述的FLASH。再通过固件写入单元写入所述识别ID对应的固件数据,每次写入1KB,通过固件判断单元判断所述固件数据是否写完,直到所述固件数据写入完毕。然后通过固件校验单元校验写入的固件数据是否完整,若完整,则加载所述驱动程序,以完成触摸屏固件修复;若不完整,则清空触摸屏的原有固件,重新写入。
进一步地,所述的移动终端的触摸屏固件修复装置,其中,所述驱动匹配模块20还用于当从驱动程序结构列表中找不到与所述触摸屏匹配的驱动程序,则返回错误代码。
本发明所述的移动终端为手机或平板电脑等具有触摸屏的移动终端。
综上所述,本发明提供的一种移动终端的触摸屏固件修复方法和装置,通过当移动终端的触摸屏固件更新失败时,重启所述移动终端;读取预先存储的触摸屏的识别ID,根据所述识别ID从驱动程序结构列表中找出与所述触摸屏匹配的驱动程序;将所述驱动程序中与所述识别ID对应的固件数据写入所述触摸屏中;加载所述驱动程序,以完成触摸屏固件修复;使得重启移动终端时能够自动修复固件损坏的触摸屏,只要触摸屏固件损坏后重启移动终端,就会启动驱动软件中的修复模式,强制进入固件更新程序,把驱动程序中包含的完整的参数重新写入到触控IC中,从而修复已经无效的触摸屏,消除了固件更新导致的返修和退货,提高产品的质量,给用户带来了大大的方便,其通过软件实现,实现简单,成本较低。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。