首页 / 专利库 / 软件 / 软件 / 一种软件版本的更新方法

一种软件版本的更新方法

阅读:2发布:2021-08-08

专利汇可以提供一种软件版本的更新方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种高可靠 软件 版本的更新方法和三种更新方式。该发明将MCU或DSP中的FLASH分为三个区域,区域一用于存储正常版本程序,区域二用于存储更新版本程序,区域三用于存储BOOT程序。更新软件首先将更新版本下载到区域二中,在需要更新时,再将其拷入区域一中,根据实际情况,选择三种更新方式:第一种,在更新程序下载完成后,立即更新软件;第二种,在更新程序下载完成后,根据上位机发送的更新命令来更新软件;第三种,在更新程序下载完成后,并在下一次系统上电复位后,BOOT程序检测到更新版本的有效标志时,才更新软件。本发明具有实现简单、更新方式灵活、程序可靠性高等优点,可应用于数字控 制芯 片领域。,下面是一种软件版本的更新方法专利的具体信息内容。

1.一种新的软件版本更新方法,其基本思想是利用区域二作为下载更新版本程序的存储区,当更新版本程序下载成功后,再将其拷入区域一中,从而实现软件版本的更新,具体包括如下几个方面:
(1)将MCU或DSP的FLASH空间分为三个区域,区域一用于存储应用程序正常版本,区域二用于存储应用程序更新版本,区域三用于存储BOOT程序;
(2)系统上电复位时,软件跳至BOOT区域开始运行,首先检测更新版本是否有效,如果有效,才执行擦除区域一中的应用程序,擦除完成后,将更新版本程序拷入区域一中,并在软件更新完成后从区域一中运行升级后的应用程序,而不是在区域一和区域二中之间进行应用程序的切换;
(3)根据实际情况选择三种更新方式中的一种来实现软件更新:
方式一:在更新版本程序下载完成后,立即更新软件;
方式二:在更新版本程序下载完成后,根据上位机发送的更新命令来更新软件;
方式三:在更新版本程序下载完成后,不执行更新操作,但在下一次系统上电复位后,BOOT程序检测到更新版本的新标志位有效时,才自动更新软件。

说明书全文

一种软件版本的更新方法

技术领域

[0001] 本发明涉及数字控制芯片领域,具体涉及到MCU或DSP的软件更新方法和更新方式。

背景技术

[0002] 随着IT技术的迅猛发展,数字化技术已被广泛应用到国民经济的各个领域。而数字化技术的核心包括两个部分,一个是MCU或DSP等数字控制芯片,另一个是相应的软件程序。一般的数字芯片均带有FLASH存储空间,以及丰富的外设模,其中包括各种常见的通讯接口,例如,I2C、RS232等。同时,为了满足应用需求的不断变化,一般会在相应的软件程序设计中加入Bootloader功能,即利用系统已有的通讯接口,依靠BOOT程序来在线更新MCU或DSP中的软件,在更新软件完成之后,运行更新版本程序来实现系统功能的扩展或升级。
[0003] 目前,常用的一种更新方法是直接刷新FLASH中已有的代码来实现软件的升级。虽然该方法实现简单,但是存在意外险,即当系统在更新软件过程中意外断电时,MCU或DSP中原有的正常版本程序也将被破坏无法运行,而导致系统崩溃。
[0004] 为了解决上述更新方法的不足,专利(公开号CN1959635A)提出了另一种更新方法,即在MCU或DSP的FLASH中开辟两个空间A和B,其中A中用于存放正常版本的程序和版本切换程序,而B用于存放更新版本的程序,通过BOOT程序来选择当前运行程序的版本。虽然这种方法提高了软件更新的可靠性,但却增加了程序设计的复杂性。因为MCU或DSP中中断向量表的地址一般是固定的,所以只能依靠复杂的版本切换程序来实现A和B区域中两个版本软件的切换。同时,该专利提供的软件更新方式也比较单一。 发明内容
[0005] 本发明为了克服现有技术中的不足,提出了一种新的软件版本更新方法和三种更新方式。其具体内容如下:
[0006] 1、将MCU或DSP的FLASH空间分为3个区域,如图1所示。区域一用于存储应用程序正常版本,区域二用于存储应用程序更新版本,区域三用于存储BOOT程序。其中区域一和区域二的分配空间大小相等,因为区域二的主要用途在于存储区域一的运行程序的更新版本软件。
[0007] 2、本软件程序设计主要分为两个部分,一部分是应用程序的设计,另一部分是BOOT程序的设计。出厂时,应用程序的正常版本放在区域一中,而BOOT程序放在区域三中;更新时,仅对应用程序进行更新。
[0008] 系统上电复位时,软件首先跳转至BOOT程序开始运行。BOOT程序首先检测区域二中的更新版本程序是否是新的和有效的,只有在检测到区域二中的更新版本程序是新的和有效的,BOOT程序才会擦除区域一中的正常版本,再将区域二中的更新版本拷入区域一中,覆盖正常版本后在区域一中设置正常版本有效标志位。否则BOOT程序将终止软件版本的更新,并设置更新失败标志。然后软件将从区域三中BOOT程序跳回区域一中运行应用程序的正常版本。因为只有在更新版本有效时才会擦除正常版本,因此,更新版本和正常版本不会同时无效。
[0009] 软件在擦除区域一的过程中如果出现异常,如系统掉电,将导致区域一中的应用程序破坏。然而,此时区域二中的更新软件是有效的,当系统重新上电运行时,BOOT程序会将区域二中的更新软件拷入区域一中,然后从区域一开始运行,从而可以有效地解决常用版本更新方法存在的意外风险问题。
[0010] 3、为了进一步提高系统更新软件的可靠性和灵活性,本发明提供了三种更新方式:第一种是在下载更新程序结束后立即执行更新操作;第二种是在下载更新程序结束后,PC机通过通讯发送更新命令才执行更新操作;第三种是在下载更新程序结束后,在系统下一次上电复位后才执行更新操作。
[0011] 其中第一种更新方式适用于对可靠性要求不是很严格而且上需要更新的场合,该方法和公开号 CN1959635A的专利相似,但克服了它存在的不足;第二种更新方式可以让客户根据实际系统的运行需要来选择更新软件的时机,因此可以在合适的时间内进行软件更新,将更新的风险进一步降低。最后一种更新方式适合于对可靠性要求非常严格的场合,在系统断电后重新上电复位后进行更新。附图说明
[0012] 图1是本发明提出的MCU或DSP的FLASH存储分配结构图;图2是本发明提出的系统软件流程图,包括应用正常版本程序和BOOT程序;图3是BOOT程序中更新版本程序下载流程图。

具体实施方式

[0013] 1、系统软件主程序设计具体流程如图2所示。系统上电复位时,软件跳转至BOOT程序开始运行。首先检测区域二中的更新版本程序是否是新的,如果是,则在清除新的标志位后,将更新版本拷入区域一中,覆盖原来的正常版本,再从更新后的正常版本开始运行。如果不是,则检测应用程序的正常版本是否有效,如果有效则运行正常版本的程序。否则,检测应用程序更新版本是否有效,如果有效,则将更新版本拷入区域一中,覆盖原来的正常版本,再从更新后的正常版本开始运行。
[0014] 2、BOOT程序中更新版本程序下载流程图如图3所示。如果软件需要更新时,首先将更新版本软件下载到区域二中,在更新版本软件的下载过程中,对更新版本进行校验,如果更新版本下载成功,则在指定的地址中设置更新程序是新的和有效的标志位,反之,则设置无效的标志位。
[0015] 3、MCU或DSP的FLASH空间地址典型分配如表1所示,在实际应用中,可以根据FLASH的大小、程序代码长度等因素灵活调节。假设MCU或DSP的FLASH空间范围为0x0000-0xFFFF,每页的大小为0x100。从下表1可见,应用程序更新版本和正常版本的FLASH空间大小都为0x7000。而且,不论是应用程序正常版本和更新版本,其第一个运行的指令都是跳转到BOOT程序,其最后的两组地址都用于存放新和有效的标志位,这样一来,当更新升级程序时,仅需要将区域二中的更新程序整体拷入区域一中即可,而不需区 分其中的标志位、跳转指令和程序本体,因此,简化了BOOT程序的设计。
[0016] 表1.MCU或DSP的FLASH空间地址分配
[0017]
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈