CN112988465A - 一种单片机升级失败自动恢复运行的方法 - Google Patents

一种单片机升级失败自动恢复运行的方法 Download PDF

Info

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
Application number
CN202110326508.0A
Other languages
English (en)
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.)
Saivante Systems
Original Assignee
Dongguan Fenggu Technology Co 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 Dongguan Fenggu Technology Co ltd filed Critical Dongguan Fenggu Technology Co ltd
Priority to CN202110326508.0A priority Critical patent/CN112988465A/zh
Publication of CN112988465A publication Critical patent/CN112988465A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, 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中,判断升级失败的方法为:预设超时时间阈值,升级固件在接收数据时,出现无法接收数据的情况,若该情况超过该超时时间阈值,则判断为升级失败。
CN202110326508.0A 2021-03-26 2021-03-26 一种单片机升级失败自动恢复运行的方法 Pending CN112988465A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116501409A (zh) * 2023-04-27 2023-07-28 合芯科技(苏州)有限公司 一种基于双Flash的服务器启动方法、计算机设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
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升级的方法、装置、设备以及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
邓力;周新志;: "一种改良安全机制的嵌入式远程升级系统的研究", 电子测量技术, no. 08 *

Cited By (2)

* Cited by examiner, † Cited by third party
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