一种eMMC量产工具的固件升级方法及装置
技术领域
本发明涉及存储技术领域,尤其涉及一种eMMC量产工具的固件升级方法及装置。
背景技术
eMMC(Embedded Multi Media Card)为MMC协会所订立的、主要是针对手机或平板电脑等产品的内嵌式存储器标准规格,由一个嵌入式存储解决方案组成,带有MMC(多媒体卡)接口、快闪存储器(nand-flash)及eMMC控制器。eMMC的一个明显优势是在封装中集成了一个eMMC控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。越来越多的移动设备采用eMMC作为存储单元。
eMMC产品的量产工具在工厂使用时,当遇到工具bug或二次开发时,需要更新量产工具。目前,对于量产工具升级,通常需要将量产工具进行拆卸,使用专用的升级工具与母板进行连接,通过连接,向母板写入升级信息,以实现对量产工具的升级。上述方法需要对量产工具的机台进行拆卸,不仅操作繁琐,而且也容易导致出现错误。
发明内容
有鉴于此,本发明实施例提供了一种eMMC量产工具的固件升级方法及装置,以实现的方便准确的对eMMC量产工具的固件升级的目的。
第一方面,本发明实施例提供了一种eMMC量产工具的固件升级方法,包括:
通过上位机将固件升级数据发送至下位机的母板和\或子板的设定位置,并置起下位机母板和\或子板的升级标识;
在下位机重新上电启动时,在检测到下位机母板和\或子板的升级标识时,将所述固件升级数据迁移至固件执行片段存储区域;
执行所述固件升级数据。
进一步的,所述通过上位机将固件升级数据发送至下位机的母板和\或子板的设定位置,包括:
通过上位机将固件升级数据发送至下位机的母板和\或子板的临时片段存储区域。
进一步的,所述方法还包括:
在下位机重新上电启动时,如果没有检测到下位机母板和\或子板的升级标识,执行固件执行片段存储区域存储的数据。
更进一步的,所述固件升级数据包括:
升级bin文件。
第二方面,本发明实施例还提供了一种eMMC量产工具的固件升级装置,包括:
发送模块,用于通过上位机将固件升级数据发送至下位机的母板和\或子板的设定位置,并置起下位机母板和\或子板的升级标识;
迁移模块,用于在下位机重新上电启动时,在检测到下位机母板和\或子板的升级标识时,将所述固件升级数据迁移至固件执行片段存储区域;
第一执行模块,用于执行所述固件升级数据。
进一步的,所述发送模块,包括:
发送单元,用于通过上位机将固件升级数据发送至下位机的母板和\或子板的临时片段存储区域。
进一步的,所述装置还包括:
第二执行模块,用于在下位机重新上电启动时,如果没有检测到下位机母板和\或子板的升级标识,执行固件执行片段存储区域存储的数据。
更进一步的,所述固件升级数据包括:
升级bin文件。
本发明实施例提供的eMMC量产工具的固件升级方法及装置,利用上位机将固件升级数据发送至下位机的母板和\或子板,并将所述固件升级数据存储在指定位置,所述母板和\或子板在检测到升级标识时,将存储在指定位置的固件升级数据迁移至执行片段存储区域执行固件升级。可以利用上位机将固件升级数据传输至下位机进行升级,可以将固件升级数据视作普通eMMC芯片的量产固件bin文件,无需拆卸量产工具即可实现升级,能够减少拆卸等繁琐操作,提高升级操作的效率,减少错误产生几率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的eMMC量产工具的固件升级方法的流程图;
图2为本发明实施例二提供的eMMC量产工具的固件升级方法的流程图;
图3为本发明实施例三提供的eMMC量产工具的固件升级方法的流程图;
图4为本发明实施例四提供的eMMC量产工具的固件升级方法的流程图;
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的适用于eMMC量产工具的固件升级方法的流程图,本实施例的方法适用于对适用于对eMMC量产工具的固件进行升级的情况。可以由eMMC量产工具的固件升级装置来执行,该装置可通过硬件和/或软件的方式实现。
参见图1,所述适用于eMMC量产工具的固件升级方法,包括:
S110,通过上位机将固件升级数据发送至下位机的母板和\或子板的设定位置,并置起下位机母板和\或子板的升级标识。
固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(ElectricallyErasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。固件可以说是量产工具神经中枢,也可以称作量产工具的操作系统,它包括很多模块:驱动、控制、解码、传送、检测等,只有在它的控制下量产工具才能正常工作。
在量产工具出现bug或者由于需要增加新的功能进行二次开发时,需要对量产工具的固件进行升级。示例性的,可以通过固件升级数据对量产工具进行升级。由于量产工具无法根据固件升级数据自动完成升级,因此,在本实施例中,通过上位机和下位机的耦合操作实现对量产工具进行升级。其中,上位机可以是指可以直接接收用户发出的操控命令的计算机,一般是PC(Personal Compute,个人计算机)或者其它终端,下位机是可以直接控制设备操作并获取设备状况的系统,可以是微控制单元(Microcontroller Unit,MCU)或者单片机。下位机可以包括母板和子板,所述母板与子板可以通过串行外设接口(SerialPeripheral Interface,SPI)进行通信。所述子板上设置有与eMMC连接的接口,用于向eMMC写入数据。并可从eMMC获取相应的检测信息。上位机和下位机可以通过通用串行总线进行数据传输。在本实施例中,量产工具使用方可以从量产工具提供方获取升级数据,并可通过上位机将升级数据传输至下位机。可以将所述固件升级数据视为普通eMMC芯片的量产固件bin文件一样发送至下位机。
可选的,所述固件升级数据可以包括:升级bin文件。bin文件是一种二进制文件,其用途依系统或应用而定。通常可以是机器代码,汇编语言编译后的结果。里面存放的一般是可执行的二进制文件。因此,通常都采用bin文件作为固件升级文件。升级文件包括一个或多个bin文件,具体由升级数据的大小决定。通常这些bin文件存储在预设文件夹中,方便进行查找和处理。
由于母板和子板分别执行不同的功能,且二者需要协同配合工作,因此上位机在得到固件升级数据后,可以通过通用串行总线将固件升级数据发送至下位机的母板,母板通过SPI将固件升级数据发送至子板。可以根据升级需要将升级bin文件发送至母板、子板或者母板和子板。如果选择母板和子板都进行升级,则先向下位机传送子板升级数据,下位机下发至母板,母板再传输给子板,然后,再向下位机传送母板升级数据,下位机向母板传送母版升级数据。母板和\或子板在接收到固件升级数据后,可以将固件升级数据存储在设定位置。可选的,可以将固件升级数据存储在下位机的母板和\或子板的临时片段存储区域(Temporary fragment of flash)。由于用于执行固件升级数据的存储区域存储着当前的固件数据,如果将其存入该区域,会引发执行错误,因此,可以先存储在临时片段存储区域。临时片段存储区域可以视为一个缓冲存储区域,可以将各种数据暂时存储在临时片段存储区域,在需要使用时,可迁移到对应的存储区域。
在发送固件升级数据时,可以同时通过命令置起下位机母板和\或子板的升级标识,以标识可以进入升级功能实现程序。
S120,在下位机重新上电启动时,在检测到下位机母板和\或子板的升级标识时,将所述固件升级数据迁移至固件执行片段存储区域。
存储于外部非易失性存储器中的固件,如果有损坏则整个系统不能正常操作,有可能连任何显示信息都不可见,俗称掉码。其原因可能为在量产工具正常运行过程中,修改了固件代码,造成固件区损坏。由于固件区代码损害或不完整,该电子设备在上电后进入了不确定状态,不能与外部设备进行通信,也不能正常进行工作。因此,需要在重新上电启动后,才可以对执行的固件数据进行修改。
在本实施例中,在下位机重新上电启动时,下位机会检测母板和\或子板的升级标识,在检测到升级标识被置起时,表明需要对下位机的母板和\或子板的固件进行升级。此时,不执行原有的固件程序。将原存储于临时片段存储区域的固件升级数据迁移至固件执行片段存储区域(Execution fragment of flash),以执行固件升级数据。
S130,执行所述固件升级数据。
在完成升级数据迁移至固件执行片段存储区域后,固件执行片段存储区域所存储的数据是完整的新的固件数据。可以运行。因此,可以执行所述固件升级数据,实现对eMMC量产工具的固件升级。
本实施例通过利用上位机将固件升级数据发送至下位机的母板和\或子板,并将所述固件升级数据存储在指定位置,所述母板和\或子板在检测到升级标识时,将存储在指定位置的固件升级数据迁移至执行片段存储区域执行固件升级。可以利用上位机将固件升级数据传输至下位机进行升级,可以将固件升级数据视作普通eMMC芯片的量产固件bin文件,无需拆卸量产工具即可实现升级,能够减少拆卸等繁琐操作,提高升级操作的效率,减少错误产生几率。
实施例二
图2是本发明实施例二提供的种eMMC量产工具的固件升级方法的流程图。本实施例以上述实施例为基础进行优化,在本实施例中,增加如下步骤:在下位机重新上电启动时,如果没有检测到下位机母板和\或子板的升级标识,执行固件执行片段存储区域存储的数据。
参见图2,所述eMMC量产工具的固件升级方法,包括:
S210,通过上位机将固件升级数据发送至下位机的母板和\或子板的设定位置,并置起下位机母板和\或子板的升级标识。
S220,在下位机重新上电启动时,如果没有检测到下位机母板和\或子板的升级标识,执行固件执行片段存储区域存储的数据。
在下位机重新上电启动时,可以认为是重新启动。如果没有检测到下位机母板和子板的升级标志,则可以按照正常程序启动。会跳转到固件执行片段存储区域(Executionfragment of flash),由于固件执行段存储区域内的数据没有发生变化,因此,运行原有存储的量产main函数进行eMMC量产。
S230,在下位机重新上电启动时,在检测到下位机母板和\或子板的升级标识时,将所述固件升级数据迁移至固件执行片段存储区域。
S240,执行所述固件升级数据。
本实施例通过增加如下步骤:在下位机重新上电启动时,如果没有检测到下位机母板和\或子板的升级标识,执行固件执行片段存储区域存储的数据。可以在没有检测到下位机母板和\或子板的升级标识时,执行固件执行片段存储区域存储的原有数据,能够正常进行量产。避免由于量产工具固件升级导致生产停止的情况。
实施例三
图3是本发明实施例三提供的一种eMMC量产工具的固件升级方法的流程图。在本实施例中,将结合实际工作过程对本发明实施例进行详细的描述。
S310,eMMC量产工具上电,进入引导程序。
示例性的,对eMMC量产工具通电,在通电后eMMC量产工具进入启动引导程序,确定启动哪些文件。
S320,进入读取eMMC量产工具固件,并检测下位机母板和\或子板的升级标识。
通过启动引导,读取eMMC量产工具中原有的固件。并检测下位机母板和\或子板的升级标识。所述升级标识可以由上位机通过命令置起下位机母板和\或子板的升级标识。可以检测下位机母板和\或子板的升级标志是否被置起。如果检测升级标识没有被置起,转入S330,如果检测到升级标识被置起,转入S340。
S330,运行固件执行片段存储区域存储的固件数据,并在检测到下位机母板和\或子板的升级标志被置起,接收和防止固件升级数据至下位机的母板和\或子板的设定位置临时片段存储区域时,重新启动量产工具,并转入步骤S320。
如果没有检测到下位机母板和\或子板的升级标识,则可以按照正常程序启动。会跳转到固件执行片段存储区域(Execution fragment of flash),由于固件执行段存储区域内的数据没有发生变化,因此,运行原有存储的量产main函数进行eMMC量产。
S340,将所述固件升级数据迁移至固件执行片段存储区域。
将原存储于临时片段存储区域的固件升级数据迁移至固件执行片段存储区域(Execution fragment of flash),以执行固件升级数据。
S350,执行所述固件升级数据,并降下所述升级标识。
固件执行片段存储区域所存储的数据是完整的新的固件数据。可以运行。因此,可以执行所述固件升级数据,实现对eMMC量产工具的固件升级。由于已经完成升级,因此,可以降下所述升级标识。并可在下次上电时,正常执行量产函数。
本实施例将eMMC量产工具升级过程进行详述,本实施例中升级过程,无需拆卸量产工具即可实现升级,能够减少拆卸等繁琐操作,提高升级操作的效率,减少错误产生几率。
实施例四
图4是本发明实施例四提供的eMMC量产工具的固件升级装置的结构图,如图4所示,所述装置包括:
发送模块410,用于通过上位机将固件升级数据发送至下位机的母板和\或子板的设定位置,并置起下位机母板和\或子板的升级标识;
迁移模块420,用于在下位机重新上电启动时,在检测到下位机母板和\或子板的升级标识时,将所述固件升级数据迁移至固件执行片段存储区域;
第一执行模块430,用于执行所述固件升级数据。
本实施例提供的eMMC量产工具的固件升级装置,利用上位机将固件升级数据发送至下位机的母板和\或子板,并将所述固件升级数据存储在指定位置,所述母板和\或子板在检测到升级标识时,将存储在指定位置的固件升级数据迁移至执行片段存储区域执行固件升级。可以利用上位机将固件升级数据传输至下位机进行升级,可以将固件升级数据视作普通eMMC芯片的量产固件bin文件,无需拆卸量产工具即可实现升级,能够减少拆卸等繁琐操作,提高升级操作的效率,减少错误产生几率。
在上述各实施例的基础上,所述发送模块,包括:
发送单元,用于通过上位机将固件升级数据发送至下位机的母板和\或子板的临时片段存储区域。
在上述各实施例的基础上,所述装置还包括:
第二执行模块,用于在下位机重新上电启动时,如果没有检测到下位机母板和\或子板的升级标识,执行固件执行片段存储区域存储的数据。
在上述各实施例的基础上,所述固件升级数据包括:
升级bin文件。
本发明实施例所提供的eMMC量产工具的固件升级装置可执行本发明任意实施例所提供的eMMC量产工具的固件升级方法,具备执行方法相应的功能模块和有益效果。
显然,本领域技术人员应该明白,上述本发明的各模块或各步骤可以通过如上所述的设备实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。