CN112988465A - 一种单片机升级失败自动恢复运行的方法 - Google Patents
一种单片机升级失败自动恢复运行的方法 Download PDFInfo
- Publication number
- CN112988465A CN112988465A CN202110326508.0A CN202110326508A CN112988465A CN 112988465 A CN112988465 A CN 112988465A CN 202110326508 A CN202110326508 A CN 202110326508A CN 112988465 A CN112988465 A CN 112988465A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- entering
- automatically recovering
- flash
- firmware
- 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
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000009191 jumping Effects 0.000 claims abstract description 4
- 238000012795 verification Methods 0.000 claims description 3
- 238000004146 energy storage Methods 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000011449 brick Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及单片机控制技术领域,尤其是指一种单片机升级失败自动恢复运行的方法,其包括以下步骤:步骤A,进入bootloader;步骤B,开启看门狗模块;步骤C,判断本次是否接收到升级指令,若是,则进入升级模式;若否,则进入正常运行模式;步骤D,清除运行成功标志;步骤E,跳转到应用层运行;步骤F,应用层初始化;步骤G,写运行成功的标志;步骤H,开启喂狗任务。本发明可以大大提高系统的稳定性、可用性和安全性;特别是对于工控、储能、电源控制模块等可靠性要求较高的场景。
Description
技术领域
本发明涉及单片机控制技术领域,尤其是指一种单片机升级失败自动恢复运行的方法。
背景技术
使用单片机开发的产品在日常生产生活中非常常见。例如遥控器、电磁炉、智能手环、工控设备等;常见的单片机低端的有51系列8位单片机,TI的msp430系列,高端的有ST的stm32系列;它们的特点是一个芯片上面集成了CPU和核心、运行内存RAM、数据存储器flash和其它必要的控制单元;不需要外接内存、硬盘即可实现程序的运行控制,减小了设计成本和体积。
日常使用的内置单片机的产品功能简单、稳定。通常出厂后功能就固定不变了,不会有后期的软件升级、维护等步骤;但对于一些工控、储能设备来说,发货到用户那里后还会面临有功能需求的变化,Bug的修复等问题;这时候就需要对单片机内置程序进行升级以实现新增功能。对于这些复杂的工业设备来说,内置软件的升级的过程必须十分的稳定可靠,不能出现升级失败导致固件丢失、变砖等现象。
由于终端客户实际使用环境千差万别,用户也不具备对设备维护的技能;一般单片机为了能升级,内置Flash会作如图1划分;Bootloader固定不变,可升级的是应用层(可升级固件)部分;也是由它来完成实现各种功能。所以需要一种方法,能防范单片机升级过程的异常,即使变砖也能自动恢复正常。
发明内容
本发明针对现有技术的问题提供一种单片机升级失败自动恢复运行的方法,可以大大提高系统的稳定性、可用性和安全性;特别是对于工控、储能、电源控制模块等可靠性要求较高的场景。
为了解决上述技术问题,本发明采用如下技术方案:
本发明提供的一种单片机升级失败自动恢复运行的方法,包括以下步骤:
步骤A,进入bootloader;
步骤B,开启看门狗模块;
步骤C,判断本次是否接收到升级指令,若是,则进入升级模式;若否,则进入正常运行模式;
步骤D,清除运行成功标志;
步骤E,跳转到应用层运行;
步骤F,应用层初始化;
步骤G,写运行成功的标志;
步骤H,开启喂狗任务。
其中,所述步骤C中的升级模式步骤为:
步骤C1,从串口接收升级数据帧;
步骤C2,接收完数据帧,校验完成后烧写进内置Flash;
步骤C3,判断升级是否成功;若是,则进入所述步骤D;若否,则从外接Flash读取之前备份的固件,烧写进内置Flash。
其中,所述步骤C中的正常运行模式步骤为:
步骤C11,检查应用层是否有运行成功标志;
步骤C12,若运行成功,则进入所述步骤D;若没有运行成功,则从外接Flash读取之前备份的固件,烧写进内置Flash。
其中,所述看门狗模块为计数模块。
其中,所述步骤C3中,判断升级失败的方法为:预设超时时间阈值,升级固件在接收数据时,出现无法接收数据的情况,若该情况超过该超时时间阈值,则判断为升级失败。
本发明的有益效果:
本发明可以大大提高系统的稳定性、可用性和安全性;特别是对于工控、储能、电源控制模块等可靠性要求较高的场景。
附图说明
图1为内置Flash的划分示意图。
图2为本发明的一种单片机升级失败自动恢复运行的方法流程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。以下结合附图对本发明进行详细的描述。
一种单片机升级失败自动恢复运行的方法,包括以下步骤:
步骤A,进入bootloader;
步骤B,开启看门狗模块;其中,所述看门狗模块为计数模块。
步骤C,判断本次是否接收到升级指令,若是,则进入升级模式;若否,则进入正常运行模式;
其中,所述步骤C中的升级模式步骤为:
步骤C1,从串口接收升级数据帧;
步骤C2,接收完数据帧,校验完成后烧写进内置Flash;
步骤C3,判断升级是否成功;若是,则进入所述步骤D;若否,则从外接Flash读取之前备份的固件,烧写进内置Flash。
其中,所述步骤C中的正常运行模式步骤为:
步骤C11,检查应用层是否有运行成功标志;
步骤C12,若运行成功,则进入所述步骤D;若没有运行成功,则从外接Flash读取之前备份的固件,烧写进内置Flash。
步骤D,清除运行成功标志;
步骤E,跳转到应用层运行;
步骤F,应用层初始化;
步骤G,写运行成功的标志;
步骤H,开启喂狗任务。
具体地,本发明首先不管是单片机正常运行过程中还是刚好开机那一刻收到了升级指令,它都会进入bootloader进行升级操作;因为单片机内置RAM较小,无法将整个固件接收完毕后放到内存中再进行升级;而且单片机程序正在运行,也不能擦除正在运行的flash区域,那样会导致崩溃;所以都要进入bootloader处理。
本发明的工作流程:
设备进入bootloader后,首先要开启看门狗,这样在升级失败固件无法运行时可以重启;
接下来判断本次是否接收到了升级指令,如果接收到了升级指令,那么就开始进入升级模式;从串口接收升级数据帧,接收完一帧并且校验完成后烧写进内置Flash;根据升级协议,固件接收完成并且所有帧都校验成功就可以认为升级成功;
本实施例所述的一种单片机升级失败自动恢复运行的方法,所述步骤C3中,判断升级失败的方法为:预设超时时间阈值,升级固件在接收数据时,出现无法接收数据的情况,若该情况超过该超时时间阈值,则判断为升级失败。
认定升级失败后就可以从外接的Flash中读取备份的固件,烧写到单片机内置Flash中;
如果bootloader没有收到升级指令,那么就是正常运行;此刻它会检查固件应用层写的运行成功标志;如果没有运行成功的标志则说明上一次的固件并不能运行,没有及时喂狗才导致看门狗超时重启进入本次的bootloader;所以就可以认为是固件损坏、或者之前升级没有真正成功,那此刻就可以从外置Flash读出备份的固件,烧写到单片机内置Flash中;
不管是有运行成功标志还是刚从外置Flash中恢复了备份的固件,此刻都要清除运行成功标志;这样如果内置Flash中的固件还无法运行,那么没有运行成功标志就可以再次判断并从外置Flash中恢复固件;
清除运行成功的标志后就是正式跳转到固件的应用层运行了;如果应用层无法正确执行那么就会导致看门狗超时重启进入从外置Flash恢复的流程;
进入应用层会做一些初始化相关的工作,初始化之后,就可以写运行成功的标志了,表明本次固件运行成功,这样下一次重启还会直接从内置Flash正常运行,避免出现误判进入恢复;
最后要开启喂狗任务,保证系统正常运行下去。
在设备生产、测试时,要对备份Flash进行烧写固件,保证和内置Flash都烧写相同的出厂固件。
在步骤A前,通过外置Flash并在它里面存储备份固件,可以解决单片机升级失败无法运行的问题,达到提高设备可靠性、稳定性目的。
本发明可以大大提高系统的稳定性、可用性和安全性;特别是对于工控、储能、电源控制模块等可靠性要求较高的场景。
以上所述,仅是本发明较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明以较佳实施例公开如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当利用上述揭示的技术内容作出些许变更或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明技术是指对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明技术方案的范围内。
Claims (5)
1.一种单片机升级失败自动恢复运行的方法,其特征在于,包括以下步骤:
步骤A,进入bootloader;
步骤B,开启看门狗模块;
步骤C,判断本次是否接收到升级指令,若是,则进入升级模式;若否,则进入正常运行模式;
步骤D,清除运行成功标志;
步骤E,跳转到应用层运行;
步骤F,应用层初始化;
步骤G,写运行成功的标志;
步骤H,开启喂狗任务。
2.根据权利要求1所述的一种单片机升级失败自动恢复运行的方法,其特征在于,所述步骤C中的升级模式步骤为:
步骤C1,从串口接收升级数据帧;
步骤C2,接收完数据帧,校验完成后烧写进内置Flash;
步骤C3,判断升级是否成功;若是,则进入所述步骤D;若否,则从外接Flash读取之前备份的固件,烧写进内置Flash。
3.根据权利要求1所述的一种单片机升级失败自动恢复运行的方法,其特征在于,所述步骤C中的正常运行模式步骤为:
步骤C11,检查应用层是否有运行成功标志;
步骤C12,若运行成功,则进入所述步骤D;若没有运行成功,则从外接Flash读取之前备份的固件,烧写进内置Flash。
4.根据权利要求1所述的一种单片机升级失败自动恢复运行的方法,其特征在于:所述看门狗模块为计数模块。
5.根据权利要求2所述的一种单片机升级失败自动恢复运行的方法,其特征在于,所述步骤C3中,判断升级失败的方法为:预设超时时间阈值,升级固件在接收数据时,出现无法接收数据的情况,若该情况超过该超时时间阈值,则判断为升级失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110326508.0A CN112988465A (zh) | 2021-03-26 | 2021-03-26 | 一种单片机升级失败自动恢复运行的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110326508.0A CN112988465A (zh) | 2021-03-26 | 2021-03-26 | 一种单片机升级失败自动恢复运行的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988465A true CN112988465A (zh) | 2021-06-18 |
Family
ID=76333875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110326508.0A Pending CN112988465A (zh) | 2021-03-26 | 2021-03-26 | 一种单片机升级失败自动恢复运行的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988465A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501409A (zh) * | 2023-04-27 | 2023-07-28 | 合芯科技(苏州)有限公司 | 一种基于双Flash的服务器启动方法、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197943A (zh) * | 2013-04-11 | 2013-07-10 | 航天科工深圳(集团)有限公司 | 一种单片机在线升级方法和系统 |
CN104156237A (zh) * | 2014-07-23 | 2014-11-19 | 武汉精测电子技术股份有限公司 | 单片机的在线升级方法 |
CN104166561A (zh) * | 2014-07-25 | 2014-11-26 | 深圳市江波龙电子有限公司 | 电子设备系统启动方法和电子设备 |
CN105183523A (zh) * | 2015-09-29 | 2015-12-23 | 国网智能电网研究院 | 一种dsp程序的远程升级方法 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
CN109947445A (zh) * | 2019-02-21 | 2019-06-28 | 广州小鹏汽车科技有限公司 | 一种固件升级方法及系统 |
WO2020094065A1 (zh) * | 2018-11-07 | 2020-05-14 | 中兴通讯股份有限公司 | 一种车载Tbox升级的方法、装置、设备以及存储介质 |
-
2021
- 2021-03-26 CN CN202110326508.0A patent/CN112988465A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197943A (zh) * | 2013-04-11 | 2013-07-10 | 航天科工深圳(集团)有限公司 | 一种单片机在线升级方法和系统 |
CN104156237A (zh) * | 2014-07-23 | 2014-11-19 | 武汉精测电子技术股份有限公司 | 单片机的在线升级方法 |
CN104166561A (zh) * | 2014-07-25 | 2014-11-26 | 深圳市江波龙电子有限公司 | 电子设备系统启动方法和电子设备 |
CN105183523A (zh) * | 2015-09-29 | 2015-12-23 | 国网智能电网研究院 | 一种dsp程序的远程升级方法 |
CN105912356A (zh) * | 2016-03-31 | 2016-08-31 | 武汉光迅科技股份有限公司 | 一种支持版本回退的光模块固件程序在线升级方法 |
WO2020094065A1 (zh) * | 2018-11-07 | 2020-05-14 | 中兴通讯股份有限公司 | 一种车载Tbox升级的方法、装置、设备以及存储介质 |
CN109947445A (zh) * | 2019-02-21 | 2019-06-28 | 广州小鹏汽车科技有限公司 | 一种固件升级方法及系统 |
Non-Patent Citations (1)
Title |
---|
邓力;周新志;: "一种改良安全机制的嵌入式远程升级系统的研究", 电子测量技术, no. 08 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501409A (zh) * | 2023-04-27 | 2023-07-28 | 合芯科技(苏州)有限公司 | 一种基于双Flash的服务器启动方法、计算机设备及存储介质 |
CN116501409B (zh) * | 2023-04-27 | 2024-05-07 | 合芯科技(苏州)有限公司 | 一种基于双Flash的服务器启动方法、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8468389B2 (en) | Firmware recovery system and method of baseboard management controller of computing device | |
CN101477471B (zh) | 一种嵌入式系统固件在线升级方法 | |
US7650556B2 (en) | System and method for checking and correcting BIOS errors | |
CN102053875B (zh) | 恢复计算机系统的基本输入输出系统的方法及计算机系统 | |
CN104090796A (zh) | 一种嵌入式设备程序更新方法和系统 | |
US7941658B2 (en) | Computer system and method for updating program code | |
CN101650662A (zh) | 一种嵌入式系统的存储器件、固件启动及升级方法 | |
US20090271660A1 (en) | Motherboard, a method for recovering the bios thereof and a method for booting a computer | |
CN105677398A (zh) | 一种通用的嵌入式计算机软件在线升级方法 | |
CN114860279B (zh) | 一种快速空片升级方法 | |
CN108345464A (zh) | 一种安卓系统的启动方法及安卓车机 | |
CN105511976A (zh) | 一种嵌入式系统中的应用程序自恢复运行方法及装置 | |
CN111142911A (zh) | 具有异常恢复功能的嵌入式系统及其升级方法 | |
CN115718610A (zh) | 一种可靠的单片机应用程序更新的方法 | |
CN111782246A (zh) | 基于总线的多节点设备嵌入式程序升级方法 | |
CN103092659A (zh) | 脱离仿真器支持环境的dsp软件升级系统及其升级方法 | |
CN111552592A (zh) | 一种双备份启动方法及系统 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
CN112988465A (zh) | 一种单片机升级失败自动恢复运行的方法 | |
CN113641390B (zh) | 一种系统升级方法、装置、设备及存储介质 | |
CN110058973B (zh) | 数据储存装置的测试系统与数据储存装置的测试方法 | |
CN101526908A (zh) | 固件更新装置和方法 | |
CN111090443A (zh) | 一种保障linux系统安全升级的方法、设备和存储介质 | |
CN113377425B (zh) | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 | |
CN112882757A (zh) | 一种嵌入式系统双分区安全启动方法 |
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: 20231024 Address after: Delaware Applicant after: Saivante Systems Address before: 523000 building C7, we Valley, Everbright, No.16, Keji 4th Road, Songshanhu high tech Industrial Development Zone, Dongguan City, Guangdong Province Applicant before: Dongguan Fenggu Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right |