CN109656598A - 一种基于mqx实时操作系统的应用程序在线升级方法 - Google Patents
一种基于mqx实时操作系统的应用程序在线升级方法 Download PDFInfo
- Publication number
- CN109656598A CN109656598A CN201811584529.7A CN201811584529A CN109656598A CN 109656598 A CN109656598 A CN 109656598A CN 201811584529 A CN201811584529 A CN 201811584529A CN 109656598 A CN109656598 A CN 109656598A
- Authority
- CN
- China
- Prior art keywords
- application program
- flash
- operating system
- real time
- time operating
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本发明提供了一种基于MQX实时操作系统的应用程序在线升级方法,包括:S1、配置MQX实时操作系统的硬件资源,在开发板上配置片外FLASH和片内FLASH;S2、创建BOOT引导程序和应用程序,所述BOOT引导程序和应用程序都固化于片内FLASH,所述BOOT引导程序用于加载应用程序和固化应用程序;S3、建立串口任务,用于实现物理层、链路层数据的传输功能;S4、建立BOOT引导程序的规约任务,用于实现应用层数据交互功能;S5、将待更新的应用程序存储于片外FLASH,通过BOOT引导程序引导执行在线升级。本发明所述的基于MQX实时操作系统的应用程序在线升级方法是一种更加方便、安全、可靠的应用程序在线升级方法。
Description
技术领域
本发明属于MQX实时操作系统技术领域,尤其是涉及一种基于MQX实时操作系统的应用程序在线升级方法。
背景技术
MQX实时操作系统是Precise Software Technologies公司1989年开发的一款嵌入式实时多任务操作系统,并且2009年被飞思卡尔公司收购后,开放源代码,变为开源实时操作系统。由于其实时性高、系统精简、可裁剪以及开源等特性被广泛应用于工业控制、汽车电子、消费等领域。在电气化铁路牵引自动化系统,电力系统变电站自动化系统中,MQX实时操作系统也被广泛应用。
现有的MQX实时操作系统的应用程序必须通过J-LINK进行程序烧写的模式进行升级,升级过程较为复杂。
发明内容
有鉴于此,本发明旨在提出一种基于MQX实时操作系统的应用程序在线升级方法,以改变现有的MQX实时操作系统的应用程序必须通过J-LINK进行程序烧写的模式进行升级的情况。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于MQX实时操作系统的应用程序在线升级方法,包括:
S1、配置MQX实时操作系统的硬件资源,在开发板上配置片外FLASH和片内FLASH;
S2、创建BOOT引导程序和应用程序,所述BOOT引导程序和应用程序都固化于片内FLASH,所述BOOT引导程序用于加载应用程序和固化应用程序;
S3、建立串口任务,用于实现物理层、链路层数据的传输功能;
S4、建立BOOT引导程序的规约任务,用于实现应用层数据交互功能;
S5、将待更新的应用程序存储于片外FLASH,通过BOOT引导程序引导执行在线升级。
进一步的,所述步骤S1中的硬件资源包括ARM架构的K66CPU开发板,以及搭载在开发板上的片内FLASH、片外FLASH、片内RAM、片外RAM。
进一步的,所述片内FLASH为2M字节,片外FLASH为8M字节,片内RAM为256K字节,片外RAM为16M字节。
进一步的,所述步骤S2中,BOOT引导程序固化于片内FLASH的开始地址,应用程序紧随BOOT引导程序的后续固定位置也固化于片内FLASH;
所述步骤S5中,待更新的应用程序存储在外部FLASH的开始地址。
进一步的,所述步骤S4中,BOOT引导程序的规约任务执行方法如下:
S401、规约任务启动,完成规约的相关初始化;
S402、等待外部维护软件通过串口下载应用程序;
S403、判断应用程序下载是否成功,如果不成功则重新执行步骤S402,如果成功则执行下一步骤;
S404、将应用程序存储在片外FLASH中,复位计数清零,并且将装置复位。
进一步的,所述步骤S5中,BOOT引导程序的执行方法如下:
S501、BOOT引导程序启动,完成系统以及部分硬件初始化;
S502、执行BOOT引导程序;
S503、读取片外FLASH中的APPCheck信息以及待更新应用程序中的Check信息,通过比较两者确定程序是否需要更新;如果需要更新则执行步骤S504,否则执行步骤S505;
S504、校验片外FLASH待更新的应用程序是否正确,如果正确则将片外FLASH的待更新的程序搬移到片内FLASH的指定区域;如果更新应用程序成功则执行步骤S505,否则执行步骤S507;
S505、校验片内FLASH中的应用程序是否正确,如果校验正确则执行步骤S506,否则执行步骤S507;
S506、完成固化加载过程,由BOOT引导程序跳转到应用程序,执行应用程序;
S507、等待外部下载应用程序,如果下载成功则执行步骤S502,否则执行步骤S507。
进一步的,还是设有防误程序,所述防误程序用于防止更新错误的应用程序,防误程序的执行方法如下:
设置一个连续复位的计数,且保证该计数值复位后不丢失;每次复位后,BOOT引导程序正常运行时对该计数值加1,超过限值说明出现多次连续复位,强制进入BOOT引导程序主循环,等待更新应用程序;应用程序更新完成后,清除连续复位计数并且复位CPU。
进一步的,所述步骤S5中,在应用程序出现异常无法正常运行时,强制通过BOOT引导程序进行应用程序的更新。
相对于现有技术,本发明所述的基于MQX实时操作系统的应用程序在线升级方法具有以下优势:
本发明所述的基于MQX实时操作系统的应用程序在线升级方法相较于J-LINK进行程序烧写的升级模式,本方法是一种更加方便、安全、可靠的应用程序在线升级方法。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的基于MQX实时操作系统的应用程序在线升级方法的硬件资源配置结构图;
图2为本发明实施例所述的BOOT引导程序执行规约任务流程图;
图3为本发明实施例所述的BOOT引导程序执行方法流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
一种基于MQX实时操作系统的应用程序在线升级方法,包括:
S1、配置MQX实时操作系统的硬件资源,在开发板上配置片外FLASH和片内FLASH;
S2、创建BOOT引导程序和应用程序,所述BOOT引导程序和应用程序都固化于片内FLASH,所述BOOT引导程序用于加载应用程序和固化应用程序;
S3、建立串口任务,用于实现物理层、链路层数据的传输功能;
S4、建立BOOT引导程序的规约任务,用于实现应用层数据交互功能;
S5、将待更新的应用程序存储于片外FLASH,通过BOOT引导程序引导执行在线升级。
如图1所示,所述步骤S1中的硬件资源采用ARM架构的K66CPU开发板,开发板含有片内FLASH为2M字节,片内RAM为256K字节。片外FLASH为8M字节,片外RAM为16M字节。为了实现应用程序在线升级,需要设计两种程序,即:BOOT引导程序、应用程序。BOOT引导程序固化于片内FLASH的开始地址(预留固定空间长度)。应用程序紧随BOOT的后续固定位置(预留固定空间长度)也固化于片内FLASH。待更新的应用程序存储在外部Flash的开始地址(预留固定空间长度)。CPU复位后,运行BOOT引导程序,通过BOOT引导程序对应用程序二次加载运行。一旦应用程序出现异常无法正常运行时,强制通过BOOT引导程序进行应用程序的更新。应用程序文件通过串口通信下载到外部FLASH中的固定位置(0地址开始),将校验码、文件长度、文件有效标志等信息存放在应用程序首部以便于检查,并且预留地址(外部FLASH应用程序预留空间的最后4KB)存放内部FLASH中运行程序的长度校验等相关信息。
如图2所示,所述步骤S4中,BOOT引导程序的规约任务执行方法如下:
S401、规约任务启动,完成规约的相关初始化;
S402、等待外部维护软件通过串口下载应用程序;
S403、判断应用程序下载是否成功,如果不成功则重新执行步骤S402,如果成功则执行下一步;
S404、将应用程序存储在片外FLASH中,复位计数清零,并且将装置复位。
如图3所示,所述步骤S5中,BOOT引导程序的执行方法如下:
S501、BOOT引导程序启动,完成系统以及部分硬件初始化;
S502、执行BOOT引导程序;
S503、读取片外FLASH中的APPCheck信息以及待更新应用程序中的Check信息,通过比较两者确定程序是否需要更新;如果需要更新则执行步骤S504,否则执行步骤S505;
S504、校验片外FLASH待更新的应用程序是否正确,如果正确则将片外FLASH的待更新的程序搬移到片内FLASH的指定区域;如果更新应用程序成功则执行步骤S505,否则执行步骤S507;
S505、校验片内FLASH中的应用程序是否正确,如果校验正确则执行步骤S506,否则执行步骤S507;
S506、完成固化加载过程,由BOOT引导程序跳转到应用程序,执行应用程序;
S507、等待外部下载应用程序,如果下载成功则执行步骤S502,否则执行步骤S507。
为了防止由于更新错误的应用程序,导致应用程序无法正常运行,而不能在线更新应用程序的情况发生,特意设置了防误程序,防误程序包括一个连续复位的计数,且需要保证该计数值复位后不丢失。每次复位后,BOOT引导程序正常运行时(非第一次上电)对该计数值加1,超过限值说明出现多次连续复位,强制进入BOOT引导程序主循环,等待更新应用程序。应用程序更新完成后,清除连续复位计数并且复位CPU。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于MQX实时操作系统的应用程序在线升级方法,其特征在于,包括:
S1、配置MQX实时操作系统的硬件资源,在开发板上配置片外FLASH和片内FLASH;
S2、创建BOOT引导程序和应用程序,所述BOOT引导程序和应用程序都固化于片内FLASH,所述BOOT引导程序用于加载应用程序和固化应用程序;
S3、建立串口任务,用于实现物理层、链路层数据的传输功能;
S4、建立BOOT引导程序的规约任务,用于实现应用层数据交互功能;
S5、将待更新的应用程序存储于片外FLASH,通过BOOT引导程序引导执行在线升级。
2.根据权利要求1所述的基于MQX实时操作系统的应用程序在线升级方法,其特征在于,所述步骤S1中的硬件资源包括ARM架构的K66CPU开发板,以及搭载在开发板上的片内FLASH、片外FLASH、片内RAM、片外RAM。
3.根据权利要求2所述的基于MQX实时操作系统的应用程序在线升级方法,其特征在于:所述片内FLASH为2M字节,片外FLASH为8M字节,片内RAM为256K字节,片外RAM为16M字节。
4.根据权利要求1所述的基于MQX实时操作系统的应用程序在线升级方法,其特征在于:所述步骤S2中,BOOT引导程序固化于片内FLASH的开始地址,应用程序紧随BOOT引导程序的后续固定位置也固化于片内FLASH;
所述步骤S5中,待更新的应用程序存储在外部FLASH的开始地址。
5.根据权利要求1所述的基于MQX实时操作系统的应用程序在线升级方法,其特征在于,所述步骤S4中,BOOT引导程序的规约任务执行方法如下:
S401、规约任务启动,完成规约的相关初始化;
S402、等待外部维护软件通过串口下载应用程序;
S403、判断应用程序下载是否成功,如果不成功则重新执行步骤S402,如果成功则执行下一步骤;
S404、将应用程序存储在片外FLASH中,复位计数清零,并且将装置复位。
6.根据权利要求1所述的基于MQX实时操作系统的应用程序在线升级方法,其特征在于,所述步骤S5中,BOOT引导程序的执行方法如下:
S501、BOOT引导程序启动,完成系统以及部分硬件初始化;
S502、执行BOOT引导程序;
S503、读取片外FLASH中的APPCheck信息以及待更新应用程序中的Check信息,通过比较两者确定程序是否需要更新;如果需要更新则执行步骤S504,否则执行步骤S505;
S504、校验片外FLASH待更新的应用程序是否正确,如果正确则将片外FLASH的待更新的程序搬移到片内FLASH的指定区域;如果更新应用程序成功则执行步骤S505,否则执行步骤S507;
S505、校验片内FLASH中的应用程序是否正确,如果校验正确则执行步骤S506,否则执行步骤S507;
S506、完成固化加载过程,由BOOT引导程序跳转到应用程序,执行应用程序;
S507、等待外部下载应用程序,如果下载成功则执行步骤S502,否则执行步骤S507。
7.根据权利要求1所述的基于MQX实时操作系统的应用程序在线升级方法,其特征在于:还是设有防误程序,所述防误程序用于防止更新错误的应用程序,防误程序的执行方法如下:
设置一个连续复位的计数,且保证该计数值复位后不丢失;每次复位后,BOOT引导程序正常运行时对该计数值加1,超过限值说明出现多次连续复位,强制进入BOOT引导程序主循环,等待更新应用程序;应用程序更新完成后,清除连续复位计数并且复位CPU。
8.根据权利要求1所述的基于MQX实时操作系统的应用程序在线升级方法,其特征在于:所述步骤S5中,在应用程序出现异常无法正常运行时,强制通过BOOT引导程序进行应用程序的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584529.7A CN109656598A (zh) | 2018-12-24 | 2018-12-24 | 一种基于mqx实时操作系统的应用程序在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811584529.7A CN109656598A (zh) | 2018-12-24 | 2018-12-24 | 一种基于mqx实时操作系统的应用程序在线升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109656598A true CN109656598A (zh) | 2019-04-19 |
Family
ID=66115036
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811584529.7A Pending CN109656598A (zh) | 2018-12-24 | 2018-12-24 | 一种基于mqx实时操作系统的应用程序在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656598A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114888A (zh) * | 2020-09-29 | 2020-12-22 | 上海大郡动力控制技术有限公司 | 一种电动汽车电控系统通用客户端引导程序生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
US20160117225A1 (en) * | 2014-10-28 | 2016-04-28 | Samsung Electronics Co., Ltd. | Mobile flash storage boot partition and/or logical unit shadowing |
CN105573800A (zh) * | 2015-12-22 | 2016-05-11 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于zynq的单板或多板系统及在线更新方法 |
CN107203392A (zh) * | 2017-04-01 | 2017-09-26 | 宁波三星医疗电气股份有限公司 | 一种小系统终端产品的多规约实现方法 |
-
2018
- 2018-12-24 CN CN201811584529.7A patent/CN109656598A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104090796A (zh) * | 2014-07-08 | 2014-10-08 | 成都万维图新信息技术有限公司 | 一种嵌入式设备程序更新方法和系统 |
US20160117225A1 (en) * | 2014-10-28 | 2016-04-28 | Samsung Electronics Co., Ltd. | Mobile flash storage boot partition and/or logical unit shadowing |
CN104572206A (zh) * | 2015-01-14 | 2015-04-29 | 厦门为那通信科技有限公司 | 应用程序自更新和备份恢复的方法 |
CN105573800A (zh) * | 2015-12-22 | 2016-05-11 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于zynq的单板或多板系统及在线更新方法 |
CN107203392A (zh) * | 2017-04-01 | 2017-09-26 | 宁波三星医疗电气股份有限公司 | 一种小系统终端产品的多规约实现方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114888A (zh) * | 2020-09-29 | 2020-12-22 | 上海大郡动力控制技术有限公司 | 一种电动汽车电控系统通用客户端引导程序生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103207797B (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
CN109240720B (zh) | 一种安卓系统的固件升级方法及一种存储设备 | |
KR20120052406A (ko) | 펌웨어 이미지 갱신 및 관리 | |
CN103942065A (zh) | 用于更新固件兼容性数据的方法和系统 | |
CN108829477A (zh) | 界面跳转方法、装置、计算机设备和存储介质 | |
CN107171833A (zh) | 一种通过bmc实现服务器bmc和bios批量升级方法 | |
CN107861745A (zh) | 一种应用程序在线升级方法、装置、设备及存储介质 | |
CN107301077A (zh) | 一种嵌入式设备固件升级系统 | |
CN108037941B (zh) | 基于公共插件的应用程序更新方法、电子设备、存储介质 | |
CN104699511B (zh) | 插件升级方法及装置 | |
WO2016078060A1 (zh) | 用于多系统终端的系统升级方法、升级装置和终端 | |
CN107301070A (zh) | 一种升级方法及终端 | |
CN108845824A (zh) | 应用更新方法和装置及计算机可读存储介质 | |
CN103365676B (zh) | 通信设备的软件升级方法及装置 | |
CN107220060A (zh) | 一种同时支持多个ota升级包升级的方法及系统 | |
CN109656598A (zh) | 一种基于mqx实时操作系统的应用程序在线升级方法 | |
CN110750285B (zh) | 固件升级方法、装置、计算机设备和存储介质 | |
CN110209420A (zh) | 一种更新引导加载程序的方法及装置 | |
CN113348110B (zh) | 电子控制装置、电子控制装置的安全验证方法 | |
CN107480117B (zh) | 自动化页面表单数据的恢复方法及装置 | |
CN110795159B (zh) | 一种防止车载ecu错误升级无法重刷的方法及存储设备 | |
CN115113922A (zh) | 无栈协程的实现方法、装置、设备及存储介质 | |
CN108958764A (zh) | 家用电器的应用程序更新方法、装置及家用电器 | |
CN106201584B (zh) | 版本升级方法及终端设备 | |
CN104750532A (zh) | 一种基于Android的双系统土地核查PAD及启动方法 |
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: 20190419 |