CN103092647A - 嵌入式系统的在线升级方法 - Google Patents
嵌入式系统的在线升级方法 Download PDFInfo
- Publication number
- CN103092647A CN103092647A CN2012105985890A CN201210598589A CN103092647A CN 103092647 A CN103092647 A CN 103092647A CN 2012105985890 A CN2012105985890 A CN 2012105985890A CN 201210598589 A CN201210598589 A CN 201210598589A CN 103092647 A CN103092647 A CN 103092647A
- Authority
- CN
- China
- Prior art keywords
- code
- embedded system
- area
- zone bit
- application program
- 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
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了嵌入式系统的在线升级方法,包括以下步骤:(A1)嵌入式系统执行应用程序及升级命令;(A2)待升级的代码利用通讯协议发送给嵌入式系统,嵌入式系统调用引导区的接口函数,将所述待升级的代码存储到临时区,完成后将标志区设置为代码正确下载标志位;复位嵌入式系统;(A3)嵌入式系统运行引导区内的程序,初始化所述接口函数,并读取标志区的标志:若标志位为正常运行标志位,执行代码区的应用程序;若标志位为正确下载标志位,交换所述代码区和临时区的代码,交换完成后执行代码区的应用程序;若标志位为代码恢复标志位,交换所述代码区和临时区的代码,复位所述嵌入式系统。本发明具有方便可靠、解决升级过程中因掉电等原因导致升级失败而引起的程序出等优点。
Description
技术领域
本发明涉及程序升级,特别涉及嵌入式系统的在线升级方法。
背景技术
在基于嵌入式系统的电子产品中,通常采用单片机以及ARM作为其主控制器以及处理器。由于应用软件需要不断的更新,所以在成品的电子产品中,通常需要进行软件的在线升级,以增加新增的功能,以及解决当前存在的软件缺陷。
传统的单片机升级方法,通常有两种:一种为,单片机程序分为独立的应用程序和Boot程序,Boot程序用于将需要升级的应用程序写到当前的应用程序中,通常是需要将单片机重启或者接收命令后,进入一个Boot程序的状态,此时不运行正常的应用程序,仅能进行软件的升级。另一种是利用某些单片机自带的Boot程序,重启单片机,控制硬件上的引脚使之进入Boot程序,使用单片机厂商提供的升级软件进行升级。
以上两种方法存在以下的弊端:1.应用程序和Boot程序独立存在,在下载代码的时候,需要下载两遍程序;2.进入Boot程序模式后,应用程序无法运行;3.在软件升级过程中,如果突然断电,会导致应用程序的故障,无法继续升级,原先的应用程序也无法运行。
与单片机领域类似的PC软件升级方法,在应用程序运行的同时,通常首先将应用程序进行下载,下载完成后,关闭当前应用程序,进行软件的升级。然而PC软件的升级是基于完整的操作系统和文件系统,升级的应用程序以文件方式存在,这些条件在单片机上并不具备。另外,PC的软件升级方法,需要在运行应用程序的时候,同时有另外的进程进行新应用程序的下载,由于单片机仅能运行一个应用程序,所以无法采用该方式。
发明内容
为了解决上述现有技术方案中的不足,本发明提供了一种方便可靠、解决升级过程中因掉电等原因导致升级失败而引起的程序出错的在线升级方法。
本发明的目的是通过以下技术方案实现的:
嵌入式系统的在线升级方法,所述在线升级方法包括以下步骤:
(A1)嵌入式系统执行应用程序及升级命令;
(A2)待升级的代码利用通讯协议发送给所述嵌入式系统,所述嵌入式系统调用引导区的接口函数,将所述待升级的代码存储到临时区,完成后将标志区的标志位设置为代码正确下载标志位;复位所述嵌入式系统;
(A3)所述嵌入式系统运行引导区内的程序,初始化所述接口函数,并读取标志区的标志:
若标志位为正确下载标志位,交换所述代码区和临时区的代码,交换完成后执行代码区的应用程序。
根据上述的在线升级方法,可选地,所述步骤(A2)进一步包括以下步骤:
(B1)所述待升级的代码存储到临时区后,进行接收到的待升级的代码的CRC校验;
若失败,则软件复位;
若成功,则将标志区的标志位设置为代码正确下载标志位。
根据上述的在线升级方法,可选地,所述步骤(A2)进一步包括:
若标志位为代码恢复标志位,交换所述代码区和临时区的代码,复位所述嵌入式系统;
若标志位为异常标志位,将标志位修改为正常标志位,所述嵌入式系统运行代码区的应用程序。
与现有技术相比,本发明具有的有益效果为:
1、应用程序中包含了引导程序的相关代码,所以只需要下载一遍应用程序即可,使用方便;
2、升级过程中仍可以运行正常的应用程序;
3、升级过程与物理链路无关,应用广泛;
4、采用CRC对最终的应用程序进行校验,保证应用程序的完整性;
5、采取了较多的掉电保护措施,可以避免因升级失败引起的程序崩溃;
6、升级完成后可恢复至升级之前的应用程序。
附图说明
参照附图,本发明的公开内容将变得更易理解。本领域技术人员容易理解的是:这些附图仅仅用于举例说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。图中:
图1是根据本发明实施例1的程序存储空间的分区简图;
图2是根据本发明实施例1的在线升级方法的流程图。
具体实施方式
图1、2和以下说明描述了本发明的可选实施方式以教导本领域技术人员如何实施和再现本发明。为了教导本发明技术方案,已简化或省略了一些常规方面。本领域技术人员应该理解源自这些实施方式的变型或替换将在本发明的范围内。本领域技术人员应该理解下述特征能够以各种方式组合以形成本发明的多个变型。由此,本发明并不局限于下述可选实施方式,而仅由权利要求和它们的等同物限定。
实施例1:
图1示意性地给出了本发明实施例的程序存储空间的分区简图,如图1所示,所述程序存储空间包括:
引导区,所述引导区存基本的存储器读写、标志判断等代码(不含通讯处理及其基本操作);引导区程序为独立编译的一个程序,包含了对程序存储器的读写以及校验操作,使用时将引导程序编译完成后的可执行程序添加到应用程序中,并提供相关的调用接口。主程序只需要相应在线升级的通讯命令,调用对应的引导程序接口函数,即可以完成在线升级的操作。
代码区,所述代码区存完整的应用程序工程代码(含通讯处理及其基本操作);
临时区,所述临时去用于备份程序区的代码、临时存储待升级的代码;
标志区,所述标志区是专门存放升级标志位的特殊区域。其中引导区代码使用特殊的“常量定位”方式添加到应用程序中,与代码区的应用程序一次编译完成,引导区提供接口函数供代码区调用。标志包含了正在运行状态标志位,正在下载代码标志位,代码下载正确标志位,正在互换代码标志位,代码互换正确标志位,代码互换失败标志位,程序升级成功标志位,代码恢复命令标志位。单片机重启后首先读取该标志位,然后根据标志位可以确定在哪个过程中曾经断电过,然后在执行相关的操作恢复程序,可以解决升级过程中断电的问题。
图2示意性地给出了本发明实施例的嵌入式系统的在线升级方法的流程图,如图2所示,所述在线升级方法包括以下步骤:
(A1)嵌入式系统执行应用程序及升级命令;
(A2)待升级的代码利用通讯协议发送给所述嵌入式系统,所述嵌入式系统调用引导区的接口函数,将所述待升级的代码存储到临时区;
(B1)所述待升级的代码存储到临时区后,进行接收到的待升级的代码的CRC校验;
若失败,则软件复位;
若成功,则将标志区的标志位设置为代码正确下载标志位;
复位所述嵌入式系统;
(A3)所述嵌入式系统运行引导区内的程序,初始化所述接口函数,并读取标志区的标志:
若标志位为正确下载标志位,交换所述代码区和临时区的代码,交换完成后执行代码区的应用程序;
若标志位为代码恢复标志位,交换所述代码区和临时区的代码,复位所述嵌入式系统;
若标志位为异常标志位,将标志位修改为正常标志位,所述嵌入式系统运行代码区的应用程序。
Claims (3)
1.嵌入式系统的在线升级方法,所述在线升级方法包括以下步骤:
(A1)嵌入式系统执行应用程序及升级命令;
(A2)待升级的代码利用通讯协议发送给所述嵌入式系统,所述嵌入式系统调用引导区的接口函数,将所述待升级的代码存储到临时区,完成后将标志区的标志位设置为代码正确下载标志位;复位所述嵌入式系统;
(A3)所述嵌入式系统运行引导区内的程序,初始化所述接口函数,并读取标志区的标志:
若标志位为正确下载标志位,交换所述代码区和临时区的代码,交换完成后执行代码区的应用程序。
2.根据权利要求1所述的在线升级方法,其特征在于:所述步骤(A2)进一步包括以下步骤:
(B1)所述待升级的代码存储到临时区后,进行接收到的待升级的代码的CRC校验;
若失败,则软件复位;
若成功,则将标志区的标志位设置为代码正确下载标志位。
3.根据权利要求1所述的在线升级方法,其特征在于:所述步骤(A2)进一步包括:
若标志位为代码恢复标志位,交换所述代码区和临时区的代码,复位所述嵌入式系统;
若标志位为异常标志位,将标志位修改为正常标志位,所述嵌入式系统运行代码区的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105985890A CN103092647A (zh) | 2012-12-29 | 2012-12-29 | 嵌入式系统的在线升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012105985890A CN103092647A (zh) | 2012-12-29 | 2012-12-29 | 嵌入式系统的在线升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103092647A true CN103092647A (zh) | 2013-05-08 |
Family
ID=48205258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012105985890A Pending CN103092647A (zh) | 2012-12-29 | 2012-12-29 | 嵌入式系统的在线升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103092647A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559066A (zh) * | 2013-11-19 | 2014-02-05 | 上海创程车联网络科技有限公司 | 基于canopen协议的嵌入式软件升级方法 |
CN103995717A (zh) * | 2014-05-07 | 2014-08-20 | 南京国电南自电网自动化有限公司 | 一种嵌入式设备软件升级的方法 |
CN105260212A (zh) * | 2015-10-26 | 2016-01-20 | 常熟开关制造有限公司(原常熟开关厂) | 断路器控制器及其软件升级方法、一种断路器 |
CN106506649A (zh) * | 2016-11-14 | 2017-03-15 | 湖南小步科技有限公司 | 一种车载控制终端的远程在线升级方法及装置 |
CN106970809A (zh) * | 2017-02-22 | 2017-07-21 | 深圳市鼎阳科技有限公司 | 一种安全升级文件系统的方法和装置 |
CN107193603A (zh) * | 2017-05-25 | 2017-09-22 | 绵阳美菱软件技术有限公司 | 一种智能家电的升级方法及装置 |
CN108376077A (zh) * | 2018-02-11 | 2018-08-07 | 广东美的厨房电器制造有限公司 | 控制单元的升级方法和装置 |
CN108536641A (zh) * | 2018-02-28 | 2018-09-14 | 郑州信大捷安信息技术股份有限公司 | 通讯机制及用该机制实现Windows嵌入式系统安全引导的方法 |
CN109032615A (zh) * | 2018-06-06 | 2018-12-18 | 咕咚网络(北京)有限公司 | 一种用于无线联网门锁的软件在线升级方法 |
CN109992280A (zh) * | 2017-12-29 | 2019-07-09 | 深圳市优必选科技有限公司 | 一种嵌入式软件升级的方法、终端装置及存储装置 |
CN110119285A (zh) * | 2019-05-21 | 2019-08-13 | 深圳云里物里科技股份有限公司 | 一种低端单片机软件升级方法及相关装置 |
CN110264452A (zh) * | 2019-06-18 | 2019-09-20 | 江苏通佑视觉科技有限公司 | 一种工件检测方法、装置、设备及存储介质 |
CN110795159A (zh) * | 2019-10-30 | 2020-02-14 | 福建省汽车工业集团云度新能源汽车股份有限公司 | 一种防止车载ecu错误升级无法重刷的方法及存储设备 |
CN112261089A (zh) * | 2020-09-28 | 2021-01-22 | 中国科学院沈阳自动化研究所 | 一种水下滑翔机远程程序升级的方法及设备 |
CN112462909A (zh) * | 2020-11-23 | 2021-03-09 | 广州朗国电子科技有限公司 | 一体机转接设备的复位控制方法、装置及存储介质 |
CN113031998A (zh) * | 2021-02-26 | 2021-06-25 | 芜湖美的厨卫电器制造有限公司 | 用于系统升级的方法、处理器、电子设备及存储介质 |
CN113127035A (zh) * | 2021-04-15 | 2021-07-16 | 沃太能源股份有限公司 | 一种基于单片机的可回溯的升级方法 |
CN113339956A (zh) * | 2021-06-03 | 2021-09-03 | 青岛海信日立空调系统有限公司 | 空调系统 |
CN114296819A (zh) * | 2021-12-23 | 2022-04-08 | 上海易咖智车科技有限公司 | 车身控制器的程序刷写方法、装置、计算机设备及介质 |
CN114328344A (zh) * | 2021-11-26 | 2022-04-12 | 上海航天科工电器研究院有限公司 | 一种基于串口的dsp应用程序在线升级方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
CN102023876A (zh) * | 2009-09-14 | 2011-04-20 | 漳州科能电器有限公司 | 一种可软件在线升级的嵌入式系统及在线升级方法 |
-
2012
- 2012-12-29 CN CN2012105985890A patent/CN103092647A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101557583A (zh) * | 2009-03-19 | 2009-10-14 | 珠海银邮光电技术发展股份有限公司 | 直放站设备嵌入式软件的远程升级与版本切换方法 |
CN102023876A (zh) * | 2009-09-14 | 2011-04-20 | 漳州科能电器有限公司 | 一种可软件在线升级的嵌入式系统及在线升级方法 |
Non-Patent Citations (7)
Title |
---|
刘梁 等: "《一种无线传感器软件非接触升级的方法》", 《嵌入式技术》 * |
周永 等: "《小容量单片机软件在线升级实现》", 《工业仪表与自动化装置》 * |
周永: "《基于无线网络分析仪器在线升级的设计与实现》", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
唐文 等: "《MSP系列单片机软件在线升级设计与实现》", 《通信技术》 * |
孙亚萍 等: "《一种新型DSP软件在线升级方法的研究与实现》", 《微型机与应用》 * |
袁娟 等: "《MSP430程序升级方式探讨》", 《单片机与嵌入式系统应用》 * |
陶维青 等: "《基于GPRS网络的MSP430单片机flash远程更新方法》", 《电测与仪表》 * |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559066B (zh) * | 2013-11-19 | 2017-03-08 | 上海创程车联网络科技有限公司 | 基于canopen协议的嵌入式软件升级方法 |
CN103559066A (zh) * | 2013-11-19 | 2014-02-05 | 上海创程车联网络科技有限公司 | 基于canopen协议的嵌入式软件升级方法 |
CN103995717A (zh) * | 2014-05-07 | 2014-08-20 | 南京国电南自电网自动化有限公司 | 一种嵌入式设备软件升级的方法 |
CN103995717B (zh) * | 2014-05-07 | 2017-04-05 | 南京国电南自电网自动化有限公司 | 一种嵌入式设备软件升级的方法 |
CN105260212B (zh) * | 2015-10-26 | 2018-12-25 | 常熟开关制造有限公司(原常熟开关厂) | 断路器控制器及其软件升级方法、一种断路器 |
CN105260212A (zh) * | 2015-10-26 | 2016-01-20 | 常熟开关制造有限公司(原常熟开关厂) | 断路器控制器及其软件升级方法、一种断路器 |
CN106506649A (zh) * | 2016-11-14 | 2017-03-15 | 湖南小步科技有限公司 | 一种车载控制终端的远程在线升级方法及装置 |
CN106970809A (zh) * | 2017-02-22 | 2017-07-21 | 深圳市鼎阳科技有限公司 | 一种安全升级文件系统的方法和装置 |
CN107193603A (zh) * | 2017-05-25 | 2017-09-22 | 绵阳美菱软件技术有限公司 | 一种智能家电的升级方法及装置 |
CN109992280A (zh) * | 2017-12-29 | 2019-07-09 | 深圳市优必选科技有限公司 | 一种嵌入式软件升级的方法、终端装置及存储装置 |
CN108376077A (zh) * | 2018-02-11 | 2018-08-07 | 广东美的厨房电器制造有限公司 | 控制单元的升级方法和装置 |
CN108536641A (zh) * | 2018-02-28 | 2018-09-14 | 郑州信大捷安信息技术股份有限公司 | 通讯机制及用该机制实现Windows嵌入式系统安全引导的方法 |
CN108536641B (zh) * | 2018-02-28 | 2020-10-23 | 郑州信大捷安信息技术股份有限公司 | 通讯机制及用该机制实现Windows嵌入式系统安全引导的方法 |
CN109032615A (zh) * | 2018-06-06 | 2018-12-18 | 咕咚网络(北京)有限公司 | 一种用于无线联网门锁的软件在线升级方法 |
CN110119285A (zh) * | 2019-05-21 | 2019-08-13 | 深圳云里物里科技股份有限公司 | 一种低端单片机软件升级方法及相关装置 |
CN110264452A (zh) * | 2019-06-18 | 2019-09-20 | 江苏通佑视觉科技有限公司 | 一种工件检测方法、装置、设备及存储介质 |
CN110264452B (zh) * | 2019-06-18 | 2023-08-04 | 江苏通佑视觉科技有限公司 | 一种工件检测方法、装置、设备及存储介质 |
CN110795159A (zh) * | 2019-10-30 | 2020-02-14 | 福建省汽车工业集团云度新能源汽车股份有限公司 | 一种防止车载ecu错误升级无法重刷的方法及存储设备 |
CN110795159B (zh) * | 2019-10-30 | 2023-07-21 | 福建省汽车工业集团云度新能源汽车股份有限公司 | 一种防止车载ecu错误升级无法重刷的方法及存储设备 |
CN112261089B (zh) * | 2020-09-28 | 2022-07-05 | 中国科学院沈阳自动化研究所 | 一种水下滑翔机远程程序升级的方法及设备 |
CN112261089A (zh) * | 2020-09-28 | 2021-01-22 | 中国科学院沈阳自动化研究所 | 一种水下滑翔机远程程序升级的方法及设备 |
CN112462909A (zh) * | 2020-11-23 | 2021-03-09 | 广州朗国电子科技有限公司 | 一体机转接设备的复位控制方法、装置及存储介质 |
CN113031998A (zh) * | 2021-02-26 | 2021-06-25 | 芜湖美的厨卫电器制造有限公司 | 用于系统升级的方法、处理器、电子设备及存储介质 |
CN113127035A (zh) * | 2021-04-15 | 2021-07-16 | 沃太能源股份有限公司 | 一种基于单片机的可回溯的升级方法 |
CN113339956A (zh) * | 2021-06-03 | 2021-09-03 | 青岛海信日立空调系统有限公司 | 空调系统 |
CN114328344A (zh) * | 2021-11-26 | 2022-04-12 | 上海航天科工电器研究院有限公司 | 一种基于串口的dsp应用程序在线升级方法 |
CN114296819A (zh) * | 2021-12-23 | 2022-04-08 | 上海易咖智车科技有限公司 | 车身控制器的程序刷写方法、装置、计算机设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103092647A (zh) | 嵌入式系统的在线升级方法 | |
CN105912356B (zh) | 一种支持版本回退的光模块固件程序在线升级方法 | |
CN103777983B (zh) | 一种星载软件在轨维护及升级方法 | |
CN104360877A (zh) | 基于Bootloader自更新的ECU固件更新方法 | |
CN101815988A (zh) | 固件映像更新和管理 | |
CN100570558C (zh) | 一种芯片固件升级方法 | |
CN102567049B (zh) | 嵌入式操作系统的升级方法 | |
CN101615128B (zh) | 一种单片机在线升级的方法及装置 | |
CN105930236A (zh) | 一种基于BMS Bootloader升级的应用程序版本回退方法 | |
CN104572206A (zh) | 应用程序自更新和备份恢复的方法 | |
CN105373407A (zh) | 嵌入式系统dsp和fpga在线升级方法 | |
CN102141940B (zh) | 一种固件刷机恢复设备、固件刷机恢复方法及系统 | |
CN101950254B (zh) | 一种软件更新方法和系统 | |
CN102508686A (zh) | 一种系统安全升级的实现方法及其系统 | |
CN102693144B (zh) | 一种Android移动终端的电容屏固件升级的方法 | |
CN104102518A (zh) | 一种双cpu系统及其程序升级方法 | |
CN109189434A (zh) | 一种电能表的在线升级方法 | |
CN109710320B (zh) | 一种两级驱动的启动引导BootLoader方法 | |
CN105511976A (zh) | 一种嵌入式系统中的应用程序自恢复运行方法及装置 | |
CN102520961B (zh) | 片外在线可编程的soc系统及其控制方法 | |
CN103150188A (zh) | 非x86指令集计算机的x86兼容显卡快速初始化方法 | |
CN110286932A (zh) | 一种程序下载方法及装置 | |
CN102841802A (zh) | 移动终端的软件升级方法 | |
CN105468390A (zh) | Boot在线升级装置及方法 | |
CN115718610A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130508 |