专利名称:一种软件下载方法及终端的制作方法
技术领域:
本发明涉及软件下载技术,尤其涉及一种软件下载方法及终端。
背景技术:
随着通信行业的不断推广,移动终端产品得到了广泛的应用,而且,由于通信技术的飞速发展,用户对产品功能的要求越来越高,这就需要对产品的软件进行不断的升级,当软件版本发现有BUG时,一般通过软件升级方法进行解决,研发人员在进行版本测试验证时,也一般通过软件升级的方法进行版本调试和验证,随着产品的增多,软件升级频率也相应提高。在升级过程中,如果出现断电、正常使用过程中出现文件损坏、由于待验证的软件版本本身存在问题等情况时,会出现终端侧软件升级失败或者不能正常运行的情况,这样, 终端就不能正常工作,也就没法再进行升级和下载。所以,当前对升级的稳定性,以及升级失败后的修复能力提出了更高的要求。现有技术中,一般采用个人电脑(PC)侧的下载工具对终端进行升级,升级失败后,无法通过PC侧进行直接的修复,虽然可以通过JTAG方式完成对终端的软件修复,但是, JTAG方式需要使用专门的工具,这种工具价格昂贵,只有在研发调试,或者少数售后维修点才能够提供,因此,对于用户升级失败的情况,修复的很少。并且,在版本下载过程中,由于误操作或者是版本本身存在问题,导致下载失败,而且无法继续下载,此时,只能用TRACE 等工具进行擦除及重新下载,下载效率低且会造成资源浪费。另外,目前有些终端平台的主控芯片集成了 NAND FLASH控制器,主控芯片在启动时会运行一段固化在芯片中的ROM代码,以检测并加载NANDFLASH中的代码,如果在此过程中发现问题,ROM中的代码会进入紧急下载模式,提供一个可供下载的紧急端口。图I为现有一终端正常开机后的流程示意图,如图I所示,该流程包括开机启动后,主控芯片跳转至内部的ROM并执行。内部的ROM进行相应的初始化, 完成初始化后,主控芯片通过NAND FLASH控制器进行对NAND FLASH的检测,包括对NAND FLASH是否存在和有效的检测及其BOOTLOADER是否存在和有效的检测;当检测通过后,主控芯片加载NAND FLASH中的BOOTLOADER代码到内存,并运行加载到内存的BOOTLOADER代码,BOOT LOADER最后会加载片上的操作系统,并把控制权交给片上的操作系统。此时,整个终端就完成了启动过程,最后操作系统启动上层应用,提供相应的功能。当检测失败(如无NAND FLASH,NAND FLASH 中无 BOOTLOADER、或 BOOTLOADER 格式不正确)后,主控芯片会跳到紧急模式下进行处理,此时,如果连接到PC,将出现紧急下载端口,通过使用特定的PC侧软件,可以继续下载代码。可以看出,当NAND FLASH存在且其BOOTLOADER格式正确,这时,NAND FLASH及 BOOTLOADER将能通过内部ROM的检测,但如果BOOTLOADER只是格式(代码的特征值)正确,而内容并不正确,或者说,BOOTLOADER正常,NAND FLASH中操作系统的版本不全或者不正确。最终,整个系统能通过内部的ROM的检测,但实际上板侧的软件却不能正常工作。在这种情况下,终端侧软件将会进行正常的启动流程,但实际上却无法正常工作,也就无法在正常的流程下进行下载和下载版本。换言之,固化在芯片中的ROM代码检测时,一般只验证NAND FLASH中是否有代码,或者只验证代码的特征值是否合法,并不能验证整个代码是否完备或者代码中是否存在错误及逻辑问题。而当下载失败或版本本身存在问题时,存在于NAND FLASH中的数据和代码可能不全,也可能有错误,但代码的特征值一般是合法的,这样,固化在芯片中的ROM代码进行检测时,很可能会通过检测,然后运行NAND FLASH并不完备的代码,这样,终端侧软件还是没法正常运行,也就没法继续下载和下载。
发明内容
有鉴于此,本发明的主要目的在于提供一种软件下载方法及终端,能够在软件下载失败后,快速进行修复,保障软件下载顺利进行,提高软件下载效率,且操作简便。为达到上述目的,本发明的技术方案是这样实现的一种软件下载方法,包括终端侧软件下载失败或下载的软件无法正常工作时,使主控芯片检测不到闪存, 或使主控芯片检测到闪存失效;终端重启后,主控芯片检测不到闪存或检测到闪存失效,则开启紧急下载端口 ;使主控芯片能正常检测闪存状态并识别闪存,之后采用所述紧急下载端口继续进行软件下载。所述主控芯片检测到闪存失效为主控芯片检测到闪存在设定时间内的状态为忙碌。所述使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为通过点按预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效。所述预设键控制闪存的EBI2_BUSY0_N引脚上设置的对地常开开关,或者,控制闪存的电源引脚与实际电源的连接线上设置的常闭开关,或者,控制在闪存的CE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的RE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的CLK引脚的连接线上设置的常闭开关,或者,控制连接闪存的RST引脚与地的常开开关。一种终端,其包括检测控制单元、主控芯片和闪存;其中,所述检测控制单元,用于在终端侧软件下载失败或下载的软件无法正常工作时, 使主控芯片检测不到闪存,或使主控芯片检测到闪存失效;所述主控芯片,用于在终端启动时,对闪存进行检测,在检测不到闪存或检测到闪存失效时,开启紧急下载端口 ;之后,能正常检测闪存状态并识别闪存时,采用所述紧急下载端口继续进行软件下载;所述闪存,用于存储下载的软件数据。所述主控芯片检测到闪存失效为主控芯片检测到闪存在设定时间内的状态为忙碌。所述检测控制单元使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为 通过预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效。
所述检测控制单元通过预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为所述预设键控制闪存的EBI2_BUSY0_N引脚上设置的对地常开开关,或者,控制闪存的电源引脚与实际电源的连接线上设置的常闭开关,或者,控制在闪存的CE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的RE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的CLK引脚的连接线上设置的常闭开关,或者,控制连接闪存的RST引脚与地的常开开关。本发明软件下载方法及终端,终端侧软件下载失败或下载的软件无法正常工作时,使主控芯片检测不到闪存,或使主控芯片检测到闪存失效;终端重启后,主控芯片检测不到闪存或检测到闪存失效,则开启紧急下载端口 ;使主控芯片能正常检测闪存状态并识别闪存,之后采用所述紧急下载端口继续进行软件下载。通过本发明,能够在软件下载失败后,快速进行修复,保障软件下载顺利进行,提高软件下载效率,且操作简便。
图I为现有一终端正常开机后的流程示意图2为本发明实施例一种软件下载方法流程示意图3为本发明方法实施例的具体流程图4为本发明实施例一种硬件设计原理示意图5为实现本发明的另一种硬件设计原理示意图6为实现本发明的再一种硬件设计原理示意图7为实现本发明的再一种硬件设计原理示意图8为实现本发明的再一种硬件设计原理示意图9为实现本发明的再一种硬件设计原理示意图;。
具体实施方式
为了解决背景技术所述的问题,本发明考虑通过硬件设计来产生一种特定场景,
软件下载失败或下载的软件无法正常工作的情况下,使固化在主控芯片中的ROM代码检测时,认为闪存无效,或者检测不到闪存,这样,闪存将无法通过ROM中的代码的检测,进而使终端进入紧急下载模式,提供一个可供下载的紧急端口,以继续进行软件下载,这样,既不需使用TRACE等工具重新下载,也不需要通过JTAG方式进行修复。下面以NAND FLASH为例进行说明,但是,本发明并不限于NAND FLASH进行存储的情况,还可以应用于其他闪存进行存储的情况。图2为本发明实施例一种软件下载方法流程示意图,如图2所示,该方法包括步骤201 :终端侧软件下载失败或下载的软件无法正常工作。步骤202 :使主控芯片检测不到NAND FLASH,或使主控芯片检测到NAND FLASH失效。 这里,所述使主控芯片检测不到NAND FLASH,或使主控芯片检测到NAND FLASH失效可以为通过点按预设键使主控芯片检测不到NAND FLASH,或使主控芯片检测到NANDFLASH失效。步骤203 :终端重启,主控芯片检测不到NAND FLASH或检测到NAND FLASH失效, 则开启紧急下载端口。这里,如果主控芯片检测到NAND FLASH在设定时间内的状态为忙碌,则认为NAND FLASH失效。步骤204 :使主控芯片能正常检测NAND FLASH状态并识别NAND FLASH。这里,使主控芯片能正常检测NAND FLASH状态并识别NAND FLASH可以为松开预设键使主控芯片能正常检测NAND FLASH状态并识别NAND FLASH。步骤205 :采用所述紧急下载端口继续进行软件下载。本发明方法实施例的具体流程图如图3所示。为了实现上面描述的功能,可以使用低成本的电子元器件构成上述功能的硬件。 目的是,当下载失败后无法继续下载时,通过简单的控制(如点按按键),让固化在芯片中的ROM代码检测不到NAND FLASH或者检测到NAND FLASH无效。所用硬件装置举实施例说明如下,但不限于下文的说明及附图。图4为本发明实施例一种硬件设计原理示意图,如图4所示,基于高通MDM8200A 平台,在硬件设计中,可以在NAND FLASH的EBI2_BUSY0_N引脚上加上对地按键 BI-BUTTON (修复键),此按键是一个对地常开开关,图中VCC_GENP为上拉电源,配合电阻R 为NAND FLASH的EBI2_BUSY0_N提供上拉。可以看出,当NAND FLASH空闲时,高电平信号被输入到主控芯片,用于检测NAND FLASH的当前状态。当修复键没有被按下时,NAND FLASH的EBI2_BUSY0_N引脚与主控为正常的连接, 因此,在正常工作模式下,此电路并不影响终端的功能。当修复键被按下时,NAND FLASH的 EBI2_BUSY0_N引脚被强制为低电平,此时,主控检测到的永远是NAND FLASH没有准备好, 一直处于忙的状态,因此,主控芯片在一定时间后会认为NAND FLASH已失效,表现为主控芯片检测不到NAND FLASH。需要说明的是,在设计上,修复键一般安放在比较隐蔽的地方,在正常工作情况下不易被误按下,而只有在无法用正常的方法进行升级时,点按才能触及。基于图4所示的结构,本发明的流程可以具体为I)首先按下设计的按键B1-BUTT0N,此时,NAND FLASH的EBI2_BUSY0_N被强制下拉到地,因此,不管NAND FLASH内部是否是忙状态,其对主控芯片的输出表现一直为忙。2)然后再进行开机启动,主控芯片会跳转至内部的ROM并执行。内部的ROM进行相应的初始化后,会对NAND FLASH及其BOOTLOADER进行检测,但由于按键B1-BUTT0N被按下, NAND FLASH反馈给主控芯片的状态在按键放开前一直会是忙,因此,当主控芯片检测NAND FLASH时,发现NAND FLASH 一直是忙,一段时间后,检测过程就会失败,认为NAND FLASH已经失效,从而进入紧急下载流程,会出现紧急下载端口。3)紧急下载端口出现后,为了能够把代码下载到NAND FLASH,此时,应该松开按键,让主控芯片能正常检测NAND FLASH状态并识别NAND FLASH。4)最后,开启PC侧的下载软件,选择相应的紧急下载端口,继续进行版本下载和升级。升级成功后,再重启,就可以按正常启动流程进行开机启动。图5是实现本发明的另一种硬件设计原理示意图,如图5所示,在NAND FLASH的电源引脚与实际电源的连接线中串一个常闭开关,一般情况下,常闭开关是接通的,因此电源能正常为NAND FLASH供电,不影响NAND FLASH的功能。当不能正常下载时,只需按下相应按键,打开常闭开关,再进行开机动作,这时,NAND FLASH的电源引脚与电源断开,主控芯片会找不到NANDFLASH,或发现NAND FLASH异常,此时,固化在芯片中的ROM代码会跳到紧急下载模式,进入紧急模式后,再松开按键,使NAND FLASH正常上电,从而实现在紧急模式下的下载。图6是实现本发明的再一种硬件设计原理示意图,如图6所示,在NAND FLASH的 CE_N引脚的连接线中串一个常闭开关,一般情况下,常闭开关是接通的,因此,不影响NAND FLASH的功能,其实现原理和图5相似,当不能正常下载时,只需按下相应按键,打开常闭开关,再进行开机动作,便可进入紧急模式进行下载。图7是实现本发明的再一种硬件设计原理示意图,如图7所示,在NAND FLASH的 RE_N引脚的连接线中串一个常闭开关,一般情况下,常闭开关是接通的,因此,不影响NAND FLASH的功能。其实现原理和图5相似,当不能正常下载时,只需按下相应按键,打开常闭开关,再进行开机动作,便可进入紧急模式进行下载。图8是实现本发明的再一种硬件设计原理示意图,如图8所示,在NAND FLASH的 CLK引脚的连接线中串一个常闭开关,一般情况下,常闭开关是接通的,因此,不影响NAND FLASH的功能。其实现原理和图5相似,当不能正常下载时,只需按下相应按键,打开常闭开关,再进行开机动作,便可进入紧急模式进行下载。图9是实现本发明的再一种硬件设计原理示意图,如图9所示,通过一个常开开关,把NAND FLASH的RST引脚与地相连。一般情况下,常开开关是断开的,因此不影响NAND FLASH的功能。当不能正常下载时,只需按下常开开关,再进行开机动作,便可进入紧急模式进行下载。本发明还相应地提出一种终端,该终端包括检测控制单元、主控芯片和闪存;其中,所述检测控制单元,用于在终端侧软件下载失败或下载的软件无法正常工作时, 使主控芯片检测不到闪存,或使主控芯片检测到闪存失效;所述主控芯片,用于在终端启动时,对闪存进行检测,在检测不到闪存或检测到闪存失效时,开启紧急下载端口 ;之后,能正常检测闪存状态并识别闪存时,采用所述紧急下载端口继续进行软件下载;所述闪存,用于存储下载的软件数据。所述主控芯片检测到闪存失效为主控芯片检测到闪存在设定时间内的状态为忙碌。所述检测控制单元使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为 通过预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效。所述检测控制单元通过预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为所述预设键控制闪存的EBI2_BUSY0_N引脚上设置的对地常开开关,或者,控制闪存的电源引脚与实际电源的连接线上设置的常闭开关,或者,控制在闪存的CE_N引脚的连接线上设置的常闭开关,
或者,控制在闪存的RE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的CLK引脚的连接线上设置的常闭开关,或者,控制连接闪存的RST引脚与地的常开开关。可以看出,本发明通过使用低成本的硬件电路,可以在软件升级失败后,通过简单切换开关或点按键,能继续下载。而不需TRACE重新下载版本,也不需要通过JTAG方式进行修复。以上所述仅为本发明的具体实施方式
而已,并非用于限定本发明的范围。
权利要求
1.一种软件下载方法,其特征在于,该方法包括终端侧软件下载失败或下载的软件无法正常工作时,使主控芯片检测不到闪存,或使主控芯片检测到闪存失效;终端重启后,主控芯片检测不到闪存或检测到闪存失效,则开启紧急下载端口 ;使主控芯片能正常检测闪存状态并识别闪存,之后采用所述紧急下载端口继续进行软件下载。
2.根据权利要求I所述的软件下载方法,其特征在于,所述主控芯片检测到闪存失效为主控芯片检测到闪存在设定时间内的状态为忙碌。
3.根据权利要求I或2所述的方法,其特征在于,所述使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为通过点按预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效。
4.根据权利要求3所述的方法,其特征在于,所述预设键控制闪存的EBI2_BUSY0_N引脚上设置的对地常开开关,或者,控制闪存的电源引脚与实际电源的连接线上设置的常闭开关,或者,控制在闪存的CE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的RE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的CLK引脚的连接线上设置的常闭开关,或者,控制连接闪存的RST引脚与地的常开开关。
5.—种终端,其特征在于,该终端包括检测控制单兀、王控芯片和闪存;其中,所述检测控制单元,用于在终端侧软件下载失败或下载的软件无法正常工作时,使主控芯片检测不到闪存,或使主控芯片检测到闪存失效;所述主控芯片,用于在终端启动时,对闪存进行检测,在检测不到闪存或检测到闪存失效时,开启紧急下载端口 ;之后,能正常检测闪存状态并识别闪存时,采用所述紧急下载端口继续进行软件下载;所述闪存,用于存储下载的软件数据。
6.根据权利要求5所述的终端,其特征在于,所述主控芯片检测到闪存失效为主控芯片检测到闪存在设定时间内的状态为忙碌。
7.根据权利要求5或6所述的终端,其特征在于,所述检测控制单元使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为通过预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效。
8 根据权利要求7所述的终端,其特征在于,所述检测控制单元通过预设键使主控芯片检测不到闪存,或使主控芯片检测到闪存失效为所述预设键控制闪存的EBI2_BUSY0_N引脚上设置的对地常开开关,或者,控制闪存的电源引脚与实际电源的连接线上设置的常闭开关,或者,控制在闪存的CE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的RE_N引脚的连接线上设置的常闭开关,或者,控制在闪存的CLK引脚的连接线上设置的常闭开关,或者,控制连接闪存的RST引脚与地的常开开关。
全文摘要
本发明公开了一种软件下载方法,包括终端侧软件下载失败或下载的软件无法正常工作时,使主控芯片检测不到闪存,或使主控芯片检测到闪存失效;终端重启后,主控芯片检测不到闪存或检测到闪存失效,则开启紧急下载端口;使主控芯片能正常检测闪存状态并识别闪存,之后采用所述紧急下载端口继续进行软件下载。本发明还相应地公开了一种终端。通过本发明,能够在软件下载失败后,快速进行修复,保障软件下载顺利进行,提高软件下载效率,且操作简便。
文档编号G06F11/07GK102609325SQ20121000601
公开日2012年7月25日 申请日期2012年1月10日 优先权日2012年1月10日
发明者孙科军 申请人:中兴通讯股份有限公司