CN108897564A - 一种嵌入式***的软件升级方法及嵌入式*** - Google Patents

一种嵌入式***的软件升级方法及嵌入式*** Download PDF

Info

Publication number
CN108897564A
CN108897564A CN201810581933.2A CN201810581933A CN108897564A CN 108897564 A CN108897564 A CN 108897564A CN 201810581933 A CN201810581933 A CN 201810581933A CN 108897564 A CN108897564 A CN 108897564A
Authority
CN
China
Prior art keywords
upgrading
embedded system
application layer
compressed package
storage
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
Application number
CN201810581933.2A
Other languages
English (en)
Inventor
王冰峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Comba Network Systems Co Ltd
Original Assignee
Comba Telecom Technology Guangzhou Ltd
Comba Telecom Systems China Ltd
Comba Telecom Systems Guangzhou Co Ltd
Tianjin Comba Telecom Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Comba Telecom Technology Guangzhou Ltd, Comba Telecom Systems China Ltd, Comba Telecom Systems Guangzhou Co Ltd, Tianjin Comba Telecom Systems Co Ltd filed Critical Comba Telecom Technology Guangzhou Ltd
Priority to CN201810581933.2A priority Critical patent/CN108897564A/zh
Publication of CN108897564A publication Critical patent/CN108897564A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种嵌入式***的软件升级方法及嵌入式***,用以解决现有的嵌入式***进行软件升级的方式存在成本高、容易因为断电导致升级失败的技术问题。所述嵌入式***包括非易失性存储器,该非易失性存储器配置有引导区、运行区和下载区,其中,引导区用于存储升级执行程序,运行区用于存储应用层程序,下载区用于存储升级压缩包,所述方法包括:在确定需要执行升级操作时,通过运行引导区存储的升级执行程序控制执行升级操作,其中,执行升级操作包括:对下载区存储的升级压缩包进行解压缩以获得新版本应用层程序,并使用新版本应用层程序覆盖运行区存储的应用层程序。

Description

一种嵌入式***的软件升级方法及嵌入式***
技术领域
本发明涉及电子技术领域,尤其涉及一种嵌入式***的软件升级方法及嵌入式***。
背景技术
单片机等嵌入式***通常应用在中小型产品上,其内部通常集成有非易失性存储器(如闪存Flash)和内存(如随机存取存储器RAM)。出于成本的考虑,嵌入式***内的非易失性存储器和内存的存储资源非常有限。
嵌入式***中,应用层程序通常存储在非易失性存储器中,以非易失性存储器采用Flash为例,现有技术中对嵌入式***的应用层程序进行升级通常有如下的几种方式:
方式1:为嵌入式***配备主、备两块Flash,先升级备Flash中的应用层程序,然后切换主、备Flash,将原来的备Flash切换为主Flash,将原来的主Flash切换为备Flash;
方式2:先将Flash内存储的应用层程序加载到内存中运行,然后直接下载新版本应用层程序写入Flash中;
方式3:先下载新版本应用层程序到内存中运行,然后复制内存中的新版本应用层程序到Flash中。
然而,通过实际使用发现,上述的方式1由于需要额外配备Flash,增加了嵌入式***的成本,上述的方式2、3中,由于需要用内存加载应用层程序,因而需要采用存储量较大的内存,成本较高,并且,上述的方式2、3中,若升级过程中发生断电,则内存中的数据会丢失,导致软件无法启动或升级文件下载失败。
可见,现有的嵌入式***进行软件升级的方式存在成本高、容易因为断电导致升级失败的技术问题。
发明内容
本发明实施例提一种嵌入式***的软件升级方法及嵌入式***供,用以解决现有的嵌入式***进行软件升级的方式存在成本高、容易因为断电导致升级失败的技术问题。
第一方面,提供一种嵌入式***的软件升级方法,所述嵌入式***包括非易失性存储器,所述非易失性存储器配置有引导区、运行区和下载区,所述引导区用于存储升级执行程序,所述运行区用于存储应用层程序,所述下载区用于存储升级压缩包,所述方法包括:
在确定需要执行升级操作时,通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,其中,所述执行所述升级操作包括:对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序,并使用所述新版本应用层程序覆盖所述运行区存储的应用层程序。
在一种可能的实现方式中,所述嵌入式***还包括内存,所述内存配置有用于在所述嵌入式***内实现全局缓冲的全局缓冲区,对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序,并使用所述新版本应用层程序覆盖所述运行区存储的应用层程序,包括:
以预设的解压缩数据量,对所述下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在所述全局缓冲区;
在每次解压缩完成后,将所述全局缓冲区存储的数据覆盖式存储至所述运行区,以在所述运行区中组成所述新版本应用层程序。
在一种可能的实现方式中,所述非易失性存储器还配置有升级信息区,所述升级信息区用于存储所述升级压缩包的校验信息,所述升级信息区存储的校验信息是下载所述升级压缩包至所述下载区时由所述嵌入式***确定的,所述执行所述升级操作还包括:
在对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序之前,确定所述升级压缩包中记录的校验信息是否与所述升级信息区存储的校验信息一致;
若否,则停止执行所述升级操作。
在一种可能的实现方式中,所述升级信息区还用于存储升级指示信息,所述升级指示信息用于指示是否需要执行所述升级操作,在所述通过运行所述引导区存储的所述升级执行程序执行所述升级操作之前,所述方法还包括:
接收升级请求,并根据所述升级请求下载所述升级压缩包至所述下载区;
在下载完成所述升级压缩包后,调整所述升级指示信息为指示需要执行所述升级操作,以在所述嵌入式***启动时根据所述升级指示信息确定需要执行所述升级操作。
第二方面,提供一种嵌入式***,所述嵌入式***包括非易失性存储器和处理器,所述非易失性存储器配置有引导区、运行区和下载区,所述引导区用于存储升级执行程序,所述运行区用于存储应用层程序,所述下载区用于存储升级压缩包;
其中,所述处理器在确定需要执行升级操作时,通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,所述处理器执行所述升级操作包括:对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序,并使用所述新版本应用层程序覆盖所述运行区存储的应用层程序。
在一种可能的实现方式中,所述嵌入式***还包括内存,所述内存配置有用于在所述嵌入式***内实现全局缓冲的全局缓冲区,所述处理器通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,包括:
以预设的解压缩数据量,对所述下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在所述全局缓冲区;
在每次解压缩完成后,将所述全局缓冲区存储的数据覆盖式存储至所述运行区,以在所述运行区中组成所述新版本应用层程序。
在一种可能的实现方式中,所述非易失性存储器还配置有升级信息区,所述升级信息区用于存储所述升级压缩包的校验信息,所述升级信息区存储的校验信息是下载所述升级压缩包至所述下载区时由所述嵌入式***确定的,所述处理器通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,还包括:
在对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序之前,确定所述升级压缩包中记录的校验信息是否与所述升级信息区存储的校验信息一致;
若否,则停止执行所述升级操作。
在一种可能的实现方式中,所述升级信息区还用于存储升级指示信息,所述升级指示信息用于指示是否需要执行所述升级操作,所述处理器还用于在通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作之前,通过运行所述运行区存储的所述应用层程序控制执行:
接收升级请求,并根据所述升级请求下载所述升级压缩包至所述下载区;
在下载完成所述升级压缩包后,调整所述升级指示信息为指示需要执行所述升级操作,以在所述嵌入式***运行所述升级执行程序引导启动时根据所述升级指示信息确定需要执行所述升级操作。
第三方面,提供一种嵌入式***,所述嵌入式***包括非易失性存储器,所述非易失性存储器配置有引导区、运行区和下载区,其中,所述引导区配置有升级执行模块,所述运行区配置有应用层模块,所述下载区用于存储升级压缩包,所述升级执行模块用于:
在确定需要执行升级操作时,执行所述升级操作,其中,执行所述升级操作包括:对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层模块,并使用所述新版本应用层模块更新所述运行区配置的应用层模块。
在一种可能的实现方式中,所述嵌入式***还包括内存,所述内存配置有用于在所述嵌入式***内实现全局缓冲的全局缓冲区,所述升级执行模块具体用于:
以预设的解压缩数据量,对所述下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在所述全局缓冲区;
在每次解压缩完成后,将所述全局缓冲区存储的数据覆盖式存储至所述运行区,以在所述运行区中组成所述新版本应用层模块。
在一种可能的实现方式中,所述非易失性存储器还配置有升级信息区,所述升级信息区用于存储所述升级压缩包的校验信息,所述升级信息区存储的校验信息是下载所述升级压缩包至所述下载区时由所述嵌入式***确定的,所述升级执行模块还用于:
在对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层模块之前,确定所述升级压缩包中记录的校验信息是否与所述升级信息区存储的校验信息一致;
若否,则停止执行所述升级操作。
在一种可能的实现方式中,所述升级信息区还用于存储升级指示信息,所述升级指示信息用于指示是否需要执行所述升级操作,所述运行区配置的应用层模块用于:
在所述升级执行模块执行所述升级操作之前,接收升级请求,并根据所述升级请求下载所述升级压缩包至所述下载区;
在下载完成所述升级压缩包后,调整所述升级指示信息为指示需要执行所述升级操作,以在所述嵌入式***启动时根据所述升级指示信息确定需要执行所述升级操作。
第四方面,提供一种非易失性存储器,其中:
所述非易失性存储器配置有引导区、运行区和下载区,所述引导区用于存储升级执行程序,所述运行区用于存储应用层程序,所述下载区用于存储升级压缩包,当所述非易失性存储器存储的程序在嵌入式***上运行时,使得嵌入式***执行第一方面所述的方法。
本发明实施例中,嵌入式***的非易失性存储器配置有引导区、运行区和下载区,引导区用于存储升级执行程序,运行区用于存储应用层程序,下载区用于存储升级压缩包,在确定需要执行升级操作时,通过运行引导区存储的升级执行程序控制执行升级操作,即通过运行引导区存储的程序控制执行:对下载区存储的升级压缩包进行解压缩以获得新版本应用层程序,并使用新版本应用层程序覆盖运行区存储的应用层程序。
由于对非易失性存储器进行了划区,在升级过程中不升级的存储区的数据不会受到影响,仍能够正常运行,例如,引导区的升级执行程序的运行不会受到影响。这样,就不需要在升级时将升级执行程序加载到内存中,减少了对嵌入式***中内存存储量的需求,节约了成本。
进一步地,由于升级压缩包和运行区原有的应用层程序始终都是存储在非易失性存储器中的,因而即使发生断电,也不会导致嵌入式***内的重要数据丢失,在断电后,只需要重新启动执行升级操作就可以顺利完成升级。并且,由于不需要将整个应用层程序加载到内存或额外的非易失性存储器中,减少了升级过程中对嵌入式***中存储量的需求,节约了成本。
进一步地,下载的升级压缩包相较于未压缩的新版本应用层程序占用空间较小,减少了升级过程中对嵌入式***中存储量的需求,节约了成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例中一种嵌入式***的软件升级方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。另外,需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
实施例一
本发明实施例提供一种嵌入式***的软件升级方法。其中,嵌入式***例如可以是指单片机,也可以是指现有技术中其它类型的嵌入式***。
本发明实施例中,嵌入式***至少包括有非易失性存储器,该非易失性存储器可以集成在嵌入式***中。具体来说,该非易失性存储器可以是闪存(Flash)、可编程只读存储器(Programmable read-only memory,PROM)、电可改写只读存储器(Electricallyalterable read only memory,EAROM)、可擦可编程只读存储器(Erasable programmableread only memory,EPROM)、电可擦可编程只读存储器(Electrically erasableprogrammable read only memory,EEPROM)等。
本发明实施例中,嵌入式***中的该非易失性存储器配置有多个存储区,例如可以配置有引导区、运行区和下载区。在一种可能的实施方式中,该非易失性存储器还可以配置有升级信息区。在具体的实施过程中,可以通过在各存储区存储不同的数据使得嵌入式***基于各存储区实现特定的功能。
举例来说:
1、引导区用于存储升级执行程序,该升级执行程序可以引导嵌入式***启动以及指示嵌入式***执行升级操作,引导区存储的升级执行程序的所有代码均只调用引导区间内的代码,不可调用其它区间的代码,嵌入式***启动时首先运行引导区内存储的程序;
2、运行区用于存储应用层程序,应用层程序可以指示嵌入式***实现业务功能;在引导区存储的程序执行结束后,跳转运行该运行区存储的程序;
3、下载区用于存储升级压缩包,该升级压缩包是对新版本应用层程序压缩后获得的,相较于未压缩的新版本应用层程序,升级压缩包占用的空间更小;在一种可能的实施方式中,升级压缩包中除了包括新版本应用层程序外,其头部还可以记录有该升级压缩包的数据量大小和校验值;
4、升级信息区用于存储与升级相关的指示信息和/或校验信息。
以嵌入式***包括存储空间为256KB的Flash为例,该Flash的内部空间可以采用如表1所示的划分方式:
表1
存储区名称 存储区说明 存储区大小
引导区 存储升级执行程序 8KB
运行区 存储应用层程序 160KB
下载区 存储升级压缩包 80K
升级信息区 存储与升级相关的指示信息和/或校验信息 2KB
在表1中,引导区存储的升级执行程序的大小通常不超过8KB,升级信息区通常占用Flash的一个最小擦除空间(例如2KB)。并且,该Flash的内部空间除了划分给表1中所示的各存储区外,还可以存在剩余的空间。
本发明实施例中,在嵌入式***开启后处于运行状态时,即嵌入式***运行应用层程序时,嵌入式***可以接收到用于指示进行升级的升级请求,该升级请求例如可以是管理嵌入式***的主机远程发送给嵌入式***的。
在接收到升级请求后,嵌入式***可以根据升级请求下载升级压缩包至非易失性存储器中的下载区。
在下载升级压缩包的过程中,嵌入式***可以确定出所下载的升级压缩包的校验信息,这些校验信息被存储在非易失性存储器的升级信息区。其中,校验信息可以包括升级压缩包的数据量大小和/或升级压缩包的校验值(如哈希值)。例如,嵌入式***在下载升级压缩包后会记录升级压缩包的数据量大小,以及在计算出升级压缩包的校验值并记录下该校验值。
在下载完成升级压缩包后,嵌入式***可以调整升级信息区存储的升级指示信息为指示需要执行升级操作,进而,使得嵌入式***启动时可以根据升级指示信息确定需要执行升级操作。
在一种可能的实施方式中,嵌入式***在调整指示信息为指示需要执行升级操作之前,还可以先对下载的升级压缩包进行验证,确定升级压缩包中记录的校验信息是否与升级信息区存储的校验信息一致,如果一致才调整指示信息为指示需要执行升级操作,否则不调整。
本发明实施例中,在调整指示信息为指示需要执行升级操作后,嵌入式***可以立即进行复位,或在预设时间后进行复位,或在升级请求指定的时间进行复位,或根据单独接收到的复位指令进行复位。
而在嵌入式***复位后进行启动时,首先运行引导区的升级执行程序。
运行升级执行程序过程中,嵌入式***可以先根据升级信息区存储的升级指示信息确定是否需要执行升级操作,如果升级指示信息指示需要执行升级操作,则嵌入式***执行升级操作,否则嵌入式***停止运行升级执行程序,转而运行存储于运行区的应用层程序。
在确定需要执行升级操作时,嵌入式***通过运行引导区存储的升级执行程序控制执行升级操作,具体来说,执行升级操作至少包括:
对下载区存储的升级压缩包进行解压缩以获得新版本应用层程序,并使用新版本应用层程序覆盖运行区存储的应用层程序。也就是说,使用新版本应用层程序覆盖运行区原本存储的应用层程序,实现嵌入式***的软件升级。
在一种可能的实施方式中,嵌入式***执行升级操作的过程中,在对下载区存储的升级压缩包进行解压缩以获得新版本应用层程序之前,还可以包括对升级压缩包进行验证的操作,即嵌入式***可以确定升级压缩包中记录的校验信息是否与升级信息区存储的校验信息一致,如果一致才进行解压缩操作,否则嵌入式***停止执行升级操作,转而运行存储于运行区的应用层程序。
本发明实施例中,嵌入式***还包括内存,该内存配置有用于在嵌入式***内实现全局缓冲的全局缓冲区,即,该全局缓冲区为一个复用的缓冲区,运行嵌入式***内的各程序时均可以使用该全局缓冲区,例如,除了运行升级执行程序时可以使用该全局缓冲区外,运行应用层程序时同样可以使用该全局缓冲区。通过配置全局缓冲区,实现了内存资源的高效利用。
在一种可能的实施方式中,执行升级操作时对下载区存储的升级压缩包进行解压缩以获得新版本应用层程序,并使用新版本应用层程序覆盖运行区存储的应用层程序的具体实施方式可以是:
以预设的解压缩数据量,对下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在所述全局缓冲区,并且,在每次解压缩完成后,将全局缓冲区存储的数据覆盖式存储至运行区,以在运行区中组成新版本应用层程序。
举例来说,在分次解压缩升级压缩包的过程中,每次只解压缩1KB的数据,通过多次的解压缩完成对整个升级压缩包的解压缩。以压缩后的新版本应用层程序为3KB的压缩数据为例,嵌入式***首先解压缩3KB中的第一KB数据,解压缩获得的第一份临时数据存储在全局缓冲区中,然后将第一份临时数据覆盖式存储至运行区中,接着,嵌入式***擦除全局缓冲区中的第一份临时数据,并开始解压缩3KB中的第二KB数据,解压缩获得的第二份临时数据存储在全局缓冲区中,然后将第二份临时数据覆盖式存储至运行区中,接着,嵌入式***擦除全局缓冲区中的第二份临时数据,并开始解压缩3KB中的第三KB数据,解压缩获得的第三份临时数据存储在全局缓冲区中,然后将第三份临时数据覆盖式存储至运行区中,这三份临时数据在运行区中组成新版本应用层程序。
请参见图1,图1所示为本发明实施例中嵌入式***的软件升级方法的一种可能的实施方式的流程示意图。应当说明的是,该流程图仅用于理解本发明实施例的方法,而并不用于限定本发明实施例中的方法。在具体的实施过程中,图1所示的各步骤可以根据实际需要进行删减,或增加新的步骤。
在一种可能的实施方式中,图1中的步骤101、步骤102、步骤103、步骤104和步骤110可以是由嵌入式***通过运行存储于运行区的程序控制执行的,步骤105、步骤106、步骤107、步骤108、步骤109可以是由嵌入式***通过运行引导区存储的程序控制执行的。
实施例二
基于同一发明构思,本发明实施例提供一种嵌入式***,该嵌入式***包括非易失性存储器和处理器,该非易失性存储器配置有引导区、运行区和下载区,该引导区用于存储升级执行程序,该运行区用于存储应用层程序,该下载区用于存储升级压缩包。
其中,该处理器在确定需要执行升级操作时,通过运行该引导区存储的该升级执行程序控制执行该升级操作,该处理器执行该升级操作包括:对该下载区存储的该升级压缩包进行解压缩以获得新版本应用层程序,并使用该新版本应用层程序覆盖该运行区存储的应用层程序。
在一种可能的实施方式中,该嵌入式***还包括内存,该内存配置有用于在该嵌入式***内实现全局缓冲的全局缓冲区,该处理器通过运行该引导区存储的该升级执行程序控制执行该升级操作,包括:
以预设的解压缩数据量,对该下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在该全局缓冲区;
在每次解压缩完成后,将该全局缓冲区存储的数据覆盖式存储至该运行区,以在该运行区中组成该新版本应用层程序。
在一种可能的实施方式中,该非易失性存储器还配置有升级信息区,该升级信息区用于存储该升级压缩包的校验信息,该升级信息区存储的校验信息是下载该升级压缩包至该下载区时由该嵌入式***确定的,该处理器通过运行该引导区存储的该升级执行程序控制执行该升级操作,还包括:
在对该下载区存储的该升级压缩包进行解压缩以获得新版本应用层程序之前,确定该升级压缩包中记录的校验信息是否与该升级信息区存储的校验信息一致;若否,则停止执行该升级操作。
在一种可能的实施方式中,该升级信息区还用于存储升级指示信息,该升级指示信息用于指示是否需要执行该升级操作,该处理器还用于在通过运行该引导区存储的该升级执行程序控制执行该升级操作之前,通过运行该运行区存储的该应用层程序控制执行:
接收升级请求,并根据该升级请求下载该升级压缩包至该下载区;在下载完成该升级压缩包后,调整该升级指示信息为指示需要执行该升级操作,以在该嵌入式***运行该升级执行程序引导启动时根据该升级指示信息确定需要执行该升级操作。
在一种可能的实施方式中,接收升级请求、下载升级压缩包、确定校验信息和调整升级指示信息这些操作,可以是嵌入式***通过运行非易失性存储器中运行区存储的应用层程序控制执行的。
实施例三
基于同一发明构思,本发明实施例提供一种嵌入式***,该嵌入式***包括非易失性存储器,该非易失性存储器配置有引导区、运行区和下载区,其中,该引导区配置有升级执行模块,该运行区配置有应用层模块,该下载区用于存储升级压缩包。
引导区配置的该升级执行模块用于:在确定需要执行升级操作时,执行该升级操作,其中,执行该升级操作包括:对该下载区存储的该升级压缩包进行解压缩以获得新版本应用层模块,并使用该新版本应用层模块更新该运行区配置的应用层模块。
在一种可能的实施方式中,该嵌入式***还包括内存,该内存配置有用于在该嵌入式***内实现全局缓冲的全局缓冲区,该升级执行模块具体用于:
以预设的解压缩数据量,对该下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在该全局缓冲区;并且,在每次解压缩完成后,将该全局缓冲区存储的数据覆盖式存储至该运行区,以在该运行区中组成该新版本应用层模块。
在一种可能的实施方式中,该非易失性存储器还配置有升级信息区,该升级信息区用于存储该升级压缩包的校验信息,该升级信息区存储的校验信息是下载该升级压缩包至该下载区时由该嵌入式***确定的,该升级执行模块还用于:
在对该下载区存储的该升级压缩包进行解压缩以获得新版本应用层模块之前,确定该升级压缩包中记录的校验信息是否与该升级信息区存储的校验信息一致;若否,则停止执行该升级操作。
在一种可能的实施方式中,该升级信息区还用于存储升级指示信息,该升级指示信息用于指示是否需要执行该升级操作,该运行区配置的应用层模块用于:
在该升级执行模块执行该升级操作之前,接收升级请求,并根据该升级请求下载该升级压缩包至该下载区;在下载完成该升级压缩包后,调整该升级指示信息为指示需要执行该升级操作,以在该嵌入式***启动时根据该升级指示信息确定需要执行该升级操作。
实施例四
基于同一发明构思,本发明实施例提供一种非易失性存储器,其中,该非易失性存储器配置有引导区、运行区和下载区,该引导区用于存储升级执行程序,该运行区用于存储应用层程序,该下载区用于存储升级压缩包,当该非易失性存储器存储的程序在嵌入式***上运行时,使得嵌入式***执行实施例一种所述的嵌入式***的软件升级方法。
在具体的实施过程中,该非易失性存储器可以是Flash、PROM、EAROM、EPROM、EEPROM等,并且,该非易失性存储器可以集成在嵌入式***中。
本发明实施例中,嵌入式***的非易失性存储器配置有引导区、运行区和下载区,引导区用于存储升级执行程序,运行区用于存储应用层程序,下载区用于存储升级压缩包,在确定需要执行升级操作时,通过运行引导区存储的升级执行程序控制执行升级操作,即通过运行引导区存储的程序控制执行:对下载区存储的升级压缩包进行解压缩以获得新版本应用层程序,并使用新版本应用层程序覆盖运行区存储的应用层程序。
由于对非易失性存储器进行了划区,在升级过程中不升级的存储区的数据不会受到影响,仍能够正常运行,例如,引导区的升级执行程序的运行不会受到影响。这样,就不需要在升级时将升级执行程序加载到内存中,减少了对嵌入式***中内存存储量的需求,节约了成本。
进一步地,由于升级压缩包和运行区原有的应用层程序始终都是存储在非易失性存储器中的,因而即使发生断电,也不会导致嵌入式***内的重要数据丢失,在断电后,只需要重新启动执行升级操作就可以顺利完成升级。并且,由于不需要将整个应用层程序加载到内存或额外的非易失性存储器中,减少了升级过程中对嵌入式***中存储量的需求,节约了成本。
进一步地,下载的升级压缩包相较于未压缩的新版本应用层程序占用空间较小,减少了升级过程中对嵌入式***中存储量的需求,节约了成本。
进一步地,本发明实施例中以预设的解压缩数据量,对升级压缩包分次进行解压缩,将各次解压缩获得的临时数据轮流存储在内存中的全局缓冲区。由于每次解压缩获得的临时数据较小,因而嵌入式***内原有的内存就能够满足升级时存储临时文件的需求,不需要额外扩大内存。
并且,本发明实施例中,配置全局缓冲区用于存储临时数据,除了运行升级执行程序时可以使用该全局缓冲区外,运行其它程序时同样可以使用该全局缓冲区。通过配置能够复用的全局缓冲区,实现了内存资源的高效利用,减少了对嵌入式***中存储量的需求,节约了成本。
进一步地,本发明实施例中,在解压缩升级压缩包之前还包括验证升级压缩包的操作,通过对升级压缩包的验证,能够避免使用损坏的升级压缩包进行升级导致嵌入式***发生运行故障的风险。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元/模块可以是或者也可以不是物理上分开的,作为单元/模块显示的部件可以是或者也可以不是物理单元/模块,即可以位于一个地方,或者也可以分布到多个网络单元/模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种嵌入式***的软件升级方法,所述嵌入式***包括非易失性存储器,其特征在于,所述非易失性存储器配置有引导区、运行区和下载区,所述引导区用于存储升级执行程序,所述运行区用于存储应用层程序,所述下载区用于存储升级压缩包,所述方法包括:
在确定需要执行升级操作时,通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,其中,所述执行所述升级操作包括:对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序,并使用所述新版本应用层程序覆盖所述运行区存储的应用层程序。
2.如权利要求1所述的方法,其特征在于,所述嵌入式***还包括内存,所述内存配置有用于在所述嵌入式***内实现全局缓冲的全局缓冲区,对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序,并使用所述新版本应用层程序覆盖所述运行区存储的应用层程序,包括:
以预设的解压缩数据量,对所述下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在所述全局缓冲区;
在每次解压缩完成后,将所述全局缓冲区存储的数据覆盖式存储至所述运行区,以在所述运行区中组成所述新版本应用层程序。
3.如权利要求1或2所述的方法,其特征在于,所述非易失性存储器还配置有升级信息区,所述升级信息区用于存储所述升级压缩包的校验信息,所述升级信息区存储的校验信息是下载所述升级压缩包至所述下载区时由所述嵌入式***确定的,所述执行所述升级操作还包括:
在对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序之前,确定所述升级压缩包中记录的校验信息是否与所述升级信息区存储的校验信息一致;
若否,则停止执行所述升级操作。
4.如权利要求3所述的方法,其特征在于,所述升级信息区还用于存储升级指示信息,所述升级指示信息用于指示是否需要执行所述升级操作,在所述通过运行所述引导区存储的所述升级执行程序执行所述升级操作之前,所述方法还包括:
接收升级请求,并根据所述升级请求下载所述升级压缩包至所述下载区;
在下载完成所述升级压缩包后,调整所述升级指示信息为指示需要执行所述升级操作,以在所述嵌入式***启动时根据所述升级指示信息确定需要执行所述升级操作。
5.一种嵌入式***,所述嵌入式***包括非易失性存储器和处理器,其特征在于,所述非易失性存储器配置有引导区、运行区和下载区,所述引导区用于存储升级执行程序,所述运行区用于存储应用层程序,所述下载区用于存储升级压缩包;
其中,所述处理器在确定需要执行升级操作时,通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,所述处理器执行所述升级操作包括:对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序,并使用所述新版本应用层程序覆盖所述运行区存储的应用层程序。
6.如权利要求5所述的嵌入式***,其特征在于,所述嵌入式***还包括内存,所述内存配置有用于在所述嵌入式***内实现全局缓冲的全局缓冲区,所述处理器通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,包括:
以预设的解压缩数据量,对所述下载区存储的升级压缩包分次进行解压缩,其中,各次解压缩获得的数据轮流存储在所述全局缓冲区;
在每次解压缩完成后,将所述全局缓冲区存储的数据覆盖式存储至所述运行区,以在所述运行区中组成所述新版本应用层程序。
7.如权利要求5或6所述的嵌入式***,其特征在于,所述非易失性存储器还配置有升级信息区,所述升级信息区用于存储所述升级压缩包的校验信息,所述升级信息区存储的校验信息是下载所述升级压缩包至所述下载区时由所述嵌入式***确定的,所述处理器通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作,还包括:
在对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层程序之前,确定所述升级压缩包中记录的校验信息是否与所述升级信息区存储的校验信息一致;
若否,则停止执行所述升级操作。
8.如权利要求7所述的嵌入式***,其特征在于,所述升级信息区还用于存储升级指示信息,所述升级指示信息用于指示是否需要执行所述升级操作,所述处理器还用于在通过运行所述引导区存储的所述升级执行程序控制执行所述升级操作之前,通过运行所述运行区存储的所述应用层程序控制执行:
接收升级请求,并根据所述升级请求下载所述升级压缩包至所述下载区;
在下载完成所述升级压缩包后,调整所述升级指示信息为指示需要执行所述升级操作,以在所述嵌入式***运行所述升级执行程序引导启动时根据所述升级指示信息确定需要执行所述升级操作。
9.一种嵌入式***,所述嵌入式***包括非易失性存储器,其特征在于,所述非易失性存储器配置有引导区、运行区和下载区,其中,所述引导区配置有升级执行模块,所述运行区配置有应用层模块,所述下载区用于存储升级压缩包,所述升级执行模块用于:
在确定需要执行升级操作时,执行所述升级操作,其中,执行所述升级操作包括:对所述下载区存储的所述升级压缩包进行解压缩以获得新版本应用层模块,并使用所述新版本应用层模块更新所述运行区配置的应用层模块。
10.一种非易失性存储器,其特征在于:
所述非易失性存储器配置有引导区、运行区和下载区,所述引导区用于存储升级执行程序,所述运行区用于存储应用层程序,所述下载区用于存储升级压缩包,当所述非易失性存储器存储的程序在嵌入式***上运行时,使得嵌入式***执行如权利要求1-4中任一项所述的方法。
CN201810581933.2A 2018-06-07 2018-06-07 一种嵌入式***的软件升级方法及嵌入式*** Pending CN108897564A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810581933.2A CN108897564A (zh) 2018-06-07 2018-06-07 一种嵌入式***的软件升级方法及嵌入式***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810581933.2A CN108897564A (zh) 2018-06-07 2018-06-07 一种嵌入式***的软件升级方法及嵌入式***

Publications (1)

Publication Number Publication Date
CN108897564A true CN108897564A (zh) 2018-11-27

Family

ID=64344178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810581933.2A Pending CN108897564A (zh) 2018-06-07 2018-06-07 一种嵌入式***的软件升级方法及嵌入式***

Country Status (1)

Country Link
CN (1) CN108897564A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109743375A (zh) * 2018-12-27 2019-05-10 广东省气象计算机应用开发研究所 基于无线网络分包传输的自动气象站固件无感更新方法
CN109918188A (zh) * 2019-03-27 2019-06-21 网易(杭州)网络有限公司 游戏模式的切换方法、装置、电子设备及存储介质
CN111124461A (zh) * 2019-12-12 2020-05-08 青岛海尔科技有限公司 用于单片机ota升级的方法、装置和单片机
CN111240723A (zh) * 2020-03-13 2020-06-05 乐普医学电子仪器股份有限公司 一种嵌入式程序升级的方法
CN111367541A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种eMMC和一种eMMC升级方法
CN113031998A (zh) * 2021-02-26 2021-06-25 芜湖美的厨卫电器制造有限公司 用于***升级的方法、处理器、电子设备及存储介质
WO2022241589A1 (zh) * 2021-05-16 2022-11-24 华为技术有限公司 控制器软件架构、控制器软件升级方法、控制器和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826027A (zh) * 2010-05-28 2010-09-08 深圳市融创天下科技发展有限公司 一种嵌入式***及其升级方法
CN105786510A (zh) * 2016-02-29 2016-07-20 深圳市美贝壳科技有限公司 一种单片机的升级分区***和安全升级方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826027A (zh) * 2010-05-28 2010-09-08 深圳市融创天下科技发展有限公司 一种嵌入式***及其升级方法
CN105786510A (zh) * 2016-02-29 2016-07-20 深圳市美贝壳科技有限公司 一种单片机的升级分区***和安全升级方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367541A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种eMMC和一种eMMC升级方法
CN109743375A (zh) * 2018-12-27 2019-05-10 广东省气象计算机应用开发研究所 基于无线网络分包传输的自动气象站固件无感更新方法
CN109918188A (zh) * 2019-03-27 2019-06-21 网易(杭州)网络有限公司 游戏模式的切换方法、装置、电子设备及存储介质
CN111124461A (zh) * 2019-12-12 2020-05-08 青岛海尔科技有限公司 用于单片机ota升级的方法、装置和单片机
CN111124461B (zh) * 2019-12-12 2023-08-18 青岛海尔科技有限公司 用于单片机ota升级的方法、装置和单片机
CN111240723A (zh) * 2020-03-13 2020-06-05 乐普医学电子仪器股份有限公司 一种嵌入式程序升级的方法
CN113031998A (zh) * 2021-02-26 2021-06-25 芜湖美的厨卫电器制造有限公司 用于***升级的方法、处理器、电子设备及存储介质
WO2022241589A1 (zh) * 2021-05-16 2022-11-24 华为技术有限公司 控制器软件架构、控制器软件升级方法、控制器和装置

Similar Documents

Publication Publication Date Title
CN108897564A (zh) 一种嵌入式***的软件升级方法及嵌入式***
US10620942B2 (en) Method for adapting firmware of a wireless communication device
CN101425018B (zh) 基于分段式的嵌入式固件升级方法及装置
EP2998861B1 (en) Implementing and deleting method and device for intelligent terminal multi-operation system
US11360758B2 (en) Communication processing device, information processing device, and communication processing device control method
US9710340B2 (en) Replacement of a corrupt driver variable record
CN106055346A (zh) 车辆控制存储方法和***
CN111796848A (zh) Bootloader软件更新方法、装置、嵌入式控制器以及存储介质
JP2006260330A (ja) 計算機システムのファームウェアのバージョン管理方法及び情報処理装置
CN107643898A (zh) 终端升级方法及装置
CN101330695A (zh) 一种移动终端及其***升级的方法和装置
JP2023009293A (ja) 通信装置及び情報処理方法
EP2199994A1 (en) Portable electronic device
CN103392174B (zh) 基于闪存存储的***、分区方法和装置
CN102508782A (zh) 数据读写方法、装置、存储体及网络设备
CN103761126A (zh) 应用程序的升级方法和装置
CN112199109B (zh) 一种固件升级方法、装置、设备及介质
CN103488492A (zh) 阅读器设备及其固件升级方法及装置
US20070079279A1 (en) Embedded device with software registry
JP7239413B2 (ja) 組込用通信基板、通信端末、及びファームウェア更新方法
KR100762618B1 (ko) 이동통신 단말기에서 펌웨어 업그레이드 엔진을업그레이드하는 방법 및 시스템
US20050138320A1 (en) Memory allocation unit
CN110968337A (zh) 软件升级方法及装置
EP3324655A1 (en) Method for managing a patch of a sofware component in a euicc
US20230143921A1 (en) Electronic control system, storage medium storing data structure of software package, and storage medium storing computer program

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
TA01 Transfer of patent application right

Effective date of registration: 20200107

Address after: 510663 Shenzhou Road, Guangzhou Science City, Guangzhou, Guangzhou economic and Technological Development Zone, Guangdong Province, No. 10

Applicant after: Jingxin Communication System (China) Co., Ltd.

Address before: 510663 Shenzhou Road, Guangzhou Science City, Guangzhou economic and Technological Development Zone, Guangdong, 10

Applicant before: Jingxin Communication System (China) Co., Ltd.

Applicant before: Jingxin Communication System (Guangzhou) Co., Ltd.

Applicant before: Jingxin Communication Technology (Guangzhou) Co., Ltd.

Applicant before: TIANJIN COMBA TELECOM SYSTEMS CO., LTD.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 510663 No.10, Shenzhou Road, Guangzhou Science City, Guangzhou Economic and Technological Development Zone, Guangdong Province

Applicant after: Jingxin Network System Co.,Ltd.

Address before: 510663 No.10, Shenzhou Road, Guangzhou Science City, Guangzhou Economic and Technological Development Zone, Guangdong Province

Applicant before: Comba Telecom System (China) Ltd.

CB02 Change of applicant information
RJ01 Rejection of invention patent application after publication

Application publication date: 20181127

RJ01 Rejection of invention patent application after publication