CN114398087B - 一种提高单片机更新程序后运行稳定性的方法及单片机 - Google Patents

一种提高单片机更新程序后运行稳定性的方法及单片机 Download PDF

Info

Publication number
CN114398087B
CN114398087B CN202111561810.0A CN202111561810A CN114398087B CN 114398087 B CN114398087 B CN 114398087B CN 202111561810 A CN202111561810 A CN 202111561810A CN 114398087 B CN114398087 B CN 114398087B
Authority
CN
China
Prior art keywords
program
area
running
boot
main 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.)
Active
Application number
CN202111561810.0A
Other languages
English (en)
Other versions
CN114398087A (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.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
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 Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN202111561810.0A priority Critical patent/CN114398087B/zh
Publication of CN114398087A publication Critical patent/CN114398087A/zh
Application granted granted Critical
Publication of CN114398087B publication Critical patent/CN114398087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种提高单片机更新程序后运行稳定性的方法及单片机,本发明提供的方法中,一级Boot区域中的程序只用于跳转至第一Boot启动区域或第二Boot启动区域,两个Boot启动区域互为备份,由于一级Boot区域中只实现程序跳转,只需要保证开发一个短小精悍不容易出错的程序来实现跳转,其中一个Boot启动区域产生故障,都可以通过另外一个Boot启动区域进行主程序启动,并且,程序运行区也设置了备份区,如果程序运行区运行的程序的错误记录多于备份区的运行错误记录,则切换至备份区的主程序运行,可以实现若版本的迭代更新令错误数不减反增,退回至备份区的主程序版本运行,保证了程序更新后单片机的运行稳定性。

Description

一种提高单片机更新程序后运行稳定性的方法及单片机
技术领域
本发明涉及单片机技术领域,特别涉及一种提高单片机更新程序后运行稳定性的方法及单片机。
背景技术
显示中MCU(单片机)会在一些恶劣的场景中使用,例如海底试验、地址勘探及车载运行等,某些单片机的运行环境不仅要求系统能够连续稳定运行,而且系统极有可能因为碰撞或遭到极大导致数据部分丢失,为了防止电路板进水或减轻碰撞对其造成的损害,电路板均封装地很严实。在现有技术中,可以通过通信技术对单片机的系统程序进行在线更新,若更新后的程序可以稳定运行,则可以避免拆机,但单片机的运行系统经常会有新的需求出现,频繁的更新难免会因为操作人员的失误或其他随机错误等原因导致系统升级后不能稳定地运行,无法正常启动,如果系统启动异常,导致系统需要长时间停机或者需要拆机更新系统,不仅会浪费人力物力以及时间成本,还既有可能丢失重要的数据。
因此,现有技术还有待改进和提高。
发明内容
针对现有技术的上述缺陷,本发明提供一种提高单片机更新程序后运行稳定性的方法及单片机,旨在解决现有技术中单片机系统升级后不能稳定运行的问题。
为了解决上述技术问题,本发明所采用的技术方案如下:
本发明的第一方面,提供一种提高单片机更新程序后运行稳定性的方法,所述方法包括:
运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位;
当所述标志位区的程序更新标志位为第一更新标志时,通过所述目标Boot启动区域中的程序与上位机进行通信,将主程序更新文件写入至程序运行区,根据所述主程序更新文件中的运行区地址跳转至所述程序运行区中的主程序,并修改所述标志位区的运行状态标志位为第一运行标志;
在所述程序运行区的主程序初始化后,启动硬件设备检测任务,若硬件设备检测成功,则修改所述运行状态标志位为第二运行标志,若硬件检测失败,则修改所述运行状态标志位为第三运行标志;
在主程序正常运行后,通过主程序访问运行错误记录数据,若所述程序运行区的主程序的运行错误记录少于备份区的主程序的运行错误记录,则将所述程序运行区的主程序复制到所述备份区,若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,则切换至所述备份区的主程序运行。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,包括:
运行一级Boot区域内的程序跳转至所述第一Boot启动区域中的程序;
若所述第一Boot启动区域中的程序正常运行,则所述第一Boot启动区域为所述目标Boot启动区域;
若所述第一Boot启动区域中的程序不能正常运行,则确定所述第二Boot启动区域为所述目标Boot启动区域。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述方法还包括:
若所述第一Boot启动区域中的程序不能正常启动,则在所述程序运行区的主程序正常运行后,通过所述程序运行区的主程序检查所述第一Boot启动区域的故障并上报所述上位机;
当所述上位机在线时,通过所述程序运行区的主程序从所述上位机处接收启动程序更新文件更新所述第一Boot启动区域的程序;
当所述上位机不在线时,通过所述程序运行区的主程序将所述第二Boot启动区域中的程序复制到所述第一Boot启动区域。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述跳转至所述程序运行区中的主程序运行之前,所述方法还包括:
根据所述程序运行区的主程序文件计算第一校验码;
将所述第一校验码与所述程序运行区的主程序文件中的第二校验码进行匹配;
当所述第一校验码和所述第二校验码一致时,跳转至所述程序运行区中的主程序运行。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述通过所述目标Boot启动区域中的程序读取标志位区的程序更新标志位之后,所述方法还包括:
当所述程序更新标志位为第二更新标志时,通过所述目标Boot启动区域中的程序读取所述程序运行区的内容,根据所述程序运行区中的运行地址跳转至所述程序运行区中的主程序运行。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述通过所述目标Boot启动区域中的程序与上位机进行通信之前,包括:
接收所述上位机发送的更新程序命令,根据所述更新程序命令将所述程序更新标志位设置为所述第一更新标志后复位。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述将主程序更新文件写入至程序运行区之后,所述方法还包括:
将所述标志位区的备份区标志设置为第一备份标志;
所述将所述程序运行区的主程序复制到所述备份区之后,所述方法还包括:
将所述备份区标志修改为第二备份标志;
所述切换至所述备份区的主程序运行之后,所述方法还包括:
将所述备份区标志修改为所述第二备份标志。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述修改所述标志位区的运行状态标志位为第三运行标志后,所述方法还包括:
复位后执行所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位的步骤;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第一备份标志时,发送第一失败信息给所述上位机,以使得所述上位机重新发送更新程序命令;
当所述运行状态标志位为所述第三运行标志,所述备份区标志为所述第一备份标志时,发送第二失败信息给所述上位机,并通过所述目标Boot启动区域中的程序重新设置所述运行区地址;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第二备份标志时,发送第三失败信息给所述上位机,并通过所述目标Boot启动区域中的程序对所述备份区进行硬件检测,在所述备份区存在硬件故障时,为所述备份区重新分配flash区域。
所述的提高单片机更新程序后运行稳定性的方法,其中,所述主程序更新文件中包括硬件测试对照表,所述启动硬件设备检测任务包括:
根据所述硬件测试对照表中的对照关系将驱动模块API接口和外围硬件设备一一对应。
所述的提高单片机更新程序后运行稳定性的方法,其中,在所述程序运行区的主程序正常运行或切换至所述备份区的主程序运行之后,所述方法还包括:
通过主程序记录程序运行过程中的错误至所述运行错误记录数据中;
通过主程序根据所述运行错误记录数据更新优化配置表,根据执行更新后的所述优化配置表后的所述运行错误记录数据确定是否保留对所述优化配置表的更新。
本发明的第二方面,提供一种单片机,包括:
一级启动模块,所述一级启动模块用于运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域;
目标启动模块,所述目标启动模块用于通过所述目标Boot启动区域中的程序读取标志位区的标志位,并在所述标志位区的程序更新标志位为第一更新标志时,通过所述目标Boot启动区域中的程序与上位机进行通信,将主程序更新文件写入至程序运行区,根据所述主程序更新文件中的运行区地址跳转至所述程序运行区中的主程序,并修改所述标志位区的运行状态标志位为第一运行标志;
主程序运行模块,所述主程序运行模块用于在所述程序运行区的主程序初始化后,启动硬件设备检测任务,若硬件设备检测成功,则修改所述运行状态标志位为第二运行标志,若硬件检测失败,则修改所述运行状态标志位为第三运行标志;
所述主程序运行模块还用于在主程序正常运行后,通过主程序访问运行错误记录数据,若所述程序运行区的主程序的运行错误记录少于备份区的主程序的运行错误记录,则将所述程序运行区的主程序复制到所述备份区,若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,则切换至所述备份区的主程序运行。
本发明的第三方面,提供一种提高单片机更新程序后运行稳定性的系统,所述系统包括处理器、与处理器通信连接的计算机可读存储介质,所述计算机可读存储介质适于存储多条指令,所述处理器适于调用所述计算机可读存储介质中的指令,以执行实现上述任一项所述的提高单片机更新程序后运行稳定性的方法的步骤。
本发明的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一项所述的提高单片机更新程序后运行稳定性的方法的步骤。
与现有技术相比,本发明提供了一种提高单片机更新程序后运行稳定性的方法及单片机,本发明提供的提高单片机更新程序后的运行稳定性的方法中,设置有一级Boot区域、第一Boot启动区域和第二Boot启动区域,一级Boot区域中的程序只用于跳转至第一Boot启动区域或第二Boot启动区域,第一Boot启动区域和第二Boot启动区域互为备份,二者中的程序均可以实现系统启动,进行主程序更新,并跳转至程序运行区运行主程序,由于一级Boot区域中只实现程序跳转,开发前期只需要保证开发一个非常短小精悍不容易出错的程序来实现跳转,第一Boot启动区域或第二Boot启动区域产生故障,都可以通过另外一个Boot启动区域进行主程序启动,提升单片机系统运行稳定性,并且,本发明中程序运行区也设置了备份区,在运行过程中记录当前运行的程序版本的运行错误记录,如果程序运行区运行的程序的错误记录少于备份区的运行错误记录,将程序运行区的主程序复制到备份区,如果多于备份区的运行错误记录,则切换至备份区的主程序运行,这样可以清晰地比较当前运行版本与历史版本的运行情况,若版本的迭代更新令错误数不减反增,退回至备份区的主程序版本运行,进一步保证了进行了程序更新后单片机的运行稳定性。
附图说明
图1为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例的流程图;
图2为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中单片机flash分区示意图;
图3为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中主程序更新文件的组成示意图;
图4为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中标志位区的各个标志位的标志含义示例图;
图5为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中程序运行区和备份区文件组成示意图;
图6为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中硬件检测概念示意图;
图7为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中主程序更新过程中上位机的流程图;
图8为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中Boot启动区域的程序运行流程图;
图9为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中主程序开始运行阶段流程图;
图10为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中运行错误记录数据示意图;
图11为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中主程序正常运行阶段流程图;
图12为本发明提供的提高单片机更新程序后运行稳定性的方法的实施例中优化配置表示意图;
图13为本发明提供的提高单片机更新程序后运行稳定性的装置的实施例的结构原理图;
图14为本发明提供的本发明提供的提高单片机更新程序后运行稳定性的系统的实施例的原理示意图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
如图1所示,所述提高单片机更新程序后运行稳定性的方法的一个实施例中,包括步骤:
S100、运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位。
如图2所示,在本实施例中,单片机的flash分为多个区,包括一级Boot区域、第一Boot启动区域(图2中的Bootloader1)和第二Boot启动区域(图2中的Bootloader2),还包括标志位区,所述第一Boot区域内的程序只用于跳转至所述第一Boot启动区域或所述第二Boot启动区域,所述第一Boot启动区域和所述第二Boot启动区域内有单片机的启动程序,用于跳转至主程序。由于所述第一Boot启动区域内的程序只用于跳转,因此,所述第一Boot启动区域内的程序可以是一个非常短小精悍不容易出错的程序,而所述第一Boot启动区域和所述第二Boot启动区域内的程序都可以用于实现主程序的启动,因此所述第一Boot启动区域和所述第二Boot启动区域可以互为备份,当所述第一Boot启动区域或所述第二Boot启动区域产生硬件故障或程序出错时,可以通过另一个Boot启动区域进行启动。
具体地,所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,包括:
运行一级Boot区域内的程序跳转至所述第一Boot启动区域中的程序;
若所述第一Boot启动区域中的程序正常运行,则所述第一Boot启动区域为所述目标Boot启动区域;
若所述第一Boot启动区域中的程序不能正常运行,则确定所述第二Boot启动区域为所述目标Boot启动区域。
如图2所示,所述单片机中还设置有标志位区,如图4所示,所述标志位区中存储有程序更新标志位、运行状态标志位、备份区一致性标志位等。
S200、当所述标志位区的程序更新标志位为第一更新标志时,通过所述目标Boot启动区域中的程序与上位机进行通信,将主程序更新文件写入至程序运行区,根据所述主程序更新文件中的运行区地址跳转至所述程序运行区中的主程序,并修改所述运行状态标志位为第一运行标志。
所述程序更新标志位用于表示所述单片机的主程序是否需要更新,当所述标志位区的程序更新标志位为第一更新标志,如0xaa时,表示所述单片机的主程序需要更新,此时所述目标Boot启动区域中的程序与上位机进行通信,接收所述上位机发送的所述主程序更新文件,将所述主程序更新文件写入至程序运行区。具体地,如图7所示,当所述单片机运行时,若接收到上位机发送的更新程序命令,则根据所述更新程序命令将所述程序更新标志设置为所述第一更新标志后复位,复位后读取到所述第一更新标志为所述第一更新标志,则执行步骤S200获取上位机下发的程序更新文件。即,所述通过所述目标Boot启动区域中的程序与上位机进行通信之前,包括:
接收所述上位机发送的更新程序命令,根据所述更新程序命令将所述程序更新标志位设置为所述第一更新标志后复位。
如图3所示,所述主程序更新文件中包括主程序、运行区地址、硬件检测对照表和CRC校验码,所述运行区地址用于跳转至主程序运行,当所述主程序更新文件被写入至所述程序运行区后,通过所述目标Boot启动区域中的程序识别其中的所述运行地址,根据所述运行地址跳转到所述程序运行区中的主程序运行。为了保证主程序文件的完整性,在跳转到主程序运行之前,首先对主程序进行校验,即所述跳转至所述程序运行区中的主程序运行之前,还包括步骤:
根据所述程序运行区的主程序文件计算第一校验码;
将所述第一校验码与所述程序运行区的主程序文件中的第二校验码进行匹配;
当所述第一校验码和所述第二校验码一致时,跳转至所述程序运行区中的主程序运行。
如图5所示,所述主程序更新文件被写入至所述程序运行区后,所述程序运行区内的文件组成包括:主程序、运行区地址、硬件测试对照表以和CRC校验码,所述CRC校验码是预先根据主程序计算得到的,被包括在所述主程序更新文件中写入到所述程序运行区,如果所述程序运行区的主程序文件是完整的,与上位机下发的主程序文件一致,那么根据所述程序运行区的主程序文件计算得到的CRC校验码应该与所述程序运行区内的CRC校验码一致。确定两个校验码一致后,可以根据运行区地址跳转至所述程序运行区中的主程序运行。
如图8所示,跳转至所述程序运行区中的主程序之前,通过所述目标Boot启动区域内的程序修改所述标志位区的运行状态标志位为第一运行标志,例如是0xaa,所述第一运行标志表示主程序在运行中,修改所述运行状态标志位后,启动1min看门狗并跳转到所述程序运行区中的主程序运行。
S300、在所述程序运行区的主程序初始化后,启动硬件设备检测任务,若硬件设备检测成功,则修改所述运行状态标志位为第二运行标志,若硬件检测失败,则修改所述运行状态标志位为第三运行标志。
所述程序运行区中的主程序开始运行后,首先进行初始化,在初始化完成后启动硬件设备检测任务,所述主程序更新文件中包括硬件测试对照表,被写入至所述主程序运行区。在所述程序运行区中的主程序初始化后,主程序首先启动硬件设备检测任务,具体地,嵌入式系统软件在结构上有明显的层次化,板级支持包是介于硬件层和上层操作系统之间的底层软件程序,板级支持包由不同的驱动模块单元组成,如图6所示,硬件检测任务实现将驱动模块API接口和系统外围硬件设备一一对应,在系统对硬件设备初始化完成后,执行对硬件设备的检测,可以快速方便的检测出系统的硬件异常。即,所述启动硬件设备检测任务包括:
根据所述硬件测试对照表中的对照关系将驱动模块API接口和外围硬件设备一一对应。
若硬件设备检测成功,那么主程序启动成功,系统可以正常运行,如图9所示,修改所述运行状态标志位为第二运行标志(如0x00)并关闭1min看门狗,所述第二运行标志表示主程序运行成功。此时还通过主程序发送更新成功信息给上位机。
S400、在主程序正常运行后,通过主程序访问运行错误记录数据,若所述程序运行区的主程序运行错误记录少于备份区的主程序的运行错误记录,则将所述程序运行区的主程序复制到所述备份区,若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,则切换至所述备份区的主程序运行。
具体地,在本实施例中,为主程序设置备份区,所述备份区中也有主程序,当更新程序文件被写入所述主程序运行区后,所述主程序运行区的主程序被更新为新的版本,而所述备份区的主程序是之前的版本,此时将所述标志位区的备份区标志设置为第一备份标志,所述第一备份标志用于表示当前运行的主程序与备份区内的主程序不同。为了避免主程序无效的更新迭代,在本实施例中,如图2所示,还设置Error记录区,所述Error记录区中存储运行错误记录数据,具体地,如图10所示,所述运行错误记录数据可以按照表格的方式进行存储。
本实施例提供的方法中,所述标志位区中包括自动替换备份区标志位,当所述自动替换备份区标志位为可替换标志时,表示当前版本的主程序可以复制到备份区,当所述自动替换备份区标志位为不可替换标志时,说明发生不可抗力导致当前版本无法运行。如图11所示,在主程序正常运行后,可以先判断自动替换备份区标志,当所述自动替换备份区标志为不可替换时,切换为所述备份区的主程序运行,当所述自动替换备份区标志为可替换标志时,则以当前所述程序运行区的主程序运行。在运行过程中,记录不影响系统正常运行的程序运行错误(Error)到所述运行错误记录数据中。在运行一段时间后,比较所述程序运行区的主程序的运行错误次数与所述备份区的主程序运行错误次数,值得说明的是,这里所说的所述备份区的主程序运行错误次数,易于所述备份区当前的主程序版本相同的主程序运行错误次数,不一定是在所述备份区内运行,也可以是所述程序运行区前升级前与所述备份区当前的本本相同的主程序运行时的运行错误次数。若所述程序运行区的主程序的运行错误记录少于所述备份区的主程序的运行错误记录,那么说明本次更新后的主程序优于前一版本,那么将所述程序运行区的主程序复制到所述备份区,将所述程序运行区的主程序复制到所述备份区后,将所述备份区标志修改为第二备份标志,所述第二备份标志表示当前运行的主程序与所述备份区内的主程序相同。若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,说明主程序版本的迭代更新令错误的数量不减反增,那么本次迭代更新为无效更新,则切换至所述备份区的主程序运行,切换至所述备份区的主程序运行之后,将所述备份区标志修改为所述第二备份标志,即表示当前雨欣的主程序与所述备份区内的主程序相同。
所述运行错误记录数据中可以滚动记录多个版本的运行错误情况,有利于对比当前版本与历史版本。在下一次与所述上位机连接通信时,可以将所述运行错误记录数据上报至所述上位机,使得开发人员能够获取到主程序的运行错误记录,进行改进。
若在通过所述一级Boot区域中的程序跳转至所述第一Boot启动区域后,所述第一Boot启动区域中的启动程序不能正常运行,那么所述第一Boot启动区域中产生了故障,在通过所述第二Boot启动区域中的程序正常运行后,可以通过主程序对所述第一Boot启动区域进行故障检测并上报上位机,以使得所述上位机发送更新文件对所述第一Boot启动区域中的程序进行更新。即本实施例提供的方法还包括:
若所述第一Boot启动区域中的程序不能正常启动,则在所述程序运行区的主程序正常运行后,通过所述程序运行区的主程序检查所述第一Boot启动区域的故障并上报所述上位机;
当所述上位机在线时,通过所述程序运行区的主程序从所述上位机处接收启动程序更新文件更新所述第一Boot启动区域的程序;
当所述上位机不在线时,通过所述程序运行区的主程序将所述第二Boot启动区域中的程序复制到所述第一Boot启动区域。
这样,可以保证无论在什么情况下,所述单片机内都存在一套可以保证系统稳定运行的启动程序(Bootloader)和主程序。
在主程序运行的过程中,本实施例提供的方法还包括:
通过主程序记录程序运行过程中的错误至所述运行错误记录数据中;
通过主程序根据所述运行错误记录数据更新优化配置表,根据执行更新后的所述优化配置表后的所述运行错误记录数据确定是否保留对所述优化配置表的更新。
在一种可能的实现方式中,所述主程序运行区中还设置有优化配置表,优化配置表的格式可以如图12所示。在主程序运行过程中将运行错误记录后,通过主程序分析运行错误与优化配置表之间的关系,修改优化配置表的数据,若修改后运行错误出现的次数降低或者不再出现,说明修改有效,可以保留修改。
若硬件设备检测失败,那么系统不能正常运行,此时修改所述运行状态标志位为第三运行标志(例如0xxf)。所述第三运行标志表示主程序运行失败。所述修改所述标志位区的运行状态标志位为第三运行标志后,本实施例提供的方法还包括:
复位后执行所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位的步骤;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第一备份标志时,发送第一失败信息给所述上位机,以使得所述上位机重新发送更新程序命令;
当所述运行状态标志位为所述第三运行标志,所述备份区标志为所述第一备份标志时,发送第二失败信息给所述上位机,并通过所述目标Boot启动区域中的程序重新设置所述运行区地址;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第二备份标志时,发送第三失败信息给所述上位机,并通过所述目标Boot启动区域中的程序对所述备份区进行硬件检测,在所述备份区存在硬件故障时,为所述备份区重新分配flash区域。
如果主程序不能正常启动,则隔预设时长,例如1min后,单片机自动复位,复位后通过所述目标Boot启动区域中的程序重新识别标志位。若识别到所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第一备份标志,说明上一次主程序启动失败,那么通过所述目标Boot启动区域中的程序发送第一失败信息给所述上位机告知主程序启动失败,所述上位机接收到所述第一失败信息后,可以重新发送更新程序命令更新所述程序运行区的主程序。若识别到所述运行状态标志位为所述第三运行标志,所述备份区标志为所述第一备份标志,说明上一次硬件检测失败,通过所述目标Boot启动区域中的程序发送第二失败信息给所述上位机,所述第二失败信息中包括硬件检测结果,发送所述第二失败信息给所述上位机后,可以接收所述上位机发送的新的运行区地址,在没有硬件故障的区域实现主程序运行,或者,所述目标Boot启动区域中的程序可以自行跳过硬件损坏区域,修改所述运行区地址,重新分配flash区域进行主程序运行。若所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第二备份标志,说明上一次从所述备份区启动失败,此时通过所述目标Boot启动区域中的程序发送第三失败信息给所述上位机,所述第三失败信息中包括所述备份区启动失败的信息,所述上位机接收到所述第三失败信息,可以发送更新程序命令或者发送启动命令以使得所述单片机重启。通过所述目标Boot启动区域中的程序发送第三失败信息后,还可以通过所述目标Boot启动区域中的程序对所述备份区进行硬件检测,若在所述备份区存在硬件故障,则尝试跳过损坏区域,为备份区重新分配flash区域并重新运行主程序。本发明中若flash硬件检测出现问题,BOOT可以智能修改主程序中运行区地址,自动对flash区域进行合理的划分,可以有效规避在野外设备遭受碰撞后flash部分故障导致系统无法启动的问题。
综上所述,本实施例提供一种提高单片机更新程序后运行稳定性的方法,设置有一级Boot区域和第一Boot启动区域和第二Boot启动区域,一级Boot区域中的程序只用于跳转至第一Boot启动区域或第二Boot启动区域,第一Boot启动区域和第二Boot启动区域互为备份,二者中的程序均可以实现系统启动,进行主程序更新,并跳转至程序运行区运行主程序,由于一级Boot区域中只实现程序跳转,开发前期只需要保证开发一个非常短小精悍不容易出错的程序来实现跳转,第一Boot启动区域或第二Boot启动区域产生故障,都可以通过另外一个Boot启动区域进行主程序启动,提升单片机系统运行稳定性,并且,本发明中程序运行区也设置了备份区,在运行过程中记录当前运行的程序版本的运行错误记录,如果程序运行区运行的程序的错误记录少于备份区的运行错误记录,将程序运行区的主程序复制到备份区,如果多于备份区的运行错误记录,则切换至备份区的主程序运行,这样可以清晰地比较当前运行版本与历史版本的运行情况,若版本的迭代更新令错误数不减反增,退回至备份区的主程序版本运行,进一步保证了进行了程序更新后单片机的运行稳定性。
应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显式,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
实施例二
基于上述实施例,本发明还相应提供了一种提高单片机更新程序后运行稳定性的装置,如图13所示,所述提高单片机更新程序后运行稳定性的装置包括:
一级启动模块,所述一级启动模块用于运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,具体如实施例一中所述;
目标启动模块,所述目标启动模块用于通过所述目标Boot启动区域中的程序读取标志位区的标志位,并在所述标志位区的程序更新标志位为第一更新标志时,通过所述目标Boot启动区域中的程序与上位机进行通信,将主程序更新文件写入至程序运行区,根据所述主程序更新文件中的运行区地址跳转至所述程序运行区中的主程序,并修改所述标志位区的运行状态标志位为第一运行标志,具体如实施例一中所述;
主程序运行模块,所述主程序运行模块用于在所述程序运行区的主程序初始化后,启动硬件设备检测任务,若硬件设备检测成功,则修改所述运行状态标志位为第二运行标志,若硬件检测失败,则修改所述运行状态标志位为第三运行标志,具体如实施例一中所述;
所述主程序运行模块还用于在主程序正常运行后,通过主程序访问运行错误记录数据,若所述程序运行区的主程序的运行错误记录少于备份区的主程序的运行错误记录,则将所述程序运行区的主程序复制到所述备份区,若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,则切换至所述备份区的主程序运行,具体如实施例一中所述。
实施例三
基于上述实施例,本发明还相应提供了一种提高单片机更新程序后运行稳定性的系统,如图14所示,所述提高单片机更新程序后运行稳定性的系统包括处理器10以及存储器20。图14仅示出了提高单片机更新程序后运行稳定性的系统的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述提高单片机更新程序后运行稳定性的系统的内部存储单元,例如提高单片机更新程序后运行稳定性的系统的硬盘或内存。所述存储器20在另一些实施例中也可以是所述提高单片机更新程序后运行稳定性的系统的外部存储设备,例如所述提高单片机更新程序后运行稳定性的系统上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,所述存储器20还可以既包括所述提高单片机更新程序后运行稳定性的系统的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述提高单片机更新程序后运行稳定性的系统的应用软件及各类数据。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有提高单片机更新程序后运行稳定性的程序30,该提高单片机更新程序后运行稳定性的程序30可被处理器10所执行,从而实现本申请中提高单片机更新程序后运行稳定性的方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述提高单片机更新程序后运行稳定性的方法等。
在一实施例中,当处理器10执行所述存储器20中提高单片机更新程序后运行稳定性的程序30时实现以下步骤:
运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位;
当所述标志位区的程序更新标志位为第一更新标志时,通过所述目标Boot启动区域中的程序与上位机进行通信,将主程序更新文件写入至程序运行区,根据所述主程序更新文件中的运行区地址跳转至所述程序运行区中的主程序,并修改所述标志位区的运行状态标志位为第一运行标志;
在所述程序运行区的主程序初始化后,启动硬件设备检测任务,若硬件设备检测成功,则修改所述运行状态标志位为第二运行标志,若硬件检测失败,则修改所述运行状态标志位为第三运行标志;
在主程序正常运行后,通过主程序访问运行错误记录数据,若所述程序运行区的主程序的运行错误记录少于备份区的主程序的运行错误记录,则将所述程序运行区的主程序复制到所述备份区,若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,则切换至所述备份区的主程序运行。
其中,所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,包括:
运行一级Boot区域内的程序跳转至所述第一Boot启动区域中的程序;
若所述第一Boot启动区域中的程序正常运行,则所述第一Boot启动区域为所述目标Boot启动区域;
若所述第一Boot启动区域中的程序不能正常运行,则确定所述第二Boot启动区域为所述目标Boot启动区域。
其中,所述方法还包括:
若所述第一Boot启动区域中的程序不能正常启动,则在所述程序运行区的主程序正常运行后,通过所述程序运行区的主程序检查所述第一Boot启动区域的故障并上报所述上位机;
当所述上位机在线时,通过所述程序运行区的主程序从所述上位机处接收启动程序更新文件更新所述第一Boot启动区域的程序;
当所述上位机不在线时,通过所述程序运行区的主程序将所述第二Boot启动区域中的程序复制到所述第一Boot启动区域。
其中,所述跳转至所述程序运行区中的主程序运行之前,所述方法还包括:
根据所述程序运行区的主程序文件计算第一校验码;
将所述第一校验码与所述程序运行区的主程序文件中的第二校验码进行匹配;
当所述第一校验码和所述第二校验码一致时,跳转至所述程序运行区中的主程序运行。
其中,所述通过所述目标Boot启动区域中的程序读取标志位区的程序更新标志位之后,所述方法还包括:
当所述程序更新标志位为第二更新标志时,通过所述目标Boot启动区域中的程序读取所述程序运行区的内容,根据所述程序运行区中的运行地址跳转至所述程序运行区中的主程序运行。
其中,所述通过所述目标Boot启动区域中的程序与上位机进行通信之前,包括:
接收所述上位机发送的更新程序命令,根据所述更新程序命令将所述程序更新标志位设置为所述第一更新标志后复位。
其中,所述将主程序更新文件写入至程序运行区之后,所述方法还包括:
将所述标志位区的备份区标志设置为第一备份标志;
所述将所述程序运行区的主程序复制到所述备份区之后,所述方法还包括:
将所述备份区标志修改为第二备份标志;
所述切换至所述备份区的主程序运行之后,所述方法还包括:
将所述备份区标志修改为所述第二备份标志。
其中,所述修改所述标志位区的运行状态标志位为第三运行标志后,所述方法还包括:
复位后执行所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位的步骤;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第一备份标志时,发送第一失败信息给所述上位机,以使得所述上位机重新发送更新程序命令;
当所述运行状态标志位为所述第三运行标志,所述备份区标志为所述第一备份标志时,发送第二失败信息给所述上位机,并通过所述目标Boot启动区域中的程序重新设置所述运行区地址;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第二备份标志时,发送第三失败信息给所述上位机,并通过所述目标Boot启动区域中的程序对所述备份区进行硬件检测,在所述备份区存在硬件故障时,为所述备份区重新分配flash区域。
其中,所述主程序更新文件中包括硬件测试对照表,所述启动硬件设备检测任务包括:
根据所述硬件测试对照表中的对照关系将驱动模块API接口和外围硬件设备一一对应。
其中,在所述程序运行区的主程序正常运行或切换至所述备份区的主程序运行之后,所述方法还包括:
通过主程序记录程序运行过程中的错误至所述运行错误记录数据中;
通过主程序根据所述运行错误记录数据更新优化配置表,根据执行更新后的所述优化配置表后的所述运行错误记录数据确定是否保留对所述优化配置表的更新。
实施例四
本发明还提供一种计算机可读存储介质,其中,存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的提高单片机更新程序后运行稳定性的方法的步骤。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种提高单片机更新程序后运行稳定性的方法,其特征在于,所述方法包括:
运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位;
所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,包括:
运行一级Boot区域内的程序跳转至所述第一Boot启动区域中的程序;
若所述第一Boot启动区域中的程序正常运行,则所述第一Boot启动区域为所述目标Boot启动区域;
若所述第一Boot启动区域中的程序不能正常运行,则确定所述第二Boot启动区域为所述目标Boot启动区域;
当所述标志位区的程序更新标志位为第一更新标志时,通过所述目标Boot启动区域中的程序与上位机进行通信,将主程序更新文件写入至程序运行区,根据所述主程序更新文件中的运行区地址跳转至所述程序运行区中的主程序,并修改所述标志位区的运行状态标志位为第一运行标志;
在所述程序运行区的主程序初始化后,启动硬件设备检测任务,若硬件设备检测成功,则修改所述运行状态标志位为第二运行标志,若硬件检测失败,则修改所述运行状态标志位为第三运行标志;
在主程序正常运行后,通过主程序访问运行错误记录数据,若所述程序运行区的主程序的运行错误记录少于备份区的主程序的运行错误记录,则将所述程序运行区的主程序复制到所述备份区,若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,则切换至所述备份区的主程序运行;
所述将主程序更新文件写入至程序运行区之后,所述方法还包括:
将所述标志位区的备份区标志设置为第一备份标志;
所述将所述程序运行区的主程序复制到所述备份区之后,所述方法还包括:
将所述备份区标志修改为第二备份标志;
所述切换至所述备份区的主程序运行之后,所述方法还包括:
将所述备份区标志修改为所述第二备份标志。
2.根据权利要求1所述的提高单片机更新程序后运行稳定性的方法,其特征在于,所述方法还包括:
若所述第一Boot启动区域中的程序不能正常启动,则在所述程序运行区的主程序正常运行后,通过所述程序运行区的主程序检查所述第一Boot启动区域的故障并上报所述上位机;
当所述上位机在线时,通过所述程序运行区的主程序从所述上位机处接收启动程序更新文件更新所述第一Boot启动区域的程序;
当所述上位机不在线时,通过所述程序运行区的主程序将所述第二Boot启动区域中的程序复制到所述第一Boot启动区域。
3.根据权利要求1所述的提高单片机更新程序后运行稳定性的方法,其特征在于,所述跳转至所述程序运行区中的主程序运行之前,所述方法还包括:
根据所述程序运行区的主程序文件计算第一校验码;
将所述第一校验码与所述程序运行区的主程序文件中的第二校验码进行匹配;
当所述第一校验码和所述第二校验码一致时,跳转至所述程序运行区中的主程序运行。
4.根据权利要求3所述的提高单片机更新程序后运行稳定性的方法,其特征在于,所述通过所述目标Boot启动区域中的程序读取标志位区的程序更新标志位之后,所述方法还包括:
当所述程序更新标志位为第二更新标志时,通过所述目标Boot启动区域中的程序读取所述程序运行区的内容,根据所述程序运行区中的运行地址跳转至所述程序运行区中的主程序运行。
5.根据权利要求1所述的提高单片机更新程序后运行稳定性的方法,其特征在于,所述通过所述目标Boot启动区域中的程序与上位机进行通信之前,包括:
接收所述上位机发送的更新程序命令,根据所述更新程序命令将所述程序更新标志位设置为所述第一更新标志后复位。
6.根据权利要求1所述的提高单片机更新程序后运行稳定性的方法,其特征在于,所述修改所述标志位区的运行状态标志位为第三运行标志后,所述方法还包括:
复位后执行所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,通过所述目标Boot启动区域中的程序读取标志位区的标志位的步骤;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第一备份标志时,发送第一失败信息给所述上位机,以使得所述上位机重新发送更新程序命令;
当所述运行状态标志位为所述第三运行标志,所述备份区标志为所述第一备份标志时,发送第二失败信息给所述上位机,并通过所述目标Boot启动区域中的程序重新设置所述运行区地址;
当所述运行状态标志位为所述第一运行标志,所述备份区标志为所述第二备份标志时,发送第三失败信息给所述上位机,并通过所述目标Boot启动区域中的程序对所述备份区进行硬件检测,在所述备份区存在硬件故障时,为所述备份区重新分配flash区域。
7.根据权利要求1所述的提高单片机更新程序后运行稳定性的方法,其特征在于,所述主程序更新文件中包括硬件测试对照表,所述启动硬件设备检测任务包括:
根据所述硬件测试对照表中的对照关系将驱动模块API接口和外围硬件设备一一对应。
8.根据权利要求1所述的提高单片机更新程序后运行稳定性的方法,其特征在于,在所述程序运行区的主程序正常运行或切换至所述备份区的主程序运行之后,所述方法还包括:
通过主程序记录程序运行过程中的错误至所述运行错误记录数据中;
通过主程序根据所述运行错误记录数据更新优化配置表,根据执行更新后的所述优化配置表后的所述运行错误记录数据确定是否保留对所述优化配置表的更新。
9.一种单片机,其特征在于,包括:
一级启动模块,所述一级启动模块用于运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域;
所述运行一级Boot区域内的程序以在第一Boot启动区域和第二Boot启动区域中确定目标Boot启动区域,包括:
运行一级Boot区域内的程序跳转至所述第一Boot启动区域中的程序;
若所述第一Boot启动区域中的程序正常运行,则所述第一Boot启动区域为所述目标Boot启动区域;
若所述第一Boot启动区域中的程序不能正常运行,则确定所述第二Boot启动区域为所述目标Boot启动区域;
目标启动模块,所述目标启动模块用于通过所述目标Boot启动区域中的程序读取标志位区的标志位,并在所述标志位区的程序更新标志位为第一更新标志时,通过所述目标Boot启动区域中的程序与上位机进行通信,将主程序更新文件写入至程序运行区,根据所述主程序更新文件中的运行区地址跳转至所述程序运行区中的主程序,并修改所述标志位区的运行状态标志位为第一运行标志;
主程序运行模块,所述主程序运行模块用于在所述程序运行区的主程序初始化后,启动硬件设备检测任务,若硬件设备检测成功,则修改所述运行状态标志位为第二运行标志,若硬件检测失败,则修改所述运行状态标志位为第三运行标志;
所述主程序运行模块还用于在主程序正常运行后,通过主程序访问运行错误记录数据,若所述程序运行区的主程序的运行错误记录少于备份区的主程序的运行错误记录,则将所述程序运行区的主程序复制到所述备份区,若所述程序运行区的主程序的运行错误记录多于所述备份区的主程序的运行错误记录,则切换至所述备份区的主程序运行;
所述将主程序更新文件写入至程序运行区之后,还包括:
将所述标志位区的备份区标志设置为第一备份标志;
所述将所述程序运行区的主程序复制到所述备份区之后,还包括:
将所述备份区标志修改为第二备份标志;
所述切换至所述备份区的主程序运行之后,还包括:
将所述备份区标志修改为所述第二备份标志。
10.一种提高单片机更新程序后运行稳定性的系统,其特征在于,所述系统包括:处理器、与处理器通信连接的计算机可读存储介质,所述计算机可读存储介质适于存储多条指令,所述处理器适于调用所述计算机可读存储介质中的指令,以执行实现上述权利要求1-8任一项所述的提高单片机更新程序后运行稳定性的方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任一项所述的提高单片机更新程序后运行稳定性的方法的步骤。
CN202111561810.0A 2021-12-20 2021-12-20 一种提高单片机更新程序后运行稳定性的方法及单片机 Active CN114398087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111561810.0A CN114398087B (zh) 2021-12-20 2021-12-20 一种提高单片机更新程序后运行稳定性的方法及单片机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111561810.0A CN114398087B (zh) 2021-12-20 2021-12-20 一种提高单片机更新程序后运行稳定性的方法及单片机

Publications (2)

Publication Number Publication Date
CN114398087A CN114398087A (zh) 2022-04-26
CN114398087B true CN114398087B (zh) 2023-08-18

Family

ID=81227655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111561810.0A Active CN114398087B (zh) 2021-12-20 2021-12-20 一种提高单片机更新程序后运行稳定性的方法及单片机

Country Status (1)

Country Link
CN (1) CN114398087B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911648B (zh) * 2022-07-14 2022-10-04 北京智芯微电子科技有限公司 Xip flash程序驱动方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557583A (zh) * 2009-03-19 2009-10-14 珠海银邮光电技术发展股份有限公司 直放站设备嵌入式软件的远程升级与版本切换方法
CN104572206A (zh) * 2015-01-14 2015-04-29 厦门为那通信科技有限公司 应用程序自更新和备份恢复的方法
CN112040476A (zh) * 2020-08-21 2020-12-04 北京三一智农数据技术有限公司 物联网终端的升级方法及装置
CN112379932A (zh) * 2020-11-23 2021-02-19 歌尔科技有限公司 电子设备的Boot方法、Boot装置和电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101557583A (zh) * 2009-03-19 2009-10-14 珠海银邮光电技术发展股份有限公司 直放站设备嵌入式软件的远程升级与版本切换方法
CN104572206A (zh) * 2015-01-14 2015-04-29 厦门为那通信科技有限公司 应用程序自更新和备份恢复的方法
CN112040476A (zh) * 2020-08-21 2020-12-04 北京三一智农数据技术有限公司 物联网终端的升级方法及装置
CN112379932A (zh) * 2020-11-23 2021-02-19 歌尔科技有限公司 电子设备的Boot方法、Boot装置和电子设备

Also Published As

Publication number Publication date
CN114398087A (zh) 2022-04-26

Similar Documents

Publication Publication Date Title
CN101650662B (zh) 一种嵌入式系统的存储器件的固件启动及升级方法
CN102385535B (zh) 处理从非易失性存储器进行设备引导期间的错误
CN102023908A (zh) 一种引导程序备份方法及装置
CN111562934B (zh) 一种基于热补丁的软件系统升级方法、终端及存储介质
CN114398087B (zh) 一种提高单片机更新程序后运行稳定性的方法及单片机
CN113641390B (zh) 一种系统升级方法、装置、设备及存储介质
CN114047958B (zh) 一种服务器的基板管理控制器的启动方法、设备及介质
CN114860291A (zh) 一种引导及应用程序灵活储存与升级的方法
CN111984195A (zh) 一种提高嵌入式Linux系统稳定性的方法及装置
EP2733612B1 (en) Information processing device, method, and program
CN116795408A (zh) Ecu的软件升级方法、系统及车辆
CN111552592A (zh) 一种双备份启动方法及系统
JP2005284902A (ja) 端末装置、その制御方法及び制御プログラム、ホスト装置、その制御方法及び制御プログラム、遠隔更新システム、方法及びプログラム
CN116301973A (zh) 固件升级方法、装置、设备及可读存储介质
CN114510375A (zh) 一种Flash芯片数据区域动态共享系统及方法
CN111666094B (zh) 一种实时固件升级系统与方法
CN114911648B (zh) Xip flash程序驱动方法及系统
CN116361817B (zh) 一种Linux下ubi文件系统的保护方法
CN116185461B (zh) 固件升级方法及系统
JP2010282645A (ja) Linuxプログラム起動システム
CN114840360A (zh) 程序加载方法、装置、电子设备及存储介质
CN100410901C (zh) 固件更新的方法及执行此方法的系统
CN113986383A (zh) 一种引导加载程序的启动方法及相关装置
KR100321999B1 (ko) 스크립트를이용한프로그램패치방법
CN118012466A (zh) 基于u盘的系统升级方法及装置、可读存储介质、终端

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