[go: up one dir, main page]

CN110377303B - 基于备用存储区方式升级程序的方法及其设备 - Google Patents

基于备用存储区方式升级程序的方法及其设备 Download PDF

Info

Publication number
CN110377303B
CN110377303B CN201910618853.4A CN201910618853A CN110377303B CN 110377303 B CN110377303 B CN 110377303B CN 201910618853 A CN201910618853 A CN 201910618853A CN 110377303 B CN110377303 B CN 110377303B
Authority
CN
China
Prior art keywords
program
module
flash chip
external flash
app0
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.)
Active
Application number
CN201910618853.4A
Other languages
English (en)
Other versions
CN110377303A (zh
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.)
Hangzhou Zhouju Electronic Technological Co ltd
Original Assignee
Hangzhou Zhouju Electronic Technological 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 Hangzhou Zhouju Electronic Technological Co ltd filed Critical Hangzhou Zhouju Electronic Technological Co ltd
Priority to CN201910618853.4A priority Critical patent/CN110377303B/zh
Publication of CN110377303A publication Critical patent/CN110377303A/zh
Application granted granted Critical
Publication of CN110377303B publication Critical patent/CN110377303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

一种基于备用存储区方式升级程序的方法及其设备,所述上位机与微控制单元通信连接,所述外置Flash芯片与微控制单元通信连接;所述微控制单元中设置有Flash区域,所述Flash区域存储有APP0模块程序和APP1模块程序;所述外置Flash芯片包括第一部分、第二部分和第三部分;所述APP0模块或APP1模块程序包含预检模式、下载模式和工作模式。本发明设计了一个外置Flash模块,使得上位机在微控制单元在工作时可将程序烧录至外置Flash芯片中,实现了程序实时更新且不影响应用程序正常运行的需求,而且不需要在微控制单元中设置Bootloader部分。

Description

基于备用存储区方式升级程序的方法及其设备
技术领域
本发明涉及移动通信技术领域,特别涉及一种基于备用存储区方式升级程序的方法及其设备。
背景技术
随着微电子技术的不断发展,单片机程序的烧写从最初使用专用的烧写器烧写到现在支持JTAG(联合测试行为组织)调试器烧写,但都有诸多不便,特别是对于成熟产品的软件升级。然而,产品不可能都带一个JTAG调试器。后来发展出现了BootLoader的概念,可以用BootLoader进行程序更新。
例如专利名称为“使用 Bootloader程序的应用程序更新方法”(申请号:201110241122.6、申请日:2011.08.22)中公开了一种使用Bootloader程序的应用程序更新方法, 所述应用程序更新方法包括:当程序存储模块插入电子标签时产生中断触发信号;中断触发信号触发Bootloader程序读取程序存储模块中的应用程序;Bootloader程序将读取的应用程序存储在电子标签的存储器中。
又如专利名称为“”()中公开了一种本发明实施例提出一种Bootloader程序模块更新方法及装置,涉及嵌入式系统技术领域。该方法包括:在确定两个Bootloader程序模块中的第一Bootloader程序模块能够成功引导网络设备启动后,基于第一Bootloader程序模块对两个Bootloader程序模块中的第二Bootloader程序模块进行更新,保证了第一Bootloader程序模块和更新后的第二Bootloader程序模块都能成功引导网络设备启动;无需人为关注两个Bootloader程序模块的差异,自动实现更新,确保两个Bootloader程序模块的版本一致性或差异不会过大,通用性好,可靠性高。
但是上述方案通过bootloader更新程序,需要先从程序运行状态跳转到bootloader中然后开始和上位机通讯烧录程序,无法做到在MCU工作的同时进行程序的更新。
发明内容
为了解决上述问题,本发明提供一种基于备用存储区方式升级程序的方法及其设备,能够在微控制单元工作的同时进行程序的更新,且无需设置Bootloader模块。
本发明的技术方案如下:
一种基于备用存储区方式升级程序的方法,包括以下步骤:
S1:芯片上电后自动运行APP0模块预检程序;
S2:微控制单元读取外置Flash芯片的第三部分,判断Flash区域中所需要执行的模块;
S3:所述微控制单元在S2中确定执行的模块后,开始执行APP0或者APP1模块,读取外置Flash芯片的第二部分,此时外置Flash芯片中的程序未更新,APP0模块或APP1模块直接进入工作模式;
S4:当程序有新的版本时,上位机将程序更新至外置Flash芯片中,更新完成后上位机将外置Flash模块第二部分置为程序已更新;
S5:所述微控制单元读取外置Flash芯片的第二部分,此时外置Flash芯片中的程序已更新,APP0模块或APP1模块检测到程序后进入下载模式,将外置Flash芯片中程序更新至APP0或者APP1中,如果目前处于APP0模块程序运行则更新至APP1中,反之则相反;
S6:下载完成后,将外置Flash芯片的第二部分标志置为无程序更新状态,直接将第三部分标志位更改为另一模块,并跳转至另一模块,完成微控制单元程序更新过程。
本方案将Bootloader功能集成到微控制单元的Flsah区域中,不存在Bootloader区域向APP模块跳转这一过程。芯片默认上电就会执行APP0模块,因为APP0模块处于芯片起始地址位置芯片上电时就会先执行,APP0模块中将代码功能分为Bootloader模式和工作模式。默认先进入Bootloader模式此时如何进行下步取决于读取外置Flash芯片第三部分的标志位,根据外置Flash芯片第三部分的标志位来确定执行哪一个APP模块,此时微控制单元会根据外置Flash芯片的第二部分的读取结果来确定是否进入工作模式。
上位机更新的程序将会先进入到外置Flash芯片的第一部分中,微控制单元根据外置Flash芯片第三部分的标志位来确定执行哪一个APP模块,并将外置Flash芯片的第一部分中的程序烧录至另一个APP模块中。
优选的,所述步骤S2中判断所需要执行的模块的具体步骤为:若读取到的Flash芯片的第三部分为APP0标志位,则无需跳转,直接运行APP0模块预检程序;若读取到的Flash芯片的第三部分为APP1标志位,则跳转至APP1模块并运行APP1模块预检程序。
优选的,所述步骤S4中上位机将程序更新至外置Flash芯片的具体步骤如下:上位机发出程序更新的请求,微控制单元接收并同意请求后,开始更新程序至外置Flash芯片的第一部分中,程序更新完毕后,将外置Flash芯片的第二部分的标志位更改为有程序待更新。
优选的,所述步骤S5中的下载模式的具体步骤为:若S2步骤中读取结果指示APP0模块为所需执行程序,则步骤S5中为APP0模块进入下载模式,此时将外置Flash芯片的第一部分中存储的代码更新至APP1模块中;若S2步骤中读取结果指示APP1模块为所需执行程序,则步骤S5中为APP1模块进入下载模式,将外置Flash芯片的第一部分中存储的代码更新至APP0模块中。
优选的,在进行上位机更新程序至外置Flash芯片的过程中,微控制单元仍可进入或保持工作模式。
优选的,当所述步骤S5如果出现程序更新失败或者更新出错的情况时,则更新程序的过程终止,所述外置Flash芯片的第二部分和第三部分标志都不会被更新。
一种基于备用存储区方式升级程序的设备,其特征在于,包括上位机、微控制单元和外置Flash芯片;所述上位机与微控制单元通信连接,所述外置Flash芯片与微控制单元通信连接;所述微控制单元中设置有Flash区域,所述Flash区域存储有APP0模块程序和APP1模块程序;所述外置Flash芯片包括第一部分、第二部分和第三部分,所述APP0模块或APP1模块程序包含预检模式、下载模式和工作模式。
其中预检模式仅读取外置Flash芯片标志位决定下一步执行下载模式、工作模式还是跳转到另一个模块;工作模式为运行APP0或APP1中现在存储的程序;下载模式为当程序可更新时,APP模块下载更新相应程序的过程。
外置Flash芯片作用就是按照指定地址存储数据。一般flash对外接口用spi或者uart芯片和flash进行通信,指定地址时就会读回指定地址的数据,从而知道之前所设置的标志位是什么。
芯片都有特定的程序跳转指令,指定要跳转的程序入口地址就可以将芯片的运行程序跳转到新的一段程序,从而执行新的一段程序。APP0就是程序版本1,APP1模块可以是程序版本2,当判断出APP1模块程序更新时直接从APP0跳转过去即可,实现执行新版本程序的目的。
更优选的,所述第一部分为备用程序储存区,所述第二部分为程序待更新标志位,所述第三部分为跳转标志位。
本发明的有益效果为:本发明设置了一个外置的Flash,使得上位机在微控制单元在工作时可将程序烧录至外置Flash芯片中,实现了程序实时更新且不影响应用程序正常运行的需求;本发明不需要在微控制单元中设置bootloader部分,减少了运行成本;且本发明所需成本不高,操作简便,使用广泛。
附图说明
图1为本发明中各设备的连接示意图。
图2为本发明中程序更新方法的流程图。
图3为上位机更新程序至外置Flash芯片的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
本发明提供一种基于备用存储区方式升级程序的设备,如图1所示,包括上位机、微控制单元和外置Flash芯片;上位机通过SPI或UART和微控制单元通信连接,外置Flash芯片通过SPI或UART和微控制单元通信连接;微控制单元中设有Flash区域,A所述Flash区域存储有APP0模块程序和APP1模块程序;外置Flash芯片包括第一部分、第二部分和第三部分。
其中,外置Flash芯片的第一部分为备用程序储存区,第二部分为程序待更新标志位,第三部分为跳转标志位。
本发明还提供一种基于备用存储区方式升级程序的方法,如图2所示,包括以下步骤:
S1:芯片上电后自动运行APP0模块预检程序;
S2:微控制单元读取外置Flash芯片的第三部分,判断Flash区域中所需要执行的模块;若读取到的Flash芯片的第三部分为APP0标志位,则无需跳转,直接运行APP0模块预检程序;若读取到的Flash芯片的第三部分为APP1标志位,则跳转至APP1模块并运行APP1模块预检程序;
S3:所述微控制单元读取外置Flash芯片的第二部分,此时外置Flash芯片中的程序未更新,APP0模块或APP1模块直接进入工作模式;
S4:如图3所示,当程序有新的版本时,上位机发出程序更新的请求,微控制单元接收并同意请求后,开始更新程序至外置Flash芯片中,程序更新完毕后,将外置Flash芯片的第二部分的标志位更改为有程序待更新;
S5:所述微控制单元读取外置Flash芯片的第二部分,此时外置Flash芯片中的程序已更新,若S2步骤中读取结果指示APP0模块为所需执行程序,则步骤S5中为APP0模块进入下载模式,此时将外置Flash芯片的第一部分中存储的代码更新至APP1模块中;若S2步骤中读取结果指示APP1模块为所需执行程序,则步骤S5中为APP1模块进入下载模式,将外置Flash芯片的第一部分中存储的代码更新至APP0模块中;
S6:下载完成后,将外置Flash芯片的第二部分标志置为无程序更新状态,根据步骤S2中读取的结果,将第三部分标志位更改为另一模块,并跳转至另一模块,完成微控制单元程序更新过程。
MCU输入不同程序可以执行不同功能,例如控制灯闪烁等,而Bootloader模式仅仅是用于更新程序功能,功能单一。本方案优势在于当芯片执行正常工作模式时用户要更新程序,则芯片可以继续执行控制灯闪烁的程序,同时和PC机通讯将新程序写入外置Flash芯片中,这个过程不会对正在执行程序的APP模块做覆盖操作,因为正在控制器等闪烁,不会去打断此时的工作模式。当PC将新程序更新好后将外置Flash芯片第二部分标志改为有程序更新,将第三部分标志改为APP1(因为此时执行程序的是APP0),当下次芯片上电或者某些条件符合(不需要指定,看实际需要)时APP0程序读取外置Flash芯片的第二、三部分标志就可以知道自己是要跳转还是更新程序,还是保持此时的工作模式不变了。
如果出现程序更新过程失败,例如断电了,或者更新出错时外置Flash芯片第二三部分标志都不会被更新,芯片不会进入任何失效模式,保证程序更新的安全。

Claims (8)

1.一种基于备用存储区方式升级程序的方法,其特征在于,包括以下步骤:
S1:芯片上电后自动运行APP0模块预检程序;
S2:微控制单元读取外置Flash芯片的第三部分,判断Flash区域中所需要执行的模块;
S3:所述微控制单元在S2中确定执行的模块后,开始执行APP0或者APP1模块,读取外置Flash芯片的第二部分,此时外置Flash芯片中的程序未更新,APP0模块或APP1模块直接进入工作模式;
S4:当程序有新的版本时,上位机将程序更新至外置Flash芯片中,更新完成后上位机将外置Flash模块第二部分置为程序已更新;
S5:所述微控制单元读取外置Flash芯片的第二部分,此时外置Flash芯片中的程序已更新,APP0模块或APP1模块检测到程序后进入下载模式,将外置Flash芯片中程序更新至APP0或者APP1中,如果目前处于APP0模块程序运行则更新至APP1中,反之则相反;
S6:下载完成后,将外置Flash芯片的第二部分标志置为无程序更新状态,直接将第三部分标志位更改为另一模块,并跳转至另一模块,完成微控制单元程序更新过程。
2.根据权利要求1中所述的基于备用存储区方式升级程序的方法,其特征在于,所述步骤S2中判断所需要执行的模块的具体步骤为:若读取到的Flash芯片的第三部分为APP0标志位,则无需跳转,直接运行APP0模块预检程序;若读取到的Flash芯片的第三部分为APP1标志位,则跳转至APP1模块并运行APP1模块预检程序。
3.根据权利要求1中所述的基于备用存储区方式升级程序的方法,其特征在于,所述步骤S4中上位机将程序更新至外置Flash芯片的具体步骤如下:上位机发出程序更新的请求,微控制单元接收并同意请求后,开始更新程序至外置Flash芯片的第一部分中,程序更新完毕后,将外置Flash芯片的第二部分的标志位更改为有程序待更新。
4.根据权利要求1中所述的基于备用存储区方式升级程序的方法,其特征在于,所述步骤S5中的下载模式的具体步骤为:若S2步骤中读取结果指示APP0模块为所需执行程序,则步骤S5中为APP0模块进入下载模式,此时将外置Flash芯片的第一部分中存储的代码更新至APP1模块中;若S2步骤中读取结果指示APP1模块为所需执行程序,则步骤S5中为APP1模块进入下载模式,将外置Flash芯片的第一部分中存储的代码更新至APP0模块中。
5.根据权利要求3中所述的基于备用存储区方式升级程序的方法,其特征在于,在进行上位机更新程序至外置Flash芯片的过程中,微控制单元仍可进入或保持工作模式。
6.根据权利要求1中所述的基于备用存储区方式升级程序的方法,其特征在于,当所述步骤S5如果出现程序更新失败或者更新出错的情况时,则更新程序的过程终止,所述外置Flash芯片的第二部分和第三部分标志都不会被更新。
7.一种基于备用存储区方式升级程序的设备,其特征在于,包括上位机、微控制单元和外置Flash芯片;所述上位机与微控制单元通信连接,所述外置Flash芯片与微控制单元通信连接;所述微控制单元中设置有Flash区域,所述Flash区域存储有APP0模块程序和APP1模块程序;所述外置Flash芯片包括第一部分、第二部分和第三部分,所述APP0模块或APP1模块程序包含预检模式、下载模式和工作模式。
8.根据权利要求7中所述的基于备用存储区方式升级程序的设备,其特征在于,所述第一部分为备用程序储存区,所述第二部分为程序待更新标志位,所述第三部分为跳转标志位。
CN201910618853.4A 2019-07-10 2019-07-10 基于备用存储区方式升级程序的方法及其设备 Active CN110377303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910618853.4A CN110377303B (zh) 2019-07-10 2019-07-10 基于备用存储区方式升级程序的方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910618853.4A CN110377303B (zh) 2019-07-10 2019-07-10 基于备用存储区方式升级程序的方法及其设备

Publications (2)

Publication Number Publication Date
CN110377303A CN110377303A (zh) 2019-10-25
CN110377303B true CN110377303B (zh) 2022-11-04

Family

ID=68252618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910618853.4A Active CN110377303B (zh) 2019-07-10 2019-07-10 基于备用存储区方式升级程序的方法及其设备

Country Status (1)

Country Link
CN (1) CN110377303B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475194A (zh) * 2020-03-20 2020-07-31 创驱(上海)新能源科技有限公司 一种用于新能源汽车控制器的软件升级方法
CN113778055B (zh) * 2021-09-13 2023-05-16 宁波均联智行科技股份有限公司 一种tbox的检测方法及检测系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851645A (zh) * 2006-01-17 2006-10-25 华为技术有限公司 一种单片机系统在运行中升级的装置和方法
CN105354061A (zh) * 2015-11-05 2016-02-24 邦彦技术股份有限公司 一种保护mcu工作程序的方法及系统
CN109144532A (zh) * 2017-06-13 2019-01-04 中兴通讯股份有限公司 升级方法及装置
CN109614126A (zh) * 2018-10-23 2019-04-12 北京全路通信信号研究设计院集团有限公司 一种嵌入式系统在线程序升级方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539471B2 (en) * 2007-12-13 2013-09-17 Telefonaktiebolaget L M Ericsson (Publ) Updating firmware of an electronic device
CN102855151B (zh) * 2012-08-21 2016-06-08 武汉电信器件有限公司 不打断业务的光模块固件在应用升级方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851645A (zh) * 2006-01-17 2006-10-25 华为技术有限公司 一种单片机系统在运行中升级的装置和方法
CN105354061A (zh) * 2015-11-05 2016-02-24 邦彦技术股份有限公司 一种保护mcu工作程序的方法及系统
CN109144532A (zh) * 2017-06-13 2019-01-04 中兴通讯股份有限公司 升级方法及装置
CN109614126A (zh) * 2018-10-23 2019-04-12 北京全路通信信号研究设计院集团有限公司 一种嵌入式系统在线程序升级方法及装置

Also Published As

Publication number Publication date
CN110377303A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN109358887B (zh) 一种单片机程序的在线升级方法、装置及系统
CN102486733B (zh) 引导程序的升级方法和装置
EP3879399B1 (en) Method and apparatus for upgrading vehicle-mounted tbox, device, and storage medium
CN110633091A (zh) 一种电子模块及其软件无线升级方法
CN112181455B (zh) 微控制器的在线升级方法、微控制器及存储介质
CN110187909B (zh) 一种基于安卓系统的单片机固件升级方法
CN110377303B (zh) 基于备用存储区方式升级程序的方法及其设备
CN107315607B (zh) 一种驱动自适应加载系统
CN108345464A (zh) 一种安卓系统的启动方法及安卓车机
US7359772B2 (en) Method, system, and storage medium for communicating with vehicle control
CN100362470C (zh) 一种bios在线升级装置及方法
CN114968299A (zh) 基于Multiboot设备固件升级及异常处理方法
CN112540780A (zh) 一种编队无人机批量固件升级实现系统、方法
CN111459526A (zh) 一种基于can通讯的单片机在线升级方法
CN114090045A (zh) 一种应用于多单片机控制系统的固件升级方法及相关设备
CN105677416A (zh) 一种Uboot的升级控制系统及方法
CN115599417A (zh) 电子设备的mcu固件更新方法
CN102270148A (zh) 一种液晶显示屏驱动板的升级方法
CN211427090U (zh) 微控制单元设备
CN109445831B (zh) 焊机系统升级方法与焊机
CN118093258B (zh) 一种提高舵机软件在线上传功能容错性能的方法
JP3822210B2 (ja) 遠隔保守システム
CN104750501A (zh) 用于单片机的在线升级方法及系统
CN117632162A (zh) 一种软件升级系统及方法
CN111258604A (zh) Bootloader升级系统和方法

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
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20191025

Assignee: Hangzhou Jintou Finance Leasing Co.,Ltd.

Assignor: HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL Co.,Ltd.

Contract record no.: X2022980028697

Denomination of invention: Method and equipment for upgrading program based on standby storage area

Granted publication date: 20221104

License type: Exclusive License

Record date: 20230112

EE01 Entry into force of recordation of patent licensing contract
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and equipment for upgrading program based on standby storage area

Effective date of registration: 20230115

Granted publication date: 20221104

Pledgee: Hangzhou Jintou Finance Leasing Co.,Ltd.

Pledgor: HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL Co.,Ltd.

Registration number: Y2023980031393

EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: Hangzhou Jintou Finance Leasing Co.,Ltd.

Assignor: HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL Co.,Ltd.

Contract record no.: X2022980028697

Date of cancellation: 20240327

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20221104

Pledgee: Hangzhou Jintou Finance Leasing Co.,Ltd.

Pledgor: HANGZHOU ZHOUJU ELECTRONIC TECHNOLOGICAL Co.,Ltd.

Registration number: Y2023980031393