CN101872306A - 一种实现软件更新和软件备份的嵌入式系统及其实现方法 - Google Patents

一种实现软件更新和软件备份的嵌入式系统及其实现方法 Download PDF

Info

Publication number
CN101872306A
CN101872306A CN200910038826A CN200910038826A CN101872306A CN 101872306 A CN101872306 A CN 101872306A CN 200910038826 A CN200910038826 A CN 200910038826A CN 200910038826 A CN200910038826 A CN 200910038826A CN 101872306 A CN101872306 A CN 101872306A
Authority
CN
China
Prior art keywords
application program
leaf
page
data
program 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.)
Granted
Application number
CN200910038826A
Other languages
English (en)
Other versions
CN101872306B (zh
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.)
Tianjin Comba Telecom Systems Co Ltd
Original Assignee
Comba Telecom Systems China 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 Systems China Ltd filed Critical Comba Telecom Systems China Ltd
Priority to CN 200910038826 priority Critical patent/CN101872306B/zh
Publication of CN101872306A publication Critical patent/CN101872306A/zh
Application granted granted Critical
Publication of CN101872306B publication Critical patent/CN101872306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种实现软件更新和软件备份的嵌入式系统,包括MCU、程序存储器,所述MCU内置或者外接有数据存储器,还包括用于存储“运行要求数据”的NVRAM,该NVRAM与MCU信号连接;所述程序存储器包括应用程序存储块和启动/公共程序存储块,同时,启动/公共程序存储块与应用程序存储块占用不同的地址空间;所述应用程序存储块包括相互独立的应用程序存储块-页1和应用程序存储块-页2;还包括用于使启动/公共程序存储块上电即刻有效、使应用程序存储块-页1和应用程序存储块-页2分时有效的片选逻辑模块。本发明适用于采用8位MCU嵌入式系统,能同时实现嵌入式系统的软件更新和软件备份。

Description

一种实现软件更新和软件备份的嵌入式系统及其实现方法
技术领域
本发明涉及嵌入式系统领域,具体涉及一种实现软件更新和软件备份的嵌入式系统及其实现方法。
背景技术
随着信息产业的发展,以微控制器(MCU)/微处理器(MPU)为核心的嵌入式系统的应用越来越广泛。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式系统是硬件和软件的结合体,在硬件不变的情况下,运行不同的软件可以实现不同的功能,很多时候设计者都是先设计成一款通用的硬件平台,然后再设计不同的软件,通过更换不同软件配套不同产品来实现不同的产品功能,如何实现方便的软件更新、升级和维护是嵌入式系统设计的重点。
目前应用比较广泛的嵌入式系统有采用8位MCU和32位MCU/MPU的嵌入式系统。采用32位MCU/MPU的嵌入式系统由于MCU/MPU处理能力比较强,通常都可以运行比较高级的嵌入式操作系统,如uCLinux、Linux、Vxworks、WinCE等,因此实现软件更新比较简单。而对于采用8位MCU的嵌入式系统,由于MCU处理能力比较弱,软件基本都是采用前后台设计或运行简单的多任务内核,由于没有文件系统支持,实现软件更新比较困难,要实现更进一步的软件备份则更加困难。
虽说32位MCU/MPU比8位MCU性能高,但其在产品中性价比却不一定高,在很多应用场合采用8位MCU就足以胜任了,没有必要用到32位MCU/MPU。这是因为采用32位MCU/MPU的嵌入式系统的成本是比较高的,不仅在处理器价格上,在外围器件价格、开发工具投入、操作系统投入以及人员投入上,都要比采用8位MCU的嵌入式系统高得多。
对于软件更新,一些8位MCU厂商已考虑到了这种需求,在MCU设计上支持一定程度的软件更新。其实现方案通常是通过MCU自带程序存储器支持IAP功能来实现。将程序存储器分为引导程序存储器和应用程序存储器,系统在引导程序存储器启动后,判断是否有IAP请求,如果有则将应用程序存储器擦除,并下载更新为新程序。采用这种方案来实现软件更新的优点是简单,不足之处是不支持软件备份,即软件更新时原软件被擦除,然后更新成新软件,如果下载失败则系统不能运行,另外受MCU自身程序存储器大小限制(通常是几K~十几K),需要下载的软件不能太大。
微控制器(MCU)的体系结构一般分为两种:冯.诺依曼结构和哈佛结构。两者的区别在于:冯.诺依曼结构对程序存储块和数据存储块进行统一编址,即程序空间和数据空间地址不允许重叠;而哈佛结构对程序存储块和数据存储块进行分开编址,即程序空间和数据空间地址允许重叠。
8位数据总线/16位地址总线的冯.诺依曼结构MCU的存储器结构如图1所示,它的地址空间范围是0x0000~0xFFFF,所有的MCU资源都在该地址空间范围内统一分配,图1中程序存储块和数据存储块的地址在0x0000~0xFFFF中是不重叠的。典型芯片如MC68HC11系列MCU。
8位数据总线/16位地址总线的哈佛结构MCU的存储器结构如图2所示,与冯.诺依曼结构不同的是哈佛结构的地址空间有内部地址空间和外部地址空间之分,两部分地址空间范围都是0x0000~0xFFFF,都可分配给程序存储块和数据存储块,图2中程序存储块分配在内部地址空间上,数据存储块同时分配在内部地址空间和外部地址空间上,分别是数据存储块(内部)和数据存储块(外部),且外部数据存储块的地址和内部程序存储块、内部数据存储块的地址是重叠的。典型芯片如MCS-51系列MCU。
发明内容
本发明的目的在于克服上述现有技术的缺点和不足,提供一种实现软件更新和软件备份的嵌入式系统,本发明适用于采用8位MCU嵌入式系统的软件更新和软件备份,能同时实现嵌入式系统的软件更新和软件备份。
本发明的目的还在于提供上述实现软件更新和软件备份的嵌入式系统实现软件更新和软件备份的方法。
本发明目的通过下述技术方案实现:一种实现软件更新和软件备份的嵌入式系统,包括MCU、程序存储器,所述MCU内置或者外接有数据存储器,本发明嵌入式系统还包括用于存储“运行要求数据”的非易失性随机访问存储器(NVRAM),该NVRAM与MCU信号连接;
所述程序存储器包括应用程序存储块和启动/公共程序存储块,同时,启动/公共程序存储块与应用程序存储块占用不同的地址空间;
所述应用程序存储块包括相互独立的应用程序存储块-页1和应用程序存储块-页2;
本发明嵌入式系统还包括用于使启动/公共程序存储块上电即刻有效、使应用程序存储块-页1和应用程序存储块-页2分时有效的片选逻辑模块。
所述片选逻辑模块由复杂可编程逻辑器件(CPLD)将所连接的MCU的地址总线、读/写线、片选线和GPIO线等进行逻辑组合生成,CPLD通过片选逻辑时钟(CS)信号线与程序存储器信号连接。所述复杂可编程逻辑器件(CPLD)包括与门、反相器,片选逻辑时钟(CS)信号线分别和与门、反相器的输入端以及应用程序存储块-页1相连接,反相器的输出端接应用程序存储块-页2,与门的输出端接启动/公共程序存储块。
所述启动/公共程序存储块存储有启动代码、下载函数代码及相关代码。
所述应用程序存储块-页1和应用程序存储块-页2存储具体的应用程序。而且,启动/公共程序存储块和应用程序存储块-页1和应用程序存储块-页2需共同访问的变量和缓冲区地址是一样的,并将需共同访问的变量和缓冲区地址统一固定到不变的物理地址上。
所述程序存储器的容量最大可支持到64kByte。
本发明嵌入式系统应用时,在应用程序存储块-页1和应用程序存储块-页2同时存放同样的应用程序软件就做到了软件备份,存放不同的应用程序软件就可做到根据不同的功能要求运行不同的应用程序软件,存放新老版本的应用程序软件则可实现新老版本应用程序软件的选择使用,即软件更新。
利用上述实现软件更新和软件备份的嵌入式系统实现软件更新和软件备份的方法,包括软件更新方法和软件备份方法。
其中,软件更新方法步骤如下:
A、系统复位启动后,MCU强制从启动/公共程序存储块的起始地址开始运行并读取启动代码,MCU根据读取的启动代码从NVRAM中取出“运行要求数据”,根据“运行要求数据”从应用程序存储块-页1、应用程序存储块-页2中选择其中一个作为当前应用程序页,则另一个即作为当前备份应用程序页,然后执行从MCU连接到CPLD的GPIO置低电平指令或高电平指令,将当前应用程序页映射到应用程序区物理地址上,然后执行跳转指令跳转到应用程序区的物理起始地址,并从该物理起始地址开始往下执行当前应用程序页中的应用程序;若当前应用程序页中的应用程序能正常启动和运行,则进行步骤C操作,若当前应用程序页中的应用程序不能正常启动和运行,则进行步骤B操作;
B、若当前应用程序页的应用程序不能正常启动和运行,则将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,然后返回步骤A操作;
C、运行当前应用程序页的应用程序,当当前应用程序页的应用程序收到上位机传来的软件下载命令时,立即跳转并执行位于启动/公共程序存储块中的下载函数,当当前应用程序页的应用程序接收完一帧数据后,通过置“接收到数据标志”通知下载函数已完成一帧数据接收,下载函数清空下载缓存数据存储器,向当前应用程序页的应用程序回应允许接收下载数据命令;
D、下载函数不断检测是否有“接收到数据标志”,当下载函数检测到“接收到数据标志”后,下载函数保存下载数据到下载缓存数据存储器,然后根据下载函数接收到的下载数据是否为最后一帧数据,分别进行步骤E或F操作;
E、当步骤D中下载函数接收到的下载数据不是最后一帧数据,且下载缓存数据存储器存储未满时,下载函数向当前应用程序页的应用程序回应允许接收下载数据命令,然后返回步骤D操作;
当步骤D中下载函数接收到的下载数据不是最后一帧数据,且下载缓存数据存储器存储已满时,下载函数将当前备份应用程序页映射到应用程序区物理地址上,然后将下载缓存数据存储器中的数据写入应用程序地址的所在程序存储器中,当写程序存储器操作完成后,再将所述当前应用程序页映射回当前应用程序区物理地址上,即恢复到了写入数据到程序存储器前的工作状态,下载函数向当前应用程序页的应用程序回应允许接收下载数据命令,然后返回步骤D操作;
F、下载函数接收到的下载数据为最后一帧数据时,下载函数将当前备份应用程序页映射到应用程序区物理地址上,然后将下载缓存数据存储器中的数据写入应用程序地址的所在程序存储器中,当写程序存储器操作完成后,再将所述当前应用程序页映射回当前应用程序区物理地址上,即恢复到了写入数据到程序存储器前的工作状态,然后将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,下载函数向当前应用程序页的应用程序回应下载成功信息,并自动复位系统,然后返回步骤A操作。
由上所述,即可实现本发明嵌入式系统的软件更新。
本发明嵌入式系统实现软件备份的方法,其步骤如下:系统复位启动后,MCU强制从启动/公共程序存储块的起始地址开始运行并读取启动代码,MCU根据读取的启动代码从NVRAM中取出“运行要求数据”,根据“运行要求数据”从应用程序存储块-页1、应用程序存储块-页2中选择其中一个作为当前应用程序页,则另一个即作为当前备份应用程序页,然后采用本发明上述软件更新的方法更新一份应用程序到当前备份应用程序页,这样,系统就同时存在了所述当前应用程序页的应用程序以及所述当前备份应用程序页的更新的应用程序,然后将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,并自动复位系统,系统复位启动后,启动/公共程序存储块根据NVRAM中新的“运行要求数据”将所述当前备份应用程序页映射到应用程序区物理地址上,并执行所述当前备份应用程序页中的应用程序;
此时,如果所述当前备份应用程序页中所更新的应用程序不能正常执行时,启动/公共程序存储块将修改NVRAM中的“运行要求数据”,将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM作为“运行要求数据”,并自动复位系统,系统复位启动后重新运行所述当前应用程序页中的应用程序。
所述软件备份方法中,当所更新的应用程序为新版本应用程序时,即实现了上一版本的软件备份;当所更新的应用程序与所述当前应用程序页的应用程序为同一份软件时,即实现了当前版本的软件备份。
上述方法中,下载函数主要负责缓存接收到的下载数据,位于当前应用程序页的应用程序负责接收下载数据。
本发明相对于现有技术具有以下优点:本发明通过将程序存储器设计成3部分,即启动/公共程序存储块、应用程序存储块-页1和应用程序存储块-页2,使应用程序存储块-页1、应用程序存储块-页2占用相同的地址空间,启动/公共程序存储块与应用程序存储块-页1、应用程序存储块-页2占用不同的地址空间;通过片选逻辑模块使启动/公共程序存储块上电即刻有效、使应用程序存储块-页1和应用程序存储块-页2分时有效即同一时刻只有页1或页2被映射到地址空间上,实现了在同一地址空间上分时使用应用程序存储块-页1、应用程序存储块-页2,从而使本发明系统同时实现了软件更新和软件备份,即根据需要可在两个应用程序存储页中各存储一份不同功能的软件,根据实际需要选择不同功能软件;当更新软件后,前一版本的软件也得到了保存,必要时可恢复使用前一版本软件;当新下载软件失败时,下载前版本软件并未破坏/丢失,可自动恢复使用升级前版本软件使用,不会因为下载失败而导致系统死掉。
附图说明
图1为8位数据总线/16位地址总线的冯.诺依曼结构微控制器的存储器结构示意图;
图2为8位数据总线/16位地址总线的哈佛结构微控制器的存储器结构示意图;
图3为本发明中冯.诺依曼结构微控制器采用的存储器的结构示意图;
图4为本发明中哈佛结构微控制器采用的存储器的结构示意图;
图5为本发明系统硬件结构示意图;
图6为本发明实现软件更新和软件备份的嵌入式系统实现软件更新的方法的流程图;
图7为本发明实现软件更新和软件备份的嵌入式系统实现上一版本软件备份方法的流程图;
图8为本发明实现软件更新和软件备份的嵌入式系统实现当前版本软件备份方法的流程图。
具体实施方式
下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例
图5为本发明系统的硬件结构。本发明一种实现软件更新和软件备份的嵌入式系统,硬件上包括微控制器(MCU)、复杂可编程逻辑器件(CPLD)、程序存储器和用于存储“运行要求数据”的非易失性随机访问存储器(NVRAM),其中,所述MCU内置或者外接有数据存储器,该NVRAM与MCU信号连接。
所述程序存储器包括应用程序存储块和启动/公共程序存储块,同时,启动/公共程序存储块与应用程序存储块占用不同的地址空间;所述应用程序存储块包括相互独立的应用程序存储块-页1和应用程序存储块-页2。
所述CPLD将所连接的MCU的地址总线、读/写线、片选线和GPIO线等进行逻辑组合生成片选逻辑模块,CPLD通过片选逻辑时钟(CS)信号线与程序存储器信号连接。所述复杂可编程逻辑器件(CPLD)包括与门、反相器,片选逻辑时钟(CS)信号线分别和与门、反相器的输入端以及应用程序存储块-页1相连接,反相器的输出端接应用程序存储块-页2,与门的输出端接启动/公共程序存储块。这样,就使得片选逻辑模块具备了使启动/公共程序存储块上电即刻有效即被映射到地址空间上、使应用程序存储块-页1和应用程序存储块-页2分时有效即同一时刻只有页1或页2被映射到地址空间上,即实现在同一地址空间上分时使用两块独立的程序存储块(应用程序存储块-页1、应用程序存储块-页2)的技术效果,也即片选逻辑模块形成存储器地址和地址映射。
本发明嵌入式系统根据NVRAM中的“运行要求数据”自动选择当前需要运行的应用程序存储块。
所述启动/公共程序存储块存储有启动代码、下载函数代码及相关代码。
所述应用程序存储块-页1和应用程序存储块-页2存储具体的应用程序。而且,启动/公共程序存储块和应用程序存储块-页1和应用程序存储块-页2需共同访问的变量和缓冲区地址是一样的,并将需共同访问的变量和缓冲区地址统一固定到不变的物理地址上。
所述程序存储器的容量最大可支持到64kByte。
微控制器的体系结构一般分为两种:冯.诺依曼结构和哈佛结构。其中,本发明中冯.诺依曼结构微控制器采用的存储器的结构如图3所示;本发明中哈佛结构微控制器采用的存储器的结构。其中存储器包括程序存储器和数据存储器如图4所示。
利用上述实现软件更新和软件备份的嵌入式系统实现软件更新和软件备份的方法,包括软件更新方法和软件备份方法,其中,软件更新方法如图6所示,步骤如下:
A、系统复位启动后,MCU强制从启动/公共程序存储块的起始地址开始运行并读取启动代码,MCU根据读取的启动代码从NVRAM中取出“运行要求数据”,根据“运行要求数据”从应用程序存储块-页1、应用程序存储块-页2中选择其中一个作为当前应用程序页,则另一个即作为当前备份应用程序页,然后执行从MCU连接到CPLD的GPIO置低电平指令或高电平指令,将当前应用程序页映射到应用程序区物理地址上,然后执行跳转指令跳转到应用程序区的物理起始地址,并从该物理起始地址开始往下执行当前应用程序页中的应用程序;若当前应用程序页中的应用程序能正常启动和运行,则进行步骤C操作,若当前应用程序页中的应用程序不能正常启动和运行,则进行步骤B操作;
B、若当前应用程序页的应用程序不能正常启动和运行,则将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,然后返回步骤A操作;
C、运行当前应用程序页的应用程序,当当前应用程序页的应用程序收到上位机传来的软件下载命令时,立即跳转并执行位于启动/公共程序存储块中的下载函数,当当前应用程序页的应用程序接收完一帧数据后,通过置“接收到数据标志”通知下载函数已完成一帧数据接收,下载函数清空下载缓存数据存储器,向当前应用程序页的应用程序回应允许接收下载数据命令;
D、下载函数不断检测是否有“接收到数据标志”,当下载函数检测到“接收到数据标志”后,下载函数保存下载数据到下载缓存数据存储器,然后根据下载函数接收到的下载数据是否为最后一帧数据,分别进行步骤E或F操作;
E、当步骤D中下载函数接收到的下载数据不是最后一帧数据,且下载缓存数据存储器存储未满时,下载函数向当前应用程序页的应用程序回应允许接收下载数据命令,然后返回步骤D操作;
当步骤D中下载函数接收到的下载数据不是最后一帧数据,且下载缓存数据存储器存储已满时,下载函数将当前备份应用程序页映射到应用程序区物理地址上,然后将下载缓存数据存储器中的数据写入应用程序地址的所在程序存储器中,当写程序存储器操作完成后,再将所述当前应用程序页映射回当前应用程序区物理地址上,即恢复到了写入数据到程序存储器前的工作状态,下载函数向当前应用程序页的应用程序回应允许接收下载数据命令,然后返回步骤D操作;
F、下载函数接收到的下载数据为最后一帧数据时,下载函数将当前备份应用程序页映射到应用程序区物理地址上,然后将下载缓存数据存储器中的数据写入应用程序地址的所在程序存储器中,当写程序存储器操作完成后,再将所述当前应用程序页映射回当前应用程序区物理地址上,即恢复到了写入数据到程序存储器前的工作状态,然后将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,下载函数向当前应用程序页的应用程序回应下载成功信息,并自动复位系统,然后返回步骤A操作。
由上所述,即可实现本发明嵌入式系统的软件更新。
本发明嵌入式系统实现两种软件备份的方法,分别是上一版本软件备份和当前版本软件备份,其步骤如下:
上一版本软件备份方法如图7所示:应用程序存储块-页1和应用程序存储块-页2可各自独立存放一份独立的软件代码,系统运行时取出NVRAM存储的“运行要求数据”自动选择一份软件运行。当系统的当前应用程序页是应用程序存储块-页1时,即系统运行应用程序存储块-页1的旧版本的应用程序1时,采用上述的软件更新的方法更新一份新版本的应用程序2到应用程序存储块-页2后,系统就同时存在旧版本的应用程序1和新版本的应用程序2两份软件,然后将“应用程序存储块-页2和应用程序存储块-页1在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,并自动复位系统。
这样,当系统复位启动后启动/公共程序存储块根据NVRAM中的“运行要求数据”就可将应用程序存储块-页2映射到应用程序区物理地址,并执行应用程序存储块-页2的新版本的应用程序2,此时如果新版本的应用程序2不能正常执行时,启动/公共程序存储块将修改NVRAM中的“运行要求数据”,将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM作为“运行要求数据”,并自动复位启动系统后重新运行程序存储块-页1中的旧版本的应用程序1;当系统的当前应用程序页是应用程序存储块-页2时,应用程序执行过程与上述类似。这样保证了即使更新了错误的软件或更新过程中软件代码发生了变化,导致更新的软件不能执行时,系统也能“回滚”到更新之前软件继续运行,保证了系统不会因为更新了错误的代码而崩溃。
当前版本软件备份方法如图8所示:应用程序存储块-页1和应用程序存储块-页2可各自独立存放一份独立的软件代码,系统运行时取出NVRAM存储的“运行要求数据”自动选择一份软件运行。当系统的当前应用程序页是应用程序存储块-页1时,即系统运行应用程序存储块-页1的应用程序1时,采用上述的软件更新的方法更新一份同一版本的应用程序1到应用程序存储块-页2后,系统就同时存在两份相同应用程序1软件,然后将“应用程序存储块-页2和应用程序存储块-页1在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,并自动复位系统。
这样,当系统复位启动后启动/公共程序存储块根据NVRAM中的“运行要求数据”就可将应用程序存储块-页2映射到应用程序区物理地址,并执行应用程序存储块-页2的应用程序1,此时如果页2的应用程序1不能正常执行时,启动/公共程序存储块将修改NVRAM中的“运行要求数据”,将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM作为“运行要求数据”,并自动复位启动系统后重新运行程序存储块-页1中的应用程序1;当系统的当前应用程序页是应用程序存储块-页2时,应用程序执行过程与上述类似。
对于可靠性要求比较高且软件很少更新的系统,为预防代码意外丢失造成系统不能运行,采取该方法可实现页1和页2两份软件互为备份,当其中一份软件意外丢失时,系统还能继续用备份的软件继续运行。
上述方法中,下载函数主要负责缓存接收到的下载数据,位于当前应用程序页的应用程序负责接收下载数据。
本发明嵌入式系统根据NVRAM中的“运行要求数据”自动选择当前需要运行的应用程序存储块。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (9)

1.一种实现软件更新和软件备份的嵌入式系统,包括MCU、程序存储器,所述MCU内置或者外接有数据存储器,其特征在于:
还包括用于存储“运行要求数据”的NVRAM,该NVRAM与MCU信号连接;
所述程序存储器包括应用程序存储块和启动/公共程序存储块,同时,启动/公共程序存储块与应用程序存储块占用不同的地址空间;
所述应用程序存储块包括相互独立的应用程序存储块-页1和应用程序存储块-页2;
还包括用于使启动/公共程序存储块上电即刻有效、使应用程序存储块-页1和应用程序存储块-页2分时有效的片选逻辑模块。
2.根据权利要求1所述的一种实现软件更新和软件备份的嵌入式系统,其特征在于:所述片选逻辑模块由CPLD将所连接的MCU的地址总线、读/写线、片选线和GPIO线进行逻辑组合生成,CPLD通过片选逻辑CS信号线与程序存储器信号连接。
3.根据权利要求2所述的一种实现软件更新和软件备份的嵌入式系统,其特征在于:所述CPLD包括与门、反相器,片选逻辑CS信号线分别和与门、反相器的输入端以及应用程序存储块-页1相连接,反相器的输出端接应用程序存储块-页2,与门的输出端接启动/公共程序存储块。
4.根据权利要求1所述的一种实现软件更新和软件备份的嵌入式系统,其特征在于:所述启动/公共程序存储块存储有启动代码、下载函数代码及相关代码。
5.根据权利要求1所述的一种实现软件更新和软件备份的嵌入式系统,其特征在于:所述应用程序存储块-页1和应用程序存储块-页2存储具体的应用程序。
6.根据权利要求1所述的一种实现软件更新和软件备份的嵌入式系统,其特征在于:所述程序存储器的容量最大为64kByte。
7.利用权利要求4所述的一种实现软件更新和软件备份的嵌入式系统实现软件更新和软件备份的方法,其特征在于,包括软件更新方法和软件备份方法,其中,软件更新方法步骤如下:
A、系统复位启动后,MCU强制从启动/公共程序存储块的起始地址开始运行并读取启动代码,MCU根据读取的启动代码从NVRAM中取出“运行要求数据”,根据“运行要求数据”从应用程序存储块-页1、应用程序存储块-页2中选择其中一个作为当前应用程序页,则另一个即作为当前备份应用程序页,然后执行从MCU连接到CPLD的GPIO置低电平指令或高电平指令,将当前应用程序页映射到应用程序区物理地址上,然后执行跳转指令跳转到应用程序区的物理起始地址,并从该物理起始地址开始往下执行当前应用程序页中的应用程序;若当前应用程序页中的应用程序能正常启动和运行,则进行步骤C操作,若当前应用程序页中的应用程序不能正常启动和运行,则进行步骤B操作;
B、若当前应用程序页的应用程序不能正常启动和运行,则将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,然后返回步骤A操作;
C、运行当前应用程序页的应用程序,当当前应用程序页的应用程序收到上位机传来的软件下载命令时,立即跳转并执行位于启动/公共程序存储块中的下载函数,当当前应用程序页的应用程序接收完一帧数据后,通过置“接收到数据标志”通知下载函数已完成一帧数据接收,下载函数清空下载缓存数据存储器,向当前应用程序页的应用程序回应允许接收下载数据命令;
D、下载函数不断检测是否有“接收到数据标志”,当下载函数检测到“接收到数据标志”后,下载函数保存下载数据到下载缓存数据存储器,然后根据下载函数接收到的下载数据是否为最后一帧数据,分别进行步骤E或F操作;
E、当步骤D中下载函数接收到的下载数据不是最后一帧数据,且下载缓存数据存储器存储未满时,下载函数向当前应用程序页的应用程序回应允许接收下载数据命令,然后返回步骤D操作;
当步骤D中下载函数接收到的下载数据不是最后一帧数据,且下载缓存数据存储器存储已满时,下载函数将当前备份应用程序页映射到应用程序区物理地址上,然后将下载缓存数据存储器中的数据写入应用程序地址的所在程序存储器中,当写程序存储器操作完成后,再将所述当前应用程序页映射回当前应用程序区物理地址上,即恢复到了写入数据到程序存储器前的工作状态,下载函数向当前应用程序页的应用程序回应允许接收下载数据命令,然后返回步骤D操作;
F、下载函数接收到的下载数据为最后一帧数据时,下载函数将当前备份应用程序页映射到应用程序区物理地址上,然后将下载缓存数据存储器中的数据写入应用程序地址的所在程序存储器中,当写程序存储器操作完成后,再将所述当前应用程序页映射回当前应用程序区物理地址上,即恢复到了写入数据到程序存储器前的工作状态,然后将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,下载函数向当前应用程序页的应用程序回应下载成功信息,并自动复位系统,然后返回步骤A操作,即可实现软件更新;
软件备份的方法,其步骤如下:系统复位启动后,MCU强制从启动/公共程序存储块的起始地址开始运行并读取启动代码,MCU根据读取的启动代码从NVRAM中取出“运行要求数据”,根据“运行要求数据”从应用程序存储块-页1、应用程序存储块-页2中选择其中一个作为当前应用程序页,则另一个即作为当前备份应用程序页,然后采用本发明上述软件更新的方法更新一份应用程序到当前备份应用程序页,这样,系统就同时存在了所述当前应用程序页的应用程序以及所述当前备份应用程序页的更新的应用程序,然后将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM,作为新的“运行要求数据”,并自动复位系统,系统复位启动后,启动/公共程序存储块根据NVRAM中新的“运行要求数据”将所述当前备份应用程序页映射到应用程序区物理地址上,并执行所述当前备份应用程序页中的应用程序;
此时,如果所述当前备份应用程序页中所更新的应用程序不能正常执行时,启动/公共程序存储块将修改NVRAM中的“运行要求数据”,将“当前备份应用程序页和当前应用程序页在系统复位启动后相互调换”的数据写入NVRAM作为“运行要求数据”,并自动复位系统,系统复位启动后重新运行所述当前应用程序页中的应用程序。
8.利用权利要求7所述的一种实现软件更新和软件备份的方法,其特征在于:所述下载函数主要负责缓存接收到的下载数据,位于当前应用程序页的应用程序负责接收下载数据。
9.利用权利要求7所述的一种实现软件更新和软件备份的方法,其特征在于:所述软件备份方法中,当所更新的应用程序为新版本应用程序时,即实现了上一版本的软件备份;当所更新的应用程序与所述当前应用程序页的应用程序为同一份软件时,即实现了当前版本的软件备份。
CN 200910038826 2009-04-21 2009-04-21 一种实现软件更新和软件备份的嵌入式系统及其实现方法 Active CN101872306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910038826 CN101872306B (zh) 2009-04-21 2009-04-21 一种实现软件更新和软件备份的嵌入式系统及其实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910038826 CN101872306B (zh) 2009-04-21 2009-04-21 一种实现软件更新和软件备份的嵌入式系统及其实现方法

Publications (2)

Publication Number Publication Date
CN101872306A true CN101872306A (zh) 2010-10-27
CN101872306B CN101872306B (zh) 2013-03-20

Family

ID=42997180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910038826 Active CN101872306B (zh) 2009-04-21 2009-04-21 一种实现软件更新和软件备份的嵌入式系统及其实现方法

Country Status (1)

Country Link
CN (1) CN101872306B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511912A (zh) * 2015-11-28 2016-04-20 惠州市蓝微新源技术有限公司 一种基于can总线的程序下载方法
CN106528232A (zh) * 2016-11-07 2017-03-22 广东长虹电子有限公司 由tv端mcu为tcon模块pmu和p‑gamma芯片写程的方法及对应的tv板
CN109117161A (zh) * 2018-08-29 2019-01-01 广东美的制冷设备有限公司 家电系统的在线升级控制方法和家电系统
CN109471656A (zh) * 2017-09-06 2019-03-15 上海汽车集团股份有限公司 一种程序刷新方法及装置
CN109597635A (zh) * 2018-11-23 2019-04-09 湖北航天飞行器研究所 一种主控程序安全引导升级方法、嵌入式设备及存储器
CN111209059A (zh) * 2020-01-14 2020-05-29 中国北方车辆研究所 一种嵌入式软件多版本控制系统及方法
CN113311931A (zh) * 2021-06-08 2021-08-27 合肥磐芯电子有限公司 一种方便iap的双复位向量8位mcu架构及其方法
CN113590150A (zh) * 2021-06-30 2021-11-02 北京智芯微电子科技有限公司 存储体控制方法、程序升级方法及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1430142A (zh) * 2001-12-29 2003-07-16 深圳市中兴通讯股份有限公司上海第二研究所 在通信系统中利用单片机实现软件下载的装置及其方法
CN1801092A (zh) * 2006-01-19 2006-07-12 北京中星微电子有限公司 一种嵌入式芯片及其程序空间扩展的方法
CN1851645A (zh) * 2006-01-17 2006-10-25 华为技术有限公司 一种单片机系统在运行中升级的装置和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1430142A (zh) * 2001-12-29 2003-07-16 深圳市中兴通讯股份有限公司上海第二研究所 在通信系统中利用单片机实现软件下载的装置及其方法
CN1851645A (zh) * 2006-01-17 2006-10-25 华为技术有限公司 一种单片机系统在运行中升级的装置和方法
CN1801092A (zh) * 2006-01-19 2006-07-12 北京中星微电子有限公司 一种嵌入式芯片及其程序空间扩展的方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105511912A (zh) * 2015-11-28 2016-04-20 惠州市蓝微新源技术有限公司 一种基于can总线的程序下载方法
CN106528232A (zh) * 2016-11-07 2017-03-22 广东长虹电子有限公司 由tv端mcu为tcon模块pmu和p‑gamma芯片写程的方法及对应的tv板
CN109471656A (zh) * 2017-09-06 2019-03-15 上海汽车集团股份有限公司 一种程序刷新方法及装置
CN109117161A (zh) * 2018-08-29 2019-01-01 广东美的制冷设备有限公司 家电系统的在线升级控制方法和家电系统
CN109597635A (zh) * 2018-11-23 2019-04-09 湖北航天飞行器研究所 一种主控程序安全引导升级方法、嵌入式设备及存储器
CN111209059A (zh) * 2020-01-14 2020-05-29 中国北方车辆研究所 一种嵌入式软件多版本控制系统及方法
CN111209059B (zh) * 2020-01-14 2023-03-03 中国北方车辆研究所 一种嵌入式软件多版本控制系统及方法
CN113311931A (zh) * 2021-06-08 2021-08-27 合肥磐芯电子有限公司 一种方便iap的双复位向量8位mcu架构及其方法
CN113590150A (zh) * 2021-06-30 2021-11-02 北京智芯微电子科技有限公司 存储体控制方法、程序升级方法及设备

Also Published As

Publication number Publication date
CN101872306B (zh) 2013-03-20

Similar Documents

Publication Publication Date Title
CN101872306B (zh) 一种实现软件更新和软件备份的嵌入式系统及其实现方法
EP3491519B1 (en) Optimized uefi reboot process
JP3364356B2 (ja) メモリ書替え装置
US9195452B2 (en) Upgrade of software images based on streaming technique
US9052918B2 (en) Management of multiple software images with shared memory blocks
CN100507773C (zh) 实现固化程序在线升级的方法和装置
US20070180223A1 (en) Computer system and method of booting the system
JPH1124943A (ja) 計算機再起動方法および計算機停止方法
CN101373451B (zh) 保护双基本输出入系统程序的计算机系统及其控制方法
CN101414264B (zh) 一种软件版本的更新方法
US20090094447A1 (en) Universal serial bus flash drive for booting computer and method for loading programs to the flash drive
CN100426220C (zh) 在通信系统中利用单片机实现软件下载的装置及其方法
US20140304497A1 (en) Electronic device having function of booting operating system by bootloader, method of performing the same function, and storage medium
WO2012071852A1 (zh) 引导程序的升级方法和装置
EP2329368B1 (en) Updating content without using a mini operating system
US20150067317A1 (en) Device-less and system agnostic unified extensible firmware interface (uefi) driver
CN103092659A (zh) 脱离仿真器支持环境的dsp软件升级系统及其升级方法
CN113934471A (zh) 计算机系统的基板管理控制器和启动方法
CN101241442A (zh) 具有双开机程序代码区的计算机系统及其启动方法
US20040250058A1 (en) System and method for automatic booting based on single flash ROM
CN101615129A (zh) 应用于分布式系统中的升级方法及版本管理客户端
CN102203737B (zh) 多线程访问多副本的方法和装置
US6986035B2 (en) Modular bios for detecting resources of a system and reporting information about the resources during two separate phases
CN113127263B (zh) 一种内核崩溃恢复方法、装置、设备及存储介质
CN111124294B (zh) 一种扇区映射信息的管理方法及装置、存储介质和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: TIANJIN JINGXIN COMMUNICATION SYSTEM CO., LTD.

Free format text: FORMER OWNER: COMBA TELECOM SYSTEMS (CHINA) CO., LTD.

Effective date: 20150826

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150826

Address after: 300193, agricultural building 606 (Science and Technology Park), 26 Aerospace Road, Tianjin, Nankai District

Patentee after: TIANJIN COMBA TELECOM SYSTEMS CO., LTD.

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

Patentee before: Comba Telecom System (China) Co., Ltd.