CN118092989B - 一种存储器的固件升级方法、系统、设备及介质 - Google Patents
一种存储器的固件升级方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN118092989B CN118092989B CN202410480889.1A CN202410480889A CN118092989B CN 118092989 B CN118092989 B CN 118092989B CN 202410480889 A CN202410480889 A CN 202410480889A CN 118092989 B CN118092989 B CN 118092989B
- Authority
- CN
- China
- Prior art keywords
- memory
- firmware
- program
- card opening
- burned
- 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
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000003860 storage Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 3
- 230000002618 waking effect Effects 0.000 claims description 3
- 230000003068 static effect Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Abstract
本发明提供一种存储器的固件升级方法、系统、设备及介质,涉及静态存储技术领域,所述固件升级方法包括:通过操作系统向存储器发送固件升级指令;通过所述存储器的主控制器响应所述固件升级指令,以将开卡引导程序加载至所述存储器的运行内存中;通过所述主控制器运行所述开卡引导程序,并执行开卡初始化操作;通过所述操作系统向所述存储器写入待烧录固件程序;对所述存储器进行重新上电,以加载升级后的固件程序。本发明可快速高效的满足存储器进行重新开卡的需求,提高了存储器的固件升级效率。
Description
技术领域
本发明涉及静态存储技术领域,特别是涉及一种存储器的固件升级方法、系统、设备及介质。
背景技术
嵌入式多媒体卡(Embedded Multi Media Card,eMMC)是MMC协会订立的,主要针对手机或平板电脑等产品的内嵌式存储器标准规格,其包括至少一个NAND闪存和控制器,控制器中配置有固件(Firmware),能够对eMMC的运行过程进行控制,eMMC可安装在各种电子设备中作为存储器使用。其中,eMMC主要应用在具有安卓系统和Linux系统的电子设备中。
在目前运行安卓系统和Linux系统的设备上,通常会使用eMMC作为存储设备。eMMC固件本身在批量生产的时候,可能会出现缺陷。如果需要去除缺陷,则需要升级eMMC的固件。然而,Linux内核底层函数mmc_blk_ ioctl_cmd()出于安全考虑,会屏蔽涉及到硬件的IO操作,以保护系统的安全性。若是通过注释掉权限代码,重新编译Linux Kernel,则存在操作麻烦,难以获得客户许可的问题。因此,存在待改进之处。
发明内容
本发明提供一种存储器的固件升级方法、装置、电子设备及存储介质,以解决现有技术中存在对存储器的固件升级操作繁琐、费时费力的技术问题。
本发明提供的一种存储器的固件升级方法,包括:
通过操作系统向存储器发送固件升级指令;
通过所述存储器的主控制器响应所述固件升级指令,以将开卡引导程序加载至所述存储器的运行内存中;
通过所述主控制器运行所述开卡引导程序,并执行开卡初始化操作;
通过所述操作系统向所述存储器写入待烧录固件程序;
对所述存储器进行重新上电,以加载升级后的固件程序。
在本发明的一个实施例中,在所述通过操作系统向存储器发送固件升级指令的步骤之前,包括:
在所述操作系统设置自定义命令以及对应参数,以生成固件升级指令,所述固件升级指令用以唤醒所述存储器加载所述开卡引导程序。
在本发明的一个实施例中,所述通过所述主控制器运行所述开卡引导程序,并执行开卡初始化操作的步骤包括:
通过所述主控制器将程序执行路径跳转至所述开卡引导程序的起始地址,以运行所述开卡引导程序;
通过所述主控制器进行存储器接口的传输时序初始化配置。
在本发明的一个实施例中,所述通过所述操作系统向所述存储器写入待烧录固件程序的步骤包括:
将所述待烧录固件程序拆分为多个逻辑模块,并将全部的所述逻辑模块写入到固件存储区;
写入所述待烧录固件程序的配置文件信息,所述配置文件信息用以在固件启动和运行时,初始化硬件和设置功能选项。
在本发明的一个实施例中,所述将所述待烧录固件程序拆分为多个逻辑模块的步骤包括:
按照功能类别,将所述待烧录固件程序划分为多个所述逻辑模块;
设置每个所述逻辑模块的通信接口,并对每个所述逻辑模块进行编译。
在本发明的一个实施例中,在所述通过所述操作系统向所述存储器写入待烧录固件程序的步骤之前,包括:
对所述待烧录固件程序的完整性进行校验;
若所述待烧录固件程序具备完整性,则执行下一步;
若所述待烧录固件程序不具备完整性,则重新下载固件程序。
在本发明的一个实施例中,在对所述存储器进行重新上电,以加载升级后的固件程序的步骤之后包括:
检测所述存储器是否完成固件升级,并将检测结果发送至所述操作系统。
本发明还提供一种存储器的固件升级系统,包括:
指令发送单元,用以通过操作系统向存储器发送固件升级指令;
指令响应单元,用以通过所述存储器的主控制器响应所述固件升级指令,以将开卡引导程序加载至所述存储器的运行内存中;
初始化单元,用以通过所述主控制器运行所述开卡引导程序,并执行开卡初始化操作;
固件写入单元,用以通过所述操作系统向所述存储器写入待烧录固件程序;
固件加载单元,用以对所述存储器进行重新上电,以加载升级后的固件程序。
本发明还提出一种电子设备,包括处理器、存储器和通信总线;所述通信总线用于将所述处理器和存储器连接;所述处理器用于执行所述存储器中存储的计算机程序,以实现如上述任一项所述的存储器的固件升级方法。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于使计算机执行如上述任一项所述的存储器的固件升级方法。
如上所述,本发明的一种存储器的固件升级方法、系统、设备及介质,具有以下有益效果:本发明可将存储器安装到安卓平台的场景下,可快速高效的满足安卓平台的存储器进行重新开卡的需求,提高了存储器的固件升级效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1显示为本发明一实施例中提供的安卓平台和存储器的连接示意图。
图2显示为本发明提供的一种存储器的固件升级方法的步骤示意图。
图3显示为图2中步骤S30的一具体实施方式流程示意图。
图4显示为图2中步骤S40的一具体实施方式流程示意图。
图5显示为图4中步骤S41的一具体实施方式流程示意图。
图6显示为本发明一实施例中固件完整性校验的流程示意图。
图7显示为本发明提供的一种存储器的固件升级系统的结构示意图。
图8显示为本发明提供的一种计算机设备的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其它优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。下列实施例中未注明具体条件的试验方法,通常按照常规条件,或者按照各制造商所建议的条件。
须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容所能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
请参阅图1至图8,本发明提出一种存储器的固件升级方法、系统、设备及介质,可对eMMC(Embedded Multi Media Card,嵌入式多媒体卡)、SSD(Solid State Disk,固态硬盘)、UFS(Univeral Flash Storage,通用闪存存储器)等存储器进行重新开卡。本发明在将存储器安装到安卓平台的场景下,可快速高效的解决对安卓平台的存储器进行重新开卡的需求,提高了对存储器的固件升级效率。
请参阅图1,图1显示为本发明一实施例中提供的安卓平台和存储器的连接示意图。处理器110和存储器120可安装于安卓平台100上,并通过总线接口进行通信连接。存储器120可包括主控制器121、运行内存122以及NAND闪存123。其中,主控制器121用于响应处理器110发送的各类指令。运行内存122为SRAM(静态随机访问存储器),SRAM是一种高速、非持久性内存,用于临时存储和执行代码,可进行快速高效的固件更新过程。运行内存122可用于运行存储器120的固件程序。NAND闪存123用以存储写入的各类数据。
请参阅图2,图2显示为本发明提供的一种存储器的固件升级方法的步骤示意图。本发明提出一种存储器的固件升级方法,可包括步骤S10至步骤S50,详细介绍如下。
步骤S10、通过操作系统向存储器发送固件升级指令;
步骤S20、通过存储器的主控制器响应固件升级指令,以将开卡引导程序加载至存储器的运行内存中;
步骤S30、通过主控制器运行开卡引导程序,并执行开卡初始化操作;
步骤S40、通过操作系统向存储器写入待烧录固件程序;
步骤S50、对存储器进行重新上电,以加载升级后的固件程序。
在本发明的一个实施例中,当执行步骤S10时,即通过安卓(Android)平台的操作系统向存储器发送固件升级指令,其中,存储器安装于安卓平台。具体的,存储器120安装运行于安卓平台100,处理器110可运行定制的安卓系统端开卡程序,这个开卡程序能够与存储器120的控制器121进行低级别交互,从而绕过Linux内核的常规IO控制限制。本实施例中,固件升级指令是在在安卓平台100的开卡工具中按照eMMC spec规范由用户自定义的命令(CMD56),这个命令携带特定Argument参数以启动固件更新流程。
在本发明的一个实施例中,在执行步骤S10之前,需要在操作系统设置自定义命令以及对应参数,以生成固件升级指令,其中,固件升级指令用以唤醒存储器加载开卡引导程序。根据eMMC spec规范,CMD56指令是一个保留给制造商进行特殊用途的命令,它可以用来实现设备特定的功能或操作,比如执行固件更新、开卡(也称编程或烧录新固件)等高级功能。本实施例中,按照eMMC spec规范,使用用户自定义命令(即CMD56指令)配合特定Argument(参数),生成自定义的固件升级指令。通过该固件升级指令,使得即使在安卓平台的操作系统环境下,也能触发存储器120的主控制器121加载并执行固件更新相关的开卡引导程序。
在本发明的一个实施例中,当执行步骤S20时,即通过存储器的主控制器响应固件升级指令,以将开卡引导程序加载至存储器的运行内存中。具体的,存储器120的主控制器121接收到处理器110上开卡程序发送来的固件升级指令,即CMD56指令以及特定Argument,将停止当前运行的read、write等指令,并响应此固件升级指令。主控制器121根据预设逻辑从NAND闪存123中加载开卡引导程序,并将其载入到存储器120内部的运行内存122中。本发明提供的这种机制绕过了常规的初始化流程,可直接进入开卡阶段。其中,Argument是与命令一起发送给主控制器121的数据,可用于指定或配置命令的具体行为。对于用户自定义指令CMD56指令来说,特定的Argument指定了要加载到运行内存122中的开卡程序的位置、大小或其他相关属性。
请参阅图3,图3显示为图2中步骤S30的一具体实施方式流程示意图。在本发明的一个实施例中,当执行步骤S30时,即通过主控制器运行开卡引导程序,并执行开卡初始化操作。具体的,步骤S30可包括步骤S31至步骤S32,具体步骤介绍如下:
步骤S31、通过主控制器将程序执行路径跳转至开卡引导程序的起始地址,以运行开卡引导程序;
步骤S32、通过主控制器进行存储器接口的传输时序初始化配置。
在本发明的一个实施例中,当执行步骤S31至步骤S32时,具体的,当系统需要执行开卡引导程序时,首先需要知道该程序在SRAM中的确切位置,即开卡引导程序的起始地址。主控制器121通过修改程序计数器(例如PC寄存器),将当前执行流转移到这个特定地址。完成上述步骤完成后,硬件开始从指定地址加载并执行开卡引导程序代码。然后,根据运行的开卡引导程序,初始化必要的硬件环境,并进一步引导后续的开卡流程。存储器接口是主控制器121与NAND闪存123之间通信的重要桥梁,其工作性能和稳定性直接影响到数据读写的速度和准确性。在开卡引导程序启动后的早期阶段,主控制器121需要根据所连接NAND闪存123的具体规格和标准来配置相应的传输时序参数。这些参数可能包括但不限于时钟频率、时钟周期、数据有效沿、等待状态等,确保主控制器121能够按照正确的顺序和时间间隔发送和接收数据。此步骤的目的在于确保主控制器121与NAND闪存123之间的高效、可靠通信,为即将进行的开卡操作提供稳定的硬件基础支持。
请参阅图4,图4显示为图2中步骤S40的一具体实施方式流程示意图。在本发明的一个实施例中,当执行步骤S40时,即通过操作系统向存储器写入待烧录固件程序。具体的,步骤S40可包括步骤S41至步骤S42,具体步骤介绍如下:
步骤S41、将待烧录固件程序拆分为多个逻辑模块,并将全部的逻辑模块写入到固件存储区;
步骤S42、写入待烧录固件程序的配置文件信息,配置文件信息用以在固件启动和运行时,初始化硬件和设置功能选项。
请参阅图5,图5显示为图4中步骤S41的一具体实施方式流程示意图。在本发明的一个实施例中,当执行步骤S41时,具体的,步骤S41可包括步骤S411至步骤S412,具体步骤介绍如下:
步骤S411、按照功能类别,将待烧录固件程序划分为多个逻辑模块;
步骤S412、设置每个逻辑模块的通信接口,并对每个逻辑模块进行编译。
在本发明的一个实施例中,当执行步骤S411至步骤S412时,具体的,首先,在固件升级过程中,为了提高数据处理效率和降低出错风险,通常会将完整的固件程序按照一定的大小或功能类别进行分割,形成多个小的、易于管理的模块。这些模块可以是固定大小的数据块,也可以根据固件内部结构的自然划分来确定。例如,可以将固件划分为引导加载程序(Bootloader)、操作系统内核、文件系统、应用程序组件等。然后,设置每个逻辑模块的通信接口,并对每个逻辑模块进行编译。每个逻辑模块需要有清晰的接口以实现与其他模块之间的通信与协作。这包括但不限于函数调用接口、硬件寄存器访问约定、共享数据区的设计等。另外,还需将每个模块编译并链接成单独的二进制文件,并对这些文件进行完整性校验,以便在烧录时确认模块的正确性。最后,将每个模块独立地写入到NAND闪存123的固件存储区域,通过分块写入的方式,即使在某个模块写入失败时,也能针对性地重新传输该模块,而无需重新传输整个固件包。
在本发明的一个实施例中,当执行步骤S42时,具体的,向固件存储区写入待烧录固件程序的配置文件信息。固件中的配置文件包含了系统运行所需的各种参数和设定,如硬件驱动的初始状态、系统功能的启用/禁用、性能优化选项等。在固件升级流程的最后阶段,需确保配置文件正确无误地写入到指定位置至关重要,因为它是保证新固件在设备上正常启动和稳定运行的基础。配置文件一旦成功写入并生效,当设备重启进入新固件后,固件内的引导加载程序或操作系统将依据这些配置信息对硬件资源进行初始化,以及根据预设的功能选项调整系统行为。
在本发明的一个实施例中,待烧录固件程序的大小可为320KB,其对应的配置文件信息的大小为2KB。首先,将烧录固件程序划分为10个逻辑模块,每个逻辑模块为32KB。然后,依次将10个逻辑模块写入到NAND闪存123的固件存储区域中。本实施例中,通过操作系统向主控制器发送CMD25指令以及argument(参数)0x0,依次写入10个32KB的逻辑模块。最后,写入对应的配置文件信息。本实施例中,通过操作系统向主控制器发送CMD25指令以及argument(参数)0x1,实现写入2KB配置文件信息。
请参阅图6,图6显示为本发明一实施例中固件完整性校验的流程示意图。在本发明的一个实施例中,在执行步骤S40之前,还需对将要写入的待烧录固件程序进行完整性校验。具体的,可包括步骤S61至步骤S63,具体步骤介绍如下:
步骤S61、对待烧录固件程序的完整性进行校验;
步骤S62、若待烧录固件程序具备完整性,则执行下一步;
步骤S63、若待烧录固件程序不具备完整性,则重新下载固件程序。
在本发明的一个实施例中,当执行步骤S61至步骤S63时,具体的,在固件下载完成后或在烧录前,操作系统会通过特定的算法(如CRC校验、MD5/SHA散列值比对等)来验证待烧录固件程序的数据完整性。校验过程主要是计算当前固件数据的校验值,并与从可信源获取的预期校验值进行对比。如果两者一致,则说明固件在传输过程中没有出现数据丢失或被篡改的情况,固件保持完整。若经过校验发现待烧录固件具备完整性,即校验值匹配,将执行下一步操作,通常为正式开始固件烧录过程,即将固件写入到存储器120的相应存储区域。反之,若校验结果显示待烧录固件不具备完整性,意味着固件文件可能在传输过程中损坏或遭到了非法篡改,这时系统将采取安全策略,拒绝执行后续的固件烧录步骤。为了确保设备稳定运行和用户数据安全,系统通常会自动触发重新下载固件程序的动作,直到成功获取并校验通过完整的固件文件为止。
在本发明的一个实施例中,当执行步骤S50时,即对存储器进行重新上电,以加载升级后的固件程序。具体的,在所有固件模块和配置信息写入完成后,开卡程序还会进行必要的校验工作,以确保新固件数据的完整性和正确性。最后,执行复位或者其他机制,例如对存储器120进行重新上电,使新固件在控制器121上生效,完成整个开卡动作。
在本发明的一个实施例中,在完成执行步骤S50之后,还需检测存储器是否完成固件升级,并将检测结果发送至操作系统。具体的,主控制器121根据写入的待烧录固件程序内容,进一步执行固件升级的实际操作,包括但不限于验证固件完整性、擦除原有固件、写入新固件以及校验新固件正确性等步骤。当所有升级步骤顺利完成且验证无误后,新的固件即在存储器上成功部署并激活使用。
请参阅图7,图7显示为本发明提供的一种存储器的固件升级系统的结构示意图。在本发明的一个实施例中,存储器的固件升级系统可包括指令发送单元701、指令响应单元702、初始化单元703、固件写入单元704、固件加载单元705,各功能模块详细说明如下。
指令发送单元701可用以通过操作系统向存储器发送固件升级指令。进一步的,指令发送单元701可具体用于存储器120安装运行于安卓平台100,处理器110可运行定制的安卓系统端开卡程序,这个开卡程序能够与存储器120的控制器121进行低级别交互,从而绕过Linux内核的常规IO控制限制。本实施例中,固件升级指令是在在安卓平台100的开卡工具中按照eMMC spec规范由用户自定义的命令(CMD77),这个命令携带特定Argument参数以启动固件更新流程。
指令响应单元702可用以通过存储器的主控制器响应固件升级指令,以将开卡引导程序加载至存储器的运行内存中。进一步的,指令响应单元702可具体用于存储器120的主控制器121接收到处理器110上开卡程序发送来的固件升级指令,即CMD77指令以及特定Argument,将停止当前运行的read、write等指令,并响应此固件升级指令。主控制器121根据预设逻辑从NAND闪存123中加载开卡引导程序,并将其载入到存储器120内部的运行内存122中。本发明提供的这种机制绕过了常规的初始化流程,可直接进入开卡阶段。其中,Argument是与命令一起发送给主控制器121的数据,可用于指定或配置命令的具体行为。对于用户自定义指令CMD77指令来说,特定的Argument指定了要加载到运行内存122中的开卡程序的位置、大小或其他相关属性。
初始化单元703可用以通过主控制器运行开卡引导程序,并执行开卡初始化操作。进一步的,初始化单元703可具体用于通过主控制器将程序执行路径跳转至开卡引导程序的起始地址,以运行开卡引导程序;通过主控制器进行存储器接口的传输时序初始化配置。
固件写入单元704可用以通过操作系统向存储器写入待烧录固件程序。进一步的,固件写入单元704可具体用于将待烧录固件程序拆分为多个逻辑模块,并将全部的逻辑模块写入到固件存储区;写入待烧录固件程序的配置文件信息,配置文件信息用以在固件启动和运行时,初始化硬件和设置功能选项。
固件加载单元705可用以对存储器进行重新上电,以加载升级后的固件程序。进一步的,固件加载单元705可具体用于在所有固件模块和配置信息写入完成后,开卡程序还会进行必要的校验工作,以确保新固件数据的完整性和正确性。最后,执行复位或者其他机制,例如对存储器120进行重新上电,使新固件在控制器121上生效,完成整个开卡动作。
关于固件升级系统的具体限定可以参见上文中对于固件升级方法的限定,在此不再赘述。上述固件升级系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图8,图8显示为本发明提供的一种计算机设备的结构示意图。该计算机设备800可以是服务端。该计算机设备800包括通过系统总线连接的处理器801、存储器802、网络接口和数据库。其中,该计算机设备800的处理器801用于提供计算和控制能力。该计算机设备800的存储器802包括非易失性和/或易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备800的网络接口用于与外部的客户端通过网络连接通信。该计算机程序被处理器执行时以实现一种三维车模数据的处理方法服务端侧的功能或步骤。
在一个实施例中,提供了一种计算机设备800,包括存储器802、处理器801及存储在存储器上并可在处理器上运行的计算机程序,处理器801执行计算机程序时实现以下步骤:
通过操作系统向存储器发送固件升级指令;
通过存储器的主控制器响应固件升级指令,以将开卡引导程序加载至存储器的运行内存中;
通过主控制器运行开卡引导程序,并执行开卡初始化操作;
通过操作系统向存储器写入待烧录固件程序;
对存储器进行重新上电,以加载升级后的固件程序。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
通过操作系统向存储器发送固件升级指令;
通过存储器的主控制器响应固件升级指令,以将开卡引导程序加载至存储器的运行内存中;
通过主控制器运行开卡引导程序,并执行开卡初始化操作;
通过操作系统向存储器写入待烧录固件程序;
对存储器进行重新上电,以加载升级后的固件程序。
需要说明的是,上述关于计算机可读存储介质或计算机设备所能实现的功能或步骤,可对应参阅前述方法实施例中,服务端侧以及客户端侧的相关描述,为避免重复,这里不再一一描述。
综上所述,本发明提出一种存储器的固件升级方法、系统、设备及介质,可应用于静态存储技术领域。本发明将存储器安装到安卓平台的场景下,通过Android上层和存储芯片固件程序交互式的配合,可快速高效的解决对安卓平台的存储器进行重新开卡的需求,提高了存储器的固件升级效率。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (8)
1.一种存储器的固件升级方法,其特征在于,包括:
在操作系统设置自定义命令以及对应参数,以生成固件升级指令,所述固件升级指令用以唤醒存储器加载开卡引导程序;
通过所述操作系统向所述存储器发送所述固件升级指令;
通过所述存储器的主控制器响应所述固件升级指令,以将所述开卡引导程序加载至所述存储器的运行内存中;
通过所述主控制器运行所述开卡引导程序,并执行开卡初始化操作;
通过所述操作系统向所述存储器写入待烧录固件程序;
对所述存储器进行重新上电,以加载升级后的固件程序;
其中,所述通过所述主控制器运行所述开卡引导程序,并执行开卡初始化操作的步骤包括:
通过所述主控制器将程序执行路径跳转至所述开卡引导程序的起始地址,以运行所述开卡引导程序;
通过所述主控制器进行存储器接口的传输时序初始化配置。
2.根据权利要求1所述的存储器的固件升级方法,其特征在于,所述通过所述操作系统向所述存储器写入待烧录固件程序的步骤包括:
将所述待烧录固件程序拆分为多个逻辑模块,并将全部的所述逻辑模块写入到固件存储区;
写入所述待烧录固件程序的配置文件信息,所述配置文件信息用以在固件启动和运行时,初始化硬件和设置功能选项。
3.根据权利要求2所述的存储器的固件升级方法,其特征在于,所述将所述待烧录固件程序拆分为多个逻辑模块的步骤包括:
按照功能类别,将所述待烧录固件程序划分为多个所述逻辑模块;
设置每个所述逻辑模块的通信接口,并对每个所述逻辑模块进行编译。
4.根据权利要求1所述的存储器的固件升级方法,其特征在于,在所述通过所述操作系统向所述存储器写入待烧录固件程序的步骤之前,包括:
对所述待烧录固件程序的完整性进行校验;
若所述待烧录固件程序具备完整性,则执行下一步;
若所述待烧录固件程序不具备完整性,则重新下载固件程序。
5.根据权利要求1所述的存储器的固件升级方法,其特征在于,在对所述存储器进行重新上电,以加载升级后的固件程序的步骤之后包括:
检测所述存储器是否完成固件升级,并将检测结果发送至所述操作系统。
6.一种存储器的固件升级系统,其特征在于,包括:
指令发送单元,用以在操作系统设置自定义命令以及对应参数,以生成固件升级指令,所述固件升级指令用以唤醒存储器加载开卡引导程序,通过所述操作系统向所述存储器发送所述固件升级指令;
指令响应单元,用以通过所述存储器的主控制器响应所述固件升级指令,以将开卡引导程序加载至所述存储器的运行内存中;
初始化单元,用以通过所述主控制器运行所述开卡引导程序,并执行开卡初始化操作;
固件写入单元,用以通过所述操作系统向所述存储器写入待烧录固件程序;
固件加载单元,用以对所述存储器进行重新上电,以加载升级后的固件程序;
其中,所述初始化单元还用于通过所述主控制器将程序执行路径跳转至所述开卡引导程序的起始地址,以运行所述开卡引导程序,通过所述主控制器进行存储器接口的传输时序初始化配置。
7.一种电子设备,其特征在于,包括处理器、存储器和通信总线;所述通信总线用于将所述处理器和存储器连接;所述处理器用于执行所述存储器中存储的计算机程序,以实现如权利要求1-5任一项所述的存储器的固件升级方法。
8.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序用于使计算机执行如权利要求1-5任一项所述的存储器的固件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410480889.1A CN118092989B (zh) | 2024-04-22 | 一种存储器的固件升级方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410480889.1A CN118092989B (zh) | 2024-04-22 | 一种存储器的固件升级方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118092989A CN118092989A (zh) | 2024-05-28 |
CN118092989B true CN118092989B (zh) | 2024-07-16 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153548A (zh) * | 2016-12-05 | 2018-06-12 | 北京京存技术有限公司 | 一种emmc固件升级方法和装置 |
CN116932009A (zh) * | 2023-09-13 | 2023-10-24 | 合肥康芯威存储技术有限公司 | 一种存储器件的现场固件升级方法、装置及介质 |
CN116954674A (zh) * | 2023-06-28 | 2023-10-27 | 深圳市时创意电子有限公司 | eMMC固件升级方法、固件升级设备和存储装置 |
CN117555607A (zh) * | 2022-08-05 | 2024-02-13 | 深圳市江波龙电子股份有限公司 | 嵌入式多媒体卡的开卡方法及相关设备 |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153548A (zh) * | 2016-12-05 | 2018-06-12 | 北京京存技术有限公司 | 一种emmc固件升级方法和装置 |
CN117555607A (zh) * | 2022-08-05 | 2024-02-13 | 深圳市江波龙电子股份有限公司 | 嵌入式多媒体卡的开卡方法及相关设备 |
CN116954674A (zh) * | 2023-06-28 | 2023-10-27 | 深圳市时创意电子有限公司 | eMMC固件升级方法、固件升级设备和存储装置 |
CN116932009A (zh) * | 2023-09-13 | 2023-10-24 | 合肥康芯威存储技术有限公司 | 一种存储器件的现场固件升级方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9027014B2 (en) | Updating firmware compatibility data | |
WO2022007656A1 (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
CN100570558C (zh) | 一种芯片固件升级方法 | |
US20060064576A1 (en) | Boot systems and methods | |
CN104123153A (zh) | 用于使用usb升级固件的装置与方法 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
US9836417B2 (en) | Bridge configuration in computing devices | |
CN107567629A (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
CN101807152A (zh) | 自我验证选择只读存储器的基本输出入系统及其验证方法 | |
WO2020029967A1 (zh) | 一种操作系统故障的修复方法和装置 | |
CN109634781A (zh) | 一种基于嵌入式程序双区备份映像系统及启动方法 | |
CN113377586B (zh) | 一种服务器自动化检测方法、装置及存储介质 | |
WO2015184732A1 (zh) | 引导程序的存储方法、故障恢复方法及设备、计算机存储介质 | |
CN106681755B (zh) | 产品id配置方法以及嵌入式设备的程序加载方法 | |
CN111273928B (zh) | 一种自升级的bootloader设计方法 | |
CN118092989B (zh) | 一种存储器的固件升级方法、系统、设备及介质 | |
CN111090443A (zh) | 一种保障linux系统安全升级的方法、设备和存储介质 | |
CN118092989A (zh) | 一种存储器的固件升级方法、系统、设备及介质 | |
US11768669B2 (en) | Installing application program code on a vehicle control system | |
CN114741091A (zh) | 固件加载方法、装置、电子设备及计算机可读存储介质 | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
CN114625389A (zh) | 嵌入式设备升级方法、嵌入式设备及存储装置 | |
KR101113342B1 (ko) | 이동통신 단말기의 부트로더 버전 관리 방법 | |
CN110134456A (zh) | 用于管理操作系统的方法、装置、设备和存储介质 | |
CN116028100B (zh) | 软件版本升级方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |