CN111026417A - 一种嵌入式设备的升级方法及嵌入式设备 - Google Patents
一种嵌入式设备的升级方法及嵌入式设备 Download PDFInfo
- Publication number
- CN111026417A CN111026417A CN201911017178.6A CN201911017178A CN111026417A CN 111026417 A CN111026417 A CN 111026417A CN 201911017178 A CN201911017178 A CN 201911017178A CN 111026417 A CN111026417 A CN 111026417A
- Authority
- CN
- China
- Prior art keywords
- space
- address
- storage
- storage space
- file
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种嵌入式设备的升级方法及嵌入式设备,用于缩短升级所需时间,提高升级效率。其中,嵌入式设备的升级方法包括:确定将系统升级文件存储在两个存储空间中的目的存储空间,其中,目的存储空间存储的系统升级文件的版本序列号高于另一存储空间存储的系统文件的版本序列号;将两个存储空间的存储地址映射到中央处理器的第一地址空间和第二地址空间,其中,目的存储空间的存储地址映射到第一地址空间,另一存储空间的存储地址映射到第二地址空间,第一地址空间和所述第二地址空间连续,且第一地址空间的首地址小于第二地址空间的首地址;加载第一地址空间对应的文件,以对嵌入式设备进行升级。
Description
技术领域
本发明涉及系统升级技术领域,尤其涉及一种嵌入式设备的升级方法及嵌入式设备。
背景技术
当嵌入式设备的功能需求发生变化或者嵌入式设备自身软件、硬件在运行过程中出现问题时,通常可以通过对嵌入式设备当前的系统文件进行升级,以维护嵌入式设备。
在嵌入式设备中,通常当前运行的系统文件存储在快闪存储器(flash memory,FLASH)中,因此,当有最新的系统升级文件时,可以将其下载到本地的随机存储器(randomaccess memory,RAM)中暂时保存。当需要执行升级操作时,中央处理器需要先擦除FLASH中原有的系统文件,并将最新的系统升级文件写入该FLASH中,之后通过重启嵌入式设备便可以进行升级。但是擦除或写入FLASH需要耗费一定时间,且其中任意一个过程一旦出现错误,都会导致嵌入式设备升级失败。即使可以通过重启系统进行再次升级,但是这将延长系统升级所需的时间。
可见,目前的嵌入式设备的升级需要进行擦除或写入FLASH操作,升级比较耗时,且擦除或写入FLASH的过程一旦出现错误,会导致升级的失败。
发明内容
本发明实施例提供一种嵌入式设备的升级方法及嵌入式设备,用于缩短升级所需时间,提高升级效率。
第一方面,本发明实施例提供一种嵌入式设备的升级方法,所述方法包括:
确定将系统升级文件存储在两个存储空间中的目的存储空间,其中,所述目的存储空间存储的系统升级文件的版本序列号高于另一存储空间存储的系统文件的版本序列号;
将所述两个存储空间的存储地址映射到中央处理器的第一地址空间和第二地址空间,其中,所述目的存储空间的存储地址映射到所述第一地址空间,所述另一存储空间的存储地址映射到所述第二地址空间,所述第一地址空间和所述第二地址空间连续,且所述第一地址空间的首地址小于第二地址空间的首地址;
加载所述第一地址空间对应的文件,以对所述嵌入式设备进行升级。
在本发明实施例中,中央处理器可以从两个存储空间中选择其中一个作为目的存储空间,用于存储系统升级文件。该系统升级文件可以认为是系统文件中的版本最新的文件,即该系统升级文件的版本序列号要高于存储空间中已有的系统文件的版本序列号。在需要对设备进行软件升级时,中央处理器可以将目的存储空间映射到第一地址空间,将另一存储空间映射到自身的第二地址空间。由于第一地址空间与第二地址空间连续,且第一地址空间位于第二地址空间之前,因此,中央处理器会优先运行第一地址空间,即加载目的存储空间中存储的系统升级文件,从而实现对嵌入式设备的升级。由于在升级过程中不涉及擦除与写入FLASH的操作,因此整个升级过程用时较短,升级效率较高。
可选的,所述两个存储空间包括第一存储空间和第二存储空间,确定将系统升级文件存储在两个存储空间中的目的存储空间,包括:
获取第一系统文件的第一版本序列号和第二系统文件的第二版本序列号,其中,所述第一系统文件存储在所述第一存储空间,所述第二系统文件存储在所述第二存储空间;
若所述第一版本序列号低于所述第二版本序列号,则将所述第一存储空间确定为所述目的存储空间;或,
若所述第一版本序列号高于所述第二版本序列号,则将所述第二存储空间确定为所述目的存储空间。
在本发明实施例中,已有的系统文件,例如第一系统文件和第二系统文件,分别存储在第一存储空间和第二存储空间。中央处理器可以比较第一存储空间中的第一系统文件的版本序列号和第二存储空间中的第二系统文件的版本序列号,从而将较低版本序列号对应的存储空间确定为目的存储空间。之后,再将系统升级文件存储在该目的存储空间。该过程可以确保两个存储空间中始终保留两个较新的系统文件。
可选的,将所述两个存储空间的存储地址映射到中央处理器的第一地址空间和第二地址空间,包括:
若将所述第一存储空间确定为所述目的存储空间,则将所述第一存储空间的存储地址映射到所述第一地址空间,以及将所述第二存储空间的存储地址映射到所述第二地址空间;或者,
若将所述第二存储空间确定为所述目的存储空间,则将所述第二存储空间的存储地址映射到所述第一地址空间,以及将所述第一存储空间的存储地址映射到所述第二地址空间。
在本发明实施例中,由于目的存储空间中存储有系统升级文件,第一地址空间与第二地址空间连续,且第一地址空间位于第二地址空间之前,那么中央处理器将目的存储空间映射到第一地址空间,将另一存储空间映射到第二地址空间。这样中央处理器优先运行第一地址空间,始终加载的都是与第一地址映射的目的存储空间所存储的系统升级文件。
可选的,所述方法还包括:所述中央处理器存储有启动程序,所述启动程序用于加载所述第一地址空间对应的文件;加载所述第一地址空间对应的文件,包括:
运行所述启动程序。
在本发明实施例中,中央处理器在运行第一地址空间对应的系统升级文件之前,可以先运行启动程序,为嵌入式设备创建一个初始的运行环境,用于实现加载第一地址空间对应文件。
可选的,所述启动程序地址空间、所述第一地址空间以及所述第二地址空间依次连续。
在本发明实施例中,启动程序的存储地址、第一地址空间以及第二地址空间依次连续,这样当嵌入式设备开机时,中央处理器会优先运行启动程序,为嵌入式设备创建一个初始的运行环境。之后,中央处理器运行第一地址空间对应的存储空间中的系统升级文件,以实现对嵌入式设备的升级。若升级过程出现错误,中央处理器还可以运行第二地址空间对应的存储空间中的较新的系统文件,从而保证嵌入式设备可以正常工作。
第二方面,本发明实施例提供一种嵌入式设备,所述嵌入式设备包括:
确定模块,用于确定将系统升级文件存储在两个存储空间中的目的存储空间,其中,所述目的存储空间存储的系统升级文件的版本序列号高于另一存储空间存储的系统文件的版本序列号;
映射模块,用于将所述两个存储空间的存储地址映射到中央处理器的第一地址空间和第二地址空间,其中,所述目的存储空间的存储地址映射到所述第一地址空间,所述另一存储空间的存储地址映射到所述第二地址空间,所述第一地址空间和所述第二地址空间连续,且所述第一地址空间的首地址小于所述第二地址空间的首地址;
升级模块,用于加载所述第一地址对应的文件,以对所述嵌入式设备进行升级。
可选的,所述确定模块具体用于:
获取第一系统文件的第一版本序列号和第二系统文件的第二版本序列号,其中,所述第一系统文件存储在所述第一存储空间,所述第二系统文件存储在所述第二存储空间;
若所述第一版本序列号低于所述第二版本序列号,则将所述第一存储空间确定为所述目的存储空间;或,
若所述第一版本序列号高于所述第二版本序列号,则将所述第二存储空间确定为所述目的存储空间。
可选的,所述映射模块具体用于:
当所述第一存储空间确定为所述目的存储空间,则将所述第一存储空间的存储地址映射到所述第一地址空间,以及将所述第二存储空间的存储地址映射到所述第二地址空间;或者,
当所述第二存储空间确定为所述目的存储空间,则将所述第二存储空间的存储地址映射到所述第一地址空间,以及将所述第一存储空间的存储地址映射到所述第二地址空间。
可选的,所述中央处理器存储有启动程序,所述启动程序用于加载所述第一地址空间对应的文件;所述升级模块具体用于:
运行所述启动程序。
可选的,所述启动程序地址空间、所述第一地址空间以及所述第二地址空间依次连续。
第二方面或第二方面任一实施例的技术效果可以参考第一方面任一实施例的技术效果,这里不再赘述。
第三方面,本发明实施例提供一种嵌入式设备,所述嵌入式设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序是实现如第一方面实施例所述方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面实施例所述方法的步骤。
附图说明
图1为本发明实施例中提供的一种嵌入式系统的架构图;
图2为本发明实施例中提供的一种嵌入式系统的架构图;
图3为本发明实施例中提供的一种嵌入式系统的架构图;
图4为本发明实施例中提供的一种嵌入式设备的升级方法的流程示意图;
图5为本发明实施例提供的一种嵌入式设备的结构示意图;
图6为本发明实施例提供的一种嵌入式设备的结构示意图。
具体实施方式
为了使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整的描述。
系统升级文件是可以用于升级的软件程序,目前嵌入式设备常见的两种升级方式具体如下。
第一种升级方式:请参见图1,为一种嵌入式系统的架构图。图1中包括嵌入式设备和服务器102,其中,嵌入式设备包括:中央处理器(central processing unit,CPU)101、RAM103以及FLASH104。嵌入式设备可以通过CPU101可以周期性向服务器102发送第一消息,该第一消息中携带有嵌入式设备的身份标识(identity document,ID)以及当前运行的系统文件的第一版本序列号。服务器102接收该第一消息后,查询服务器102中是否存在与该ID对应的第二版本序列号。若服务器102确定存在该第二版本序列号,且第二版本序列号高于第一版本序列号,那么服务器102可以向嵌入式设备中的CPU101发送更新指令。嵌入式设备在通过CPU101接收该更新指令之后,可以向服务器102发送请求消息,该请求消息用于获取与上述ID对应的系统升级文件。服务器102接收该请求消息后,确定与上述ID对应的系统升级文件,并向嵌入式设备中的CPU101发送该系统升级文件。嵌入式设备通过CPU101接收该系统升级文件,将其暂时保存在RAM103中。当需要进行升级时,嵌入式设备中的CPU101向FLASH104发送擦除指令,该FLASH104存储有当前的系统文件,FLASH104接收该擦除指令后进行擦除操作,以将所存储的系统文件擦除掉。在擦除过程中,嵌入式设备中的CPU101可以周期性向FLASH104的状态寄存器发送查询指令,以确定FLASH104是否将系统文件擦除完。当FLASH104的状态寄存器指示的当前忙碌标志位由1变为0时,表明擦除过程结束,即将系统文件擦除掉。嵌入式设备中的CPU101在确定FLASH104将系统文件擦除掉后,可以向RAM103发送读取指令,该读取指令用于获取RAM103中的系统升级文件。RAM103响应该读取指令,将所保存的系统升级文件发送给嵌入式设备中的CPU101。之后,嵌入式设备中的CPU101将接收的系统升级文件写入FLASH104中,重启嵌入式设备即可完成升级。
在第一种升级方式中,FLASH104执行擦除操作,由于FLASH104长期工作可能出现部分故障,这就导致系统文件擦除不彻底。或者,如果FLASH104发生故障,CPU101在将系统升级文件写入FLASH104中时,会出现写入错误,例如,写入的是部分系统升级文件。上述两种情况,均会导致升级失败,且嵌入式设备也无法正常运行。
第二种升级方式:请参见图2,与第一种升级方式不同之处在于,FLASH被划分为BOOTLOADER204、工作FLASH205以及备份FLASH206。工作FLASH205和备份FLASH206中均存储有系统文件。通常,嵌入式设备运行工作FLASH205中的系统文件。如果嵌入式设备需要升级,嵌入式设备可以通过CPU201获取系统升级文件,并保存在RAM203。之后,嵌入式设备中的CPU201可以向备份FLASH206发送擦除指令,以请求备份FLASH206将所存储的系统文件擦除掉。备份FLASH206响应该擦除指令,开始擦除系统文件。在FLASH206擦除系统文件的过程中,嵌入式设备中的CPU201可以周期性向备份FLASH206的状态寄存器发送查询指令,以确定备份FLASH206是否将系统文件擦除完。当备份FLASH206的状态寄存器指示的当前忙碌标志位由1变为0时,表明擦除过程结束,即将系统文件擦除掉。当嵌入式设备中的CPU201确定备份FLASH206中的系统文件擦除掉后,可以向RAM203发送读取指令,该读取指令用于获取RAM203中的系统升级文件。RAM203响应该读取指令,将所保存的系统升级文件发送给嵌入式设备中的CPU201。之后,嵌入式设备通过CPU201将接收到的系统升级文件写入备份FLASH206。当需要对嵌入式设备进行升级时,重启嵌入式设备,BOOTLOADER204开始运行,为嵌入式设备创建一个运行环境。之后嵌入式设备通过CPU201分别向工作FLASH205以及备份FLASH206发送查询指令,该查询指令用于获取工作FLASH205以及备份FLASH206中系统文件的版本序列号。工作FLASH205和备份FLASH206接收该查询指令后,向嵌入式设备中的CPU201发送各自存储的系统文件的版本序列号。嵌入式设备通过CPU201接收两个版本序列号后,若确定备份FLASH206中的系统升级文件的版本序列号高于工作FLASH105中的系统文件的版本序列号,则嵌入式设备中的CPU201向工作FLASH205发送擦除指令。工作FLASH205响应该擦除指令,执行擦除所存储的系统文件的操作。具体的,工作FLASH205擦除系统文件的过程类似备份FLASH206擦除系统文件过程,这里不再赘述。当嵌入式设备中的CPU201确定工作FLASH205中的系统文件擦除掉后,可以向备份FLASH206发送读取指令,以获取备份FLASH206中的系统升级文件。嵌入式设备可以通过CPU201从备份FLASH206获取系统升级文件,并将系统升级文件写入工作FLASH205,工作FLASH205运行系统升级文件,完成对嵌入式设备的升级。
在第二种升级方法相对第一种升级方法而言,将系统升级文件下载到备份FLASH206,即使升级过程中工作FLASH205的擦除与写入出现错误,导致无法升级成功,仍然可以通过备份FLASH206获取系统升级文件,进而通过重启进行再次升级,而不会出现如第一种方法中的嵌入式设备无法正常运行的情况。但是该方法升级过程中,工作FLASH205的擦除与写入需要花费一定的时间,升级时间较长,无法适用于对时间要求比较严格的场景中。例如,该嵌入式设备用于进行数据交换的场景中,需要保持24小时都处于工作状态,即使是短时的升级,也可能导致部分数据缺失,影响用户体验。
鉴于此,本发明实施例提供了一种嵌入式设备的升级方法及装置,该方法升级过程中无需对FLASH进行擦除与写入,从而缩短了升级所需的时间,提高了升级效率。
为了便于理解,首先介绍本发明实施的一种应用场景。请参见图3,为本发明实施提供的一种嵌入式系统的架构图。图3中包括嵌入式设备和服务器302。其中,嵌入式设备包括:CPU301、RAM303、存储器以及地址转换模块307。CPU301可以用于接收和发送相关控制指令,使得嵌入式设备中各部分能够有序运行。服务器302可以存储系统升级文件。CPU301与服务器302可以进行通信。例如CPU301与服务器302通过无线保真(wireless fidelity,WIFI)模块进行通信。RAM303可以是随机存储器,用于暂时保存CPU301从服务器302获取的系统升级文件。存储器可以划分为多个存储空间,例如划分为三个大小相同的存储空间。这三个存储空间分别为启动程序存储空间304,第一存储空间305,第二存储空间306。例如,存储器的大小为64个千字节(kilobyte,KB),那么启动程序存储空间304占用的空间可以为0X00000-0X0FFFF,第一存储空间305占用的空间可以为0X10000-0X1FFFF,第二存储空间306占用的空间可以为0X20000-0X2FFFF。启动程序存储空间304用于存储启动程序BootLoader,该启动程序可以用于初始化嵌入式设备,创建系统文件的运行环境。第一存储空间305和第二存储空间306中分别存储有两个不同版本的系统文件。
地址转换模块307可以用于CPU301与启动程序存储空间304之间的地址映射,CPU301与第一存储空间305之间的地址映射,以及CPU301与第二存储空间306之间的地址映射。示例性的,地址转换模块307可以具有两种映射方式,也可以理解为两种转换模式。例如,第一种转换模式为直接映射模式,即将第一存储空间305映射到CPU301中的第一地址空间,将第二存储空间306映射到CPU301的第二地址空间。例如,第二种转换模式为交叉映射,即将第一存储空间305映射到CPU的第二地址空间,将第二存储空间306映射到CPU的第一地址空间。在本发明实施例中,可以通过地址转换模块307的某一位寄存器的取值来区分第一种转换模式和第二种转换模式。例如,当该寄存器的取值为1时,表示第一种转换模式,相对的,当该寄存器的取值为0时,表示第二种转换模式。或者,当该寄存器的取值为0时,表示第一种转换模式,相对的,当该寄存器的取值为1时,表示第二种转换模式,本申请不作限制。
需要说明的是,地址转换模块307可以采用直接映射模式将启动程序存储空间304映射到CPU301的启动程序地址空间。即嵌入式设备重新启动,地址转换模块307默认将启动程序存储空间304映射到CPU301的启动程序地址空间。
嵌入式设备中的CPU301可以根据第一存储空间305和第二存储空间306中系统文件的版本序列号确定地址转换模块307的转换模式。例如,如果第一存储空间305中的系统文件的版本序列号高于第二存储空间306中的系统文件的版本序列号,则确定地址转换模块307的转换模式为直接映射模式;如果第一存储空间305中的系统文件的版本序列号低于第二存储空间306中的系统文件的版本序列号,则确定地址转换模块307的转换模式为交叉映射模式。
基于图3所示的架构,下面结合附图对本发明实施例提供的技术方案进行介绍。请参见图4,本发明实施例提供一种嵌入式设备的升级方法,该方法的流程描述如下。
步骤401:嵌入式设备确定将系统升级文件存储在两个存储空间中的目的存储空间。
其中,目的存储空间存储的系统升级文件的版本序列号高于另一存储空间存储的系统文件的版本序列号。
第一存储空间305和第二存储空间306分别存储有系统文件。在本发明实施例中,嵌入式设备中的CPU301可以获取第一存储空间305和第二存储空间306中已存储的系统文件的版本序列号,从而从第一存储空间305和第二存储空间306中确定目的存储空间,也就是用于存放系统升级文件的存储空间。
例如,第一存储空间305中系统文件的版本序列号为V1.0.1,第二存储空间中系统文件的版本序列号为V1.0.2。嵌入式设备中的CPU301在获取到这两个版本序列号之后,确定第二存储空间306中的系统文件的版本序列号高于第一存储空间305中的系统文件的版本序列号,则将第一存储空间确定为目的存储空间,且将第二存储空间306中的系统文件作为当前嵌入式设备的运行文件。或者,如果第一存储空间305中的系统文件的版本序列号为V1.0.1,第二存储空间306中的系统文件的版本序列号为V1.0.0。嵌入式设备中的CPU301在获取到这两个版本序列号之后,确定第一存储空间305中系统文件的版本序列号高于第二存储空间306中系统文件的版本序列号,则将第二存储空间306确定为目的存储空间,且将第一存储空间305中的系统文件作为嵌入式设备当前运行的系统文件。
当嵌入式设备在运行过程中需要升级时,嵌入式设备中的CPU301可以向服务器302请求获取系统升级文件。例如,嵌入式设备中的CPU301可以向服务器302发送第一消息,该第一消息中携带有嵌入式设备的身份标识(identity document,ID)以及当前运行的系统文件的版本序列号。服务器302接受该第一消息,确定是否向该嵌入式设备发送系统升级文件。
例如,嵌入式设备通过CPU301获取的第一存储空间305中的系统文件的版本序列号为V1.0.0,第二存储空间306中系统文件的版本序列号为V1.0.1,如果嵌入式设备中的CPU301确定第二存储空间306中系统文件的版本序列号高于第一存储空间305中系统文件的版本序列号,可以将第二存储空间306中系统文件的版本序列号即V1.0.1以及对应的嵌入式设备ID发送给服务器302。例如,CPU301可以通过WIFI模块将V1.0.1以及对应的ID发送给服务器302。服务器302接收到该版本序列号V1.0.1以及对应的ID后,查找服务器302中是否存在与该ID对应的版本序列号。若服务器302中存在与该ID对应的版本序列号,例如V1.0.2,且服务器302确认V1.0.2高于嵌入式设备当前运行的系统文件的版本序列号V1.0.1,那么服务器302可以向CPU301发送更新指令。CPU301接收并响应该更新指令,向服务器302发送请求指令。该请求指令用于获取该嵌入式设备ID对应的系统升级文件。服务器302响应该请求指令,向CPU301发送版本序列号为V1.0.2对应的系统升级文件。
考虑到CPU301向服务器302发送第一消息的过程中可能出现错误,导致服务器302未能接收到该第一消息,本发明实施例可以通过CPU301周期性地向服务器302发送第一消息,以确保能够对嵌入式设备进行及时更新。或者,服务器302当前并没有与第一消息中携带的ID对应的系统升级文件,本发明实施例也可以通过CPU301周期性地向服务器302发送第一消息,这样一旦服务器302存在与第一消息中携带的ID对应的系统升级文件,就可以及时地发送给CPU301,以确保能够对嵌入式设备进行及时更新。
嵌入式设备获取系统升级文件后,可以将该系统升级文件缓存在RAM303。由于RAM303一旦断电,存储在其中的数据都会丢失,因此RAM303只能用于暂时保存该系统升级文件。因此,为了能够长久保存该系统升级文件,嵌入式设备可以将该系统升级文件存储到目的存储空间中。
具体的,以第一存储空间为目标存储空间为例,嵌入式设备中的CPU301可以向第一存储空间305发送擦除指令。第一存储空间305接收并响应该擦除指令,执行擦除操作,将所存储的系统文件擦除。在擦除过程中,嵌入式设备可以周期性向第一存储空间305的状态寄存器发送查询指令,以确定第一存储空间305中的系统文件擦除完。嵌入式设备在确定第一存储空间305中的系统文件擦除掉后,可以向RAM303发送读取指令,该读取指令用于获取RAM303中的系统升级文件。RAM103响应该读取指令,将所保存的系统升级文件发送给嵌入式设备,例如发送给CPU301。之后,嵌入式设备中的CPU301将接收的系统升级文件写入第一存储空间305,即将系统升级文件存储在目的存储空间。
需要说明的是,在本发明实施例中,嵌入式设备可以通过CPU301确定目的存储空间后,再通过CPU301获取服务器302中的系统升级文件,并将系统升级文件存储在目的存储空间;或者,嵌入式设备可以通过CPU301获取服务器302中的系统升级文件后,再确定目的存储空间,并将系统升级文件存储在目的存储空间。本发明中对这两个过程的先后顺序不作特别限定。
步骤402:嵌入式设备将两个存储空间的存储地址映射到CPU301的第一地址空间和第二地址空间。
其中,第一地址空间和第二地址空间连续,且第一地址空间的首地址小于第二地址空间的首地址。目的存储空间的存储地址映射到第一地址空间,另一存储空间的存储地址映射到第二地址空间。
当嵌入式设备中的CPU301将系统升级文件存储到目的存储空间后,可以重新启动嵌入式设备。嵌入式设备重新启动后,地址转换模块307将启动程序存储空间304映射到CPU301的启动程序地址空间。此时,CPU301可以加载启动程序存储空间304中存储的启动程序BootLoader,对嵌入式设备进行初始化,之后嵌入式设备中的CPU301将依序执行第一地址空间对应文件。为了能够对嵌入式设备进行升级,第一地址空间对应的文件可以认为是系统升级文件,而系统升级文件存储在目的存储空间,因此初始化时可以将目的存储空间映射到CPU301的第一地址空间,另一存储空间映射到CPU301的第二地址空间。
在本发明实施例中,嵌入式设备重新启动后,嵌入式设备中的CPU301可以再次获取第一存储空间305和第二存储空间306中系统文件的版本序列号,从而根据两个版本序列号确定两个系统文件的存储空间与嵌入式设备中的CPU301的两个地址之间的映射关系,也可以理解为地址转换模块307的映射模式。
具体的,例如,第一存储空间305中系统文件的版本序列号可以为V1.0.2,第二存储空间中系统文件的版本序列号可以为V1.0.1,即第一存储空间305中存储的是最新的系统升级文件。当嵌入式设备中的CPU301获取第一存储空间305和第二存储空间306中系统文件的版本序列号,可以确定第一存储空间305的中系统文件的版本序列号高于第二存储空间306中的系统文件的版本序列号,那么可以将第一存储空间305映射到嵌入式设备中的CPU301的第一地址空间,第二存储空间306映射到嵌入式设备中的CPU301的第二地址空间,即确定地址转换模块的映射模式是直接映射。此时,嵌入式设备中的CPU301可以向地址转换模块307发送第一控制指令,该第一控制指令用于指示嵌入式设备中的地址转换模块307将自身寄存器的值设置为0。嵌入式设备中的地址转换模块307接收该第二控制指令后,将寄存器的值设置为0,即嵌入式设备中的地址转换模块307的映射方式设置为直接映射。那么第一存储空间305映射到嵌入式设备中的CPU301的第一地址空间,第二存储空间306映射到嵌入式设备中的CPU301的第二地址空间。
例如,第一存储空间305中系统文件的版本序列号可以为V1.0.2,第二存储空间306中的系统文件的版本序列号可以为V1.0.3,即第二存储空间306中存储的是最新的系统升级文件。当嵌入式设备中的CPU301获取第一存储空间305和第二存储空间306中系统文件的版本序列号,可以确定第二存储空间306中的系统文件的版本序列号高于第一存储空间305中的系统文件的版本序列号,那么可以将第二存储空间306映射到嵌入式设备中的CPU301的第一地址空间,第一存储空间305映射到嵌入式设备中的CPU301的第二地址空间,即确定地址转换模块的映射模式是交叉映射。此时,嵌入式设备中的CPU301可以向地址转换模块307发送第二控制指令,该第二控制指令用于指示嵌入式设备中的地址转换模块307将自身寄存器的值设置为1。嵌入式设备中的地址转换模块307接收该第二控制指令后,将寄存器的值设置为1,即嵌入式设备中的地址转换模块307的映射方式设置为交叉映射。那么第二存储空间306映射到嵌入式设备中的CPU301的第一地址,第一存储空间305映射到嵌入式设备中的CPU301的第二地址。
步骤403:加载第一地址空间对应的文件,以对嵌入式设备进行升级。
由于嵌入式设备中的CPU301中的第一地址空间与第二地址空间是连续的,且第一地址空间的首地址小于第二地址空间的首地址,因此,嵌入式设备中的CPU301会优先加载第一地址空间对应的第一存储空间305中存储的系统升级文件。在嵌入式设备中的CPU301执行第一地址空间对应的系统升级文件的过程中,若嵌入式设备中的CPU301确定该系统升级文件存在错误,可能会导致升级过程中断。此时嵌入式设备中的CPU301可以跳转到第二地址空间,执行第二地址空间对应的第二存储空间306中存储的系统文件,使得即使系统升级出现错误,仍然不会影响嵌入式设备的正常运行。
下面结合附图介绍本发明实施例提供的装置。
请参见图5,基于同一发明构思,本发明实施例提供一种嵌入式设备,该嵌入式设备包括:确定模块501、映射模块502和升级模块503。
确定模块501,用于确定将系统升级文件存储在两个存储空间中的目的存储空间,其中,目的存储空间存储的系统升级文件的版本序列号高于另一存储空间存储的系统文件的版本序列号;
映射模块502,用于将两个存储空间的存储地址映射到中央处理器301的第一地址空间和第二地址空间,其中,目的存储空间的存储地址映射到第一地址空间,另一存储空间的存储地址映射到第二地址空间,第一地址空间和第二地址空间连续,且第一地址空间的首地址小于第二地址空间的首地址;
升级模块503,用于加载第一地址空间对应的文件,以对嵌入式设备进行升级。
可选的,确定模块501具体用于:
获取第一系统文件的第一版本序列号和第二系统文件的第二版本序列号,其中,第一系统文件存储在第一存储空间305,第二系统文件存储在第二存储空间306;
若第一版本序列号低于第二版本序列号,则将第一存储空间305确定为目的存储空间;或,
若第一版本序列号高于第二版本序列号,则将第二存储空间306确定为目的存储空间。
可选的,映射模块502具体用于:
若第一存储空间305确定为目的存储空间,则将第一存储空间305的存储地址映射到第一地址空间,以及将第二存储空间306的存储地址映射到第二地址空间;或者,
若第二存储空间306确定为目的存储空间,则将第二存储空间306的存储地址映射到第一地址空间,以及将第一存储空间305的存储地址映射到第二地址空间。
可选的,中央处理器301存储有启动程序,启动程序用于加载第一地址空间对应的文件;升级模块503具体用于:
运行启动程序。
可选的,启动程序地址空间、所述第一地空间址以及所述第二地址空间依次连续。
请参见图6,基于同一发明构思,本发明实施例提供一种嵌入式设备,该嵌入式设备包括:至少一个处理器601,处理器601用于执行存储器中存储的计算机程序,实现本发明实施例提供的如图4所示的嵌入式设备的升级方法的步骤。
可选的,处理器601具体可以是中央处理器、特定应用集成电路(applicationspecific integrated circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路。
可选的,该嵌入式设备还包括与至少一个处理器601连接的存储器602,存储器602可以包括只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)和磁盘存储器。存储器602用于存储处理器601运行时所需的数据,即存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,执行如图4所示的方法。其中,存储器602的数量为一个或多个。其中,存储器602在图6中一并示出,但需要知道的是存储器602不是必选的功能模块,因此在图6中以虚线示出。
其中,确定模块501、映射模块502和升级模块503所对应的实体设备均可以是前述的处理器601。该嵌入式设备可以用于执行图4所示的实施例所提供的方法。因此关于该装置中各功能模块所能够实现的功能,可参考图4所示的实施例中的相应描述,不多赘述。
本发明实施例还提供一种计算机存储介质,其中,计算机存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图4所述的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
Claims (10)
1.一种嵌入式设备的升级方法,其特征在于,所述方法包括:
确定将系统升级文件存储在两个存储空间中的目的存储空间,其中,所述目的存储空间存储的系统升级文件的版本序列号高于另一存储空间存储的系统文件的版本序列号;
将所述两个存储空间的存储地址映射到中央处理器的第一地址空间和第二地址空间,其中,所述目的存储空间的存储地址映射到所述第一地址空间,所述另一存储空间的存储地址映射到所述第二地址空间,所述第一地址空间和所述第二地址连续空间,且所述第一地址空间的首地址小于所述第二地址空间的首地址;
加载所述第一地址空间对应的文件,以对所述嵌入式设备进行升级。
2.如权利要求1所述的方法,其特征在于,所述两个存储空间包括第一存储空间和第二存储空间,确定将系统升级文件存储在两个存储空间中的目的存储空间,包括:
获取第一系统文件的第一版本序列号和第二系统文件的第二版本序列号,其中,所述第一系统文件存储在所述第一存储空间,所述第二系统文件存储在所述第二存储空间;
若所述第一版本序列号低于所述第二版本序列号,则将所述第一存储空间确定为所述目的存储空间;或,
若所述第一版本序列号高于所述第二版本序列号,则将所述第二存储空间确定为所述目的存储空间。
3.如权利要求2所述的方法,其特征在于,将所述两个存储空间的存储地址映射到中央处理器的第一地址空间和第二地址空间,包括:
若将所述第一存储空间确定为所述目的存储空间,则将所述第一存储空间的存储地址映射到所述第一地址空间,以及将所述第二存储空间的存储地址映射到所述第二地址空间;或者,
若将所述第二存储空间确定为所述目的存储空间,则将所述第二存储空间的存储地址映射到所述第一地址空间,以及将所述第一存储空间的存储地址映射到所述第二地址空间。
4.如权利要求1-3任意一项所述的方法,其特征在于,所述中央处理器存储有启动程序,所述启动程序用于加载所述第一地址空间对应的文件;加载所述第一地址空间对应的文件,包括:
运行所述启动程序。
5.如权利要求4所述的方法,其特征在于,所述启动程序地址空间、所述第一地址空间以及所述第二地址空间依次连续。
6.一种嵌入式设备,其特征在于,包括:
确定模块,用于确定将系统升级文件存储在两个存储空间中的目的存储空间,其中,所述目的存储空间存储的系统升级文件的版本序列号高于另一存储空间存储的系统文件的版本序列号;
映射模块,用于将所述两个存储空间的存储地址映射到中央处理器的第一地址空间和第二地址空间,其中,所述目的存储空间的存储地址映射到所述第一地址空间,所述另一存储空间的存储地址映射到所述第二地址空间,所述第一地址空间和所述第二地址空间连续,且所述第一地址空间的首地址小于所述第二地址空间的首地址;
升级模块,用于加载所述第一地址空间对应的文件,以对所述嵌入式设备进行升级。
7.如权利要求6所述的嵌入式设备,其特征在于,所述确定模块具体用于:
获取第一系统文件的第一版本序列号和第二系统文件的第二版本序列号,其中,所述第一系统文件存储在所述第一存储空间,所述第二系统文件存储在所述第二存储空间;
若所述第一版本序列号低于所述第二版本序列号,则将所述第一存储空间确定为所述目的存储空间;或,
若所述第一版本序列号高于所述第二版本序列号,则将所述第二存储空间确定为所述目的存储空间。
8.如权利要求7所述的嵌入式设备,其特征在于,所述映射模块具体用于:
当所述第一存储空间确定为所述目的存储空间,则将所述第一存储空间的存储地址映射到所述第一地址空间,以及将所述第二存储空间的存储地址映射到所述第二地址空间;或者,
当所述第二存储空间确定为所述目的存储空间,则将所述第二存储空间的存储地址映射到所述第一地址空间,以及将所述第一存储空间的存储地址映射到所述第二地址空间。
9.如权利要求6-8任意一项所述的嵌入式设备,其特征在于,所述中央处理器存储有启动程序,所述启动程序用于加载所述第一地址空间对应的文件;所述升级模块具体用于:
运行所述启动程序。
10.一种嵌入式设备,其特征在于,所述嵌入式设备包括至少一个处理器以及与所述至少一个处理器连接的存储器,所述至少一个处理器用于执行所述存储器中存储的计算机程序时实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911017178.6A CN111026417A (zh) | 2019-10-24 | 2019-10-24 | 一种嵌入式设备的升级方法及嵌入式设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201911017178.6A CN111026417A (zh) | 2019-10-24 | 2019-10-24 | 一种嵌入式设备的升级方法及嵌入式设备 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN111026417A true CN111026417A (zh) | 2020-04-17 |
Family
ID=70201503
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201911017178.6A Pending CN111026417A (zh) | 2019-10-24 | 2019-10-24 | 一种嵌入式设备的升级方法及嵌入式设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111026417A (zh) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111857791A (zh) * | 2020-07-06 | 2020-10-30 | 浙江鸿泉电子科技有限公司 | 嵌入式产品维护方法、装置、电子设备及存储介质 |
| CN112506545A (zh) * | 2020-12-14 | 2021-03-16 | 珠海格力智能装备有限公司 | 工控设备的系统升级方法及系统升级装置、电控设备 |
| CN115640265A (zh) * | 2022-09-28 | 2023-01-24 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备和计算机可读存储介质 |
| CN115878145A (zh) * | 2022-11-11 | 2023-03-31 | 深圳心派科技有限公司 | 电子设备及其系统升级方法、计算机可读存储介质 |
| CN119065898A (zh) * | 2024-11-04 | 2024-12-03 | 荣耀终端有限公司 | 一种设备重启的方法、终端设备及相关介质 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101169749A (zh) * | 2007-11-20 | 2008-04-30 | 中兴通讯股份有限公司 | 软件版本升级管理装置和软件版本升级管理方法 |
| CN102722394A (zh) * | 2012-06-08 | 2012-10-10 | 深圳路迪网络有限公司 | 一种嵌入式设备的启动升级方法 |
| CN103116502A (zh) * | 2011-11-17 | 2013-05-22 | 国家纳米技术与工程研究院 | 一种利用主备版本备份实现升级的方法 |
| CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
| CN107678762A (zh) * | 2017-09-26 | 2018-02-09 | 杭州中天微系统有限公司 | 一种系统版本升级方法及装置 |
| CN109032846A (zh) * | 2018-08-08 | 2018-12-18 | 京信通信系统(中国)有限公司 | 设备远程备份升级方法、装置、计算机存储介质及设备 |
| CN110333890A (zh) * | 2019-06-28 | 2019-10-15 | 南京兆伏电力科技有限公司 | 远程烧写固化flash数据的方法 |
-
2019
- 2019-10-24 CN CN201911017178.6A patent/CN111026417A/zh active Pending
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101169749A (zh) * | 2007-11-20 | 2008-04-30 | 中兴通讯股份有限公司 | 软件版本升级管理装置和软件版本升级管理方法 |
| CN103116502A (zh) * | 2011-11-17 | 2013-05-22 | 国家纳米技术与工程研究院 | 一种利用主备版本备份实现升级的方法 |
| CN102722394A (zh) * | 2012-06-08 | 2012-10-10 | 深圳路迪网络有限公司 | 一种嵌入式设备的启动升级方法 |
| CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
| CN107678762A (zh) * | 2017-09-26 | 2018-02-09 | 杭州中天微系统有限公司 | 一种系统版本升级方法及装置 |
| CN109032846A (zh) * | 2018-08-08 | 2018-12-18 | 京信通信系统(中国)有限公司 | 设备远程备份升级方法、装置、计算机存储介质及设备 |
| CN110333890A (zh) * | 2019-06-28 | 2019-10-15 | 南京兆伏电力科技有限公司 | 远程烧写固化flash数据的方法 |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111857791A (zh) * | 2020-07-06 | 2020-10-30 | 浙江鸿泉电子科技有限公司 | 嵌入式产品维护方法、装置、电子设备及存储介质 |
| CN112506545A (zh) * | 2020-12-14 | 2021-03-16 | 珠海格力智能装备有限公司 | 工控设备的系统升级方法及系统升级装置、电控设备 |
| CN115640265A (zh) * | 2022-09-28 | 2023-01-24 | 深信服科技股份有限公司 | 一种数据处理方法、装置、设备和计算机可读存储介质 |
| CN115878145A (zh) * | 2022-11-11 | 2023-03-31 | 深圳心派科技有限公司 | 电子设备及其系统升级方法、计算机可读存储介质 |
| CN115878145B (zh) * | 2022-11-11 | 2023-09-26 | 深圳心派科技有限公司 | 电子设备及其系统升级方法、计算机可读存储介质 |
| CN119065898A (zh) * | 2024-11-04 | 2024-12-03 | 荣耀终端有限公司 | 一种设备重启的方法、终端设备及相关介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111026417A (zh) | 一种嵌入式设备的升级方法及嵌入式设备 | |
| CN104572229B (zh) | 嵌入式系统的固件升级方法以及固件升级装置 | |
| WO2022007656A1 (zh) | Bootloader软件更新方法、装置、嵌入式控制器以及存储介质 | |
| JP2007213571A (ja) | 新奇的なメモリアーキテクチャ内の直接メモリアクセスを用いてシステムを起動する方法 | |
| CN103299276A (zh) | 嵌入式装置的软件更新过程 | |
| WO2019156062A1 (ja) | 情報処理システム、情報処理装置、情報処理装置のbios更新方法、及び情報処理装置のbios更新プログラム | |
| CN110874237A (zh) | 软件升级方法、装置、终端以及可读存储介质 | |
| CN100362470C (zh) | 一种bios在线升级装置及方法 | |
| US20220244946A1 (en) | Ota master, update control method, non-transitory storage medium, and vehicle | |
| EP3923139B1 (en) | Electronic control device and method for using non-volatile memory | |
| CN113157303A (zh) | 升级方法、嵌入式系统、终端及计算机存储介质 | |
| CN112860291A (zh) | 固件升级方法及装置 | |
| CN102298531B (zh) | 在嵌入式系统中对闪存文件系统进行升级的方法 | |
| US11768669B2 (en) | Installing application program code on a vehicle control system | |
| CN109976958B (zh) | 提升固件测试效率的方法、装置及存储介质 | |
| CN109697077B (zh) | 硬盘固件启动方法、装置及设备 | |
| CN118796288A (zh) | 执行硬件初始化操作的方法、装置、计算机设备及存储介质 | |
| CN112199109A (zh) | 一种固件升级方法、装置、设备及介质 | |
| JP2002175193A (ja) | プログラム書き換え装置及びプログラム書き換え方法 | |
| CN116301973A (zh) | 固件升级方法、装置、设备及可读存储介质 | |
| CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
| JP2018160208A (ja) | 車載制御装置、及び、プログラム更新ソフトウェア | |
| US12511040B2 (en) | Memory system, firmware update method, and program field | |
| US12504961B2 (en) | Electronic control system for vehicle firmware | |
| CN112015456A (zh) | 一种BootLoader程序更新方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| RJ01 | Rejection of invention patent application after publication | ||
| RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200417 |