CN116501357A - 一种单片机的在线升级方法 - Google Patents

一种单片机的在线升级方法 Download PDF

Info

Publication number
CN116501357A
CN116501357A CN202310768890.XA CN202310768890A CN116501357A CN 116501357 A CN116501357 A CN 116501357A CN 202310768890 A CN202310768890 A CN 202310768890A CN 116501357 A CN116501357 A CN 116501357A
Authority
CN
China
Prior art keywords
storage area
code
singlechip
chip microcomputer
single chip
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
CN202310768890.XA
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.)
Guangdong Gausbao Electric Technology Co ltd
Original Assignee
Guangdong Gausbao Electric 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 Guangdong Gausbao Electric Technology Co ltd filed Critical Guangdong Gausbao Electric Technology Co ltd
Priority to CN202310768890.XA priority Critical patent/CN116501357A/zh
Publication of CN116501357A publication Critical patent/CN116501357A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种单片机的在线升级方法,包括以下步骤:单片机的闪存分为第一存储区和第二存储区,在非升级条件下默认的启动区为第一存储区;单片机在接收到上位机发送的升级命令后在第一存储区运行代码保证系统正常工作的同时接收升级包,将代码数据备份,更新第二存储区;第二存储区更新完成后,两个存储区的映射互换,单片机切换到第二存储区,将第二存储区的新版本的代码复制到第一存储区,代码复制完成后将映射互换回第一存储区运行代码。本发明在线升级传输数据包的过程中,单片机在第一存储区运行应用代码,无需停机;整个复制过程限于在单片机自身的闪存中进行,宕机时间短。

Description

一种单片机的在线升级方法
技术领域
本发明涉及单片机的固件升级技术,尤其涉及一种单片机的在线升级方法。
背景技术
单片机在线升级是指通过网络或其他通信方式在线更新单片机的固件。
随着电源产品逐渐向数字化发展,单片机在产品中的应用也越来越广泛,单片机在实现各种复杂功能的同时,由于使用环境的复杂性,软件逻辑考虑不周,不可避免地会产生漏洞,而为了解决一些小问题,厂家召回需要花费巨大的人力物力,而在线升级功能能让客户自行对售出的产品程序进行升级,所以自动升级功能是高端数字化电源产品的标配。
如图1所示,目前电源产品升级普遍带EEPROM备份,这种升级方法的EEPROM通过I2C总线与单片机连接,容易受I2C总线速率影响,还增加了电源成本。
传统闪存分区备份的在线升级方式如图2所示,通过将闪存分成升级区,应用程序区,备份区来进行升级,这种升级方式的缺点是在传输数据包的过程中无法运行应用代码,宕机时间长。
发明内容
本发明要解决的技术问题是提供一种宕机时间短的单片机的在线升级方法。
为了解决上述技术问题,本发明采用的技术方案是, 一种单片机的在线升级方法,包括以下步骤:
101)将单片机的闪存分为第一存储区和第二存储区,两个存储区都作为完整的闪存区提供代码给单片机内核运行,在非升级条件下默认的启动区为第一存储区;
102)单片机在接收到上位机发送的升级命令后在第一存储区运行代码保证系统正常工作的同时接收升级包,将代码数据备份,更新第二存储区;
103)第二存储区更新完成后,两个存储区的映射互换,单片机切换到第二存储区,将第二存储区的新版本的代码复制到第一存储区,代码复制完成后将映射互换回第一存储区运行代码。
以上所述的单片机的在线升级方法,包括以下步骤:在步骤103中,第二存储区更新完成后,对第二存储区的新版本的代码数据进行校验,校验成功后将默认启动运行区设为第二存储区,关闭系统,复位单片机,映射互换后进入第二存储区运行代码。
以上所述的单片机的在线升级方法,在步骤103中,单片机判断此时运行的代码属于第二存储区时,将第二存储区的新版本代码复制到第一存储区;复制完成后校验第一存储区的新版本代码,校验成功后将默认启动运行区重新设为第一存储区,并在初始化后映射互换进入第一存储区运行代码。
以上所述的单片机的在线升级方法,在第一存储区的代码初始化中,单片机判断此时运行的代码属于第一存储区还是第二存储区,如判定为第一存储区,单片机对所有外设进行初始化,如判定为第二存储区,则不进行初始化,直接开始代码复制。
以上所述的单片机的在线升级方法,电源异常断电或者正常下电后都从默认启动区启动。如果单片机在第一存储区运行过程中掉电,下一次上电时重新从第一存储区启动;如果在第二存储区运行过程中掉电,下一次上电时重新从第二存储区启动,重复步骤103。
本发明在线升级传输数据包的过程中,单片机在第一存储区运行应用代码,无需停机;复制过程是从第二存储区的闪存读取后写入第一存储区的闪存,整个复制过程限于单片机自身闪存进行,没有其他外设参与,加快了复制效率,减少了升级过程中的宕机时间。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是现有技术之一带EEPROM备份在线升级系统示意图。
图2是现有技术之二闪存分区备份在线升级系统示意图。
图3是本发明实施例双闪存备份在线升级系统示意图。
图4是本发明实施例单片机的在线升级方法的流程图。
图5是本发明实施例从第二存储区启动映射的示意图。
图6是本发明实施例从第一存储区启动映射的示意图。
图7是本发明实施例双闪存单片机在线升级方法的完整流程示意图。
具体实施方式
本发明实施例在线升级系统示意图如图3所示,将闪存分为第一存储区和第二存储区,且两个运行区都能单独作为完整的闪存区提供代码给单片机内核运行,非升级条件下默认启动区设置为第一存储区。双闪存模式下在第一存储区代码运行的过程中,单片机内核能不受干扰地向第二存储区擦除以及写入代码。
本发明实施例的开关电源使用带有双闪存功能单片机,并将闪存平均分为第一存储区和第二存储区两个部分,其中第一存储区设为默认启动运行区,单片机在接收到上位机发送的升级命令后在第一存储区运行代码保证电源输出的同时接收升级包并更新进第二存储区。当第二存储区更新完成后,单片机再切换到第二存储区,复制并校验第一存储区完成后,同时将第二存储区代码映射互换到第一存储区,代码复制完成后将映射互换回第一存储区运行电源程序。
启动映射示意图如图5与图6所示,从第一存储区启动时,第一存储区将会映射到0x08000000地址,内核将从第一存储区获取第一条指令,从第二存储区启动时,第二存储区将会映射到0x08000000地址,内核将从第二存储区获取第一条指令。
本发明实施例的单片机基于双闪存的备份在线升级方法如图7所示,单片机在接收到上位机发送的升级命令后在第一存储区运行功能性应用代码保证电源输出的同时进入升级模式,单片机接收上位机传来的升级包并在运行原代码保证电源的前提下将代码数据备份,更新第二存储区。当更新完成后,单片机对第二存储区的整个新版本代码数据进行校验,校验成功后将默认启动运行区设为第二存储区,关闭电源输出,并复位单片机,映射互换后进入第二存储区运行代码。
在第二存储区的代码中,单片机首先会判断此时运行的代码属于第一存储区还是第二存储区,此时为第二存储区,单片机将第二存储区的新版本代码复制到第一存储区,复制完成后校验第一存储区的新版本代码,校验成功后将会将默认启动运行区重新设为第一存储区,并初始化后映射互换进入第一存储区运行代码。
在第一存储区的代码初始化中,单片机同样首先会判断此时运行的代码属于第一存储区还是第二存储区,如判定此时运行的代码为第一存储区,单片机将会完成所有外设初始化,运行电源程序。
默认启动区设置后电源异常断电或者正常下电后都将从应用程序设置的默认启动区启动。如果单片机在第一存储区运行过程中掉电,下一次正常上电后将会重新从第一存储区启动,如果单片机在第二存储区运行过程中掉电,下一次正常上电后将会重新从第二存储区启动,重新进行复制,校验,校验成功后将复位单片机映射互换到第一存储区。
本发明以上实施例的单片机的在线升级方法具有以下有益效果:
1)在线升级传输数据包的过程中,单片机在第一存储区运行应用代码,无需停机;复制过程是从第二存储区的闪存读取后写入第一存储区的闪存,整个复制过程限于单片机自身闪存进行,没有其他外设参与,加快了复制效率,减少了升级过程中的宕机时间。
2)在避免使用EEPROM部件前提下,实现了在线备份升级和降本增效。

Claims (5)

1.一种单片机的在线升级方法,其特征在于,包括以下步骤:
101)将单片机的闪存分为第一存储区和第二存储区,两个存储区都作为完整的闪存区提供代码给单片机内核运行,在非升级条件下默认的启动区为第一存储区;
102)单片机在接收到上位机发送的升级命令后在第一存储区运行代码保证系统正常工作的同时接收升级包,将代码数据备份,更新第二存储区;
103)第二存储区更新完成后,两个存储区的映射互换,单片机切换到第二存储区,将第二存储区的新版本的代码复制到第一存储区,代码复制完成后将映射互换回第一存储区运行代码。
2.根据权利要求1所述的单片机的在线升级方法,其特征在于,包括以下步骤:在步骤103中,第二存储区更新完成后,对第二存储区的新版本的代码数据进行校验,校验成功后将默认启动运行区设为第二存储区,关闭系统,复位单片机,映射互换后进入第二存储区运行代码。
3.根据权利要求1所述的单片机的在线升级方法,其特征在于,在步骤103中,单片机判断此时运行的代码属于第二存储区时,将第二存储区的新版本代码复制到第一存储区;复制完成后校验第一存储区的新版本代码,校验成功后将默认启动运行区重新设为第一存储区,并在初始化后映射互换进入第一存储区运行代码。
4.根据权利要求3所述的单片机的在线升级方法,其特征在于,在第一存储区的代码初始化中,单片机判断此时运行的代码属于第一存储区还是第二存储区,如判定为第一存储区,单片机对所有外设进行初始化,如判定为第二存储区,则不进行初始化,直接开始代码复制。
5.根据权利要求1所述的单片机的在线升级方法,其特征在于,电源异常断电或者正常下电后都从默认启动区启动,如果单片机在第一存储区运行过程中掉电,下一次上电时重新从第一存储区启动;如果在第二存储区运行过程中掉电,下一次上电时重新从第二存储区启动,重复步骤103。
CN202310768890.XA 2023-06-28 2023-06-28 一种单片机的在线升级方法 Pending CN116501357A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310768890.XA CN116501357A (zh) 2023-06-28 2023-06-28 一种单片机的在线升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310768890.XA CN116501357A (zh) 2023-06-28 2023-06-28 一种单片机的在线升级方法

Publications (1)

Publication Number Publication Date
CN116501357A true CN116501357A (zh) 2023-07-28

Family

ID=87328784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310768890.XA Pending CN116501357A (zh) 2023-06-28 2023-06-28 一种单片机的在线升级方法

Country Status (1)

Country Link
CN (1) CN116501357A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573175A (zh) * 2024-01-16 2024-02-20 广东高斯宝电气技术有限公司 不复位控制芯片的固件实时更新方法、系统及存储介质
CN117573175B (zh) * 2024-01-16 2024-06-21 广东高斯宝电气技术有限公司 不复位控制芯片的固件实时更新方法、系统及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970556A (zh) * 2013-02-01 2014-08-06 京信通信系统(中国)有限公司 射频拉远设备中功放软件更新方法和系统
CN104572229A (zh) * 2015-02-12 2015-04-29 西安诺瓦电子科技有限公司 嵌入式系统的固件升级方法以及固件升级装置
CN105808292A (zh) * 2016-03-07 2016-07-27 西安诺瓦电子科技有限公司 嵌入式终端设备的固件升级方法
CN110851061A (zh) * 2019-10-08 2020-02-28 西安图唯谷创新科技有限公司 一种指环式鼠标控制终端的方法
US20200193027A1 (en) * 2018-12-18 2020-06-18 Ubtech Robotics Corp Ltd Firmware upgrade method, slave station of robot, and machine readable storage medium
CN112650518A (zh) * 2019-10-10 2021-04-13 国创新能源汽车能源与信息创新中心(江苏)有限公司 Dsp程序在线升级方法
CN113849215A (zh) * 2021-12-01 2021-12-28 武汉天喻信息产业股份有限公司 一种无线固件升级方法及装置
CN114995852A (zh) * 2022-05-31 2022-09-02 深圳市美科星通信技术有限公司 一种设备升级方法、设备及计算机可读存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103970556A (zh) * 2013-02-01 2014-08-06 京信通信系统(中国)有限公司 射频拉远设备中功放软件更新方法和系统
CN104572229A (zh) * 2015-02-12 2015-04-29 西安诺瓦电子科技有限公司 嵌入式系统的固件升级方法以及固件升级装置
CN105808292A (zh) * 2016-03-07 2016-07-27 西安诺瓦电子科技有限公司 嵌入式终端设备的固件升级方法
US20200193027A1 (en) * 2018-12-18 2020-06-18 Ubtech Robotics Corp Ltd Firmware upgrade method, slave station of robot, and machine readable storage medium
CN110851061A (zh) * 2019-10-08 2020-02-28 西安图唯谷创新科技有限公司 一种指环式鼠标控制终端的方法
CN112650518A (zh) * 2019-10-10 2021-04-13 国创新能源汽车能源与信息创新中心(江苏)有限公司 Dsp程序在线升级方法
CN113849215A (zh) * 2021-12-01 2021-12-28 武汉天喻信息产业股份有限公司 一种无线固件升级方法及装置
CN114995852A (zh) * 2022-05-31 2022-09-02 深圳市美科星通信技术有限公司 一种设备升级方法、设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117573175A (zh) * 2024-01-16 2024-02-20 广东高斯宝电气技术有限公司 不复位控制芯片的固件实时更新方法、系统及存储介质
CN117573175B (zh) * 2024-01-16 2024-06-21 广东高斯宝电气技术有限公司 不复位控制芯片的固件实时更新方法、系统及存储介质

Similar Documents

Publication Publication Date Title
CN105912356B (zh) 一种支持版本回退的光模块固件程序在线升级方法
US7664923B2 (en) Method and system for updating software
US9245634B2 (en) Initialization of flash storage via an embedded controller
US7698698B2 (en) Method for over-the-air firmware update of NAND flash memory based mobile devices
WO2021115477A1 (zh) 程序升级方法、装置、电子设备及存储介质
US20020078338A1 (en) Method and apparatus for fast computer initialization
US20100325622A1 (en) Updating Firmware of an Electronic Device
CN105808292A (zh) 嵌入式终端设备的固件升级方法
CN113377408B (zh) 一种高可靠sram型fpga在线升级方法及系统
CN112947977B (zh) 一种软件在线升级方法及系统
CN108509215B (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
CN101593120A (zh) 带外升级方法和系统
CN112231005B (zh) 一种基于uboot管理fpga版本的方法
CN108319520A (zh) 基于安全存储的移动设备备用操作系统
CN113672270A (zh) 升级方法,计算机系统和远端升级设备
CN101620542A (zh) 一种超声成像设备软件数据的兼容更新方法
CN113778739B (zh) 一种一体机的系统修复方法、系统、设备及存储介质
CN108874422B (zh) 一种冰箱电控板的软件在线升级方法、冰箱电控板和冰箱
CN116521209B (zh) 操作系统的升级方法及装置、存储介质及电子设备
CN116501357A (zh) 一种单片机的在线升级方法
WO2022199622A1 (zh) 一种电子设备的启动程序的运行方法和电子设备
CN113835631B (zh) 残留平台配置数据删除方法、系统、终端及存储介质
JPH1027097A (ja) フラッシュromのデータ書換え方法および装置
CN201804319U (zh) 嵌入式烧录晶片系统
JP2001147863A (ja) フラッシュメモリ書き替え装置

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