CN116225784B - 应用程序引导备份方法、单片机、计算机可读存储介质 - Google Patents
应用程序引导备份方法、单片机、计算机可读存储介质 Download PDFInfo
- Publication number
- CN116225784B CN116225784B CN202310180990.0A CN202310180990A CN116225784B CN 116225784 B CN116225784 B CN 116225784B CN 202310180990 A CN202310180990 A CN 202310180990A CN 116225784 B CN116225784 B CN 116225784B
- Authority
- CN
- China
- Prior art keywords
- address
- application program
- program
- starting
- starting address
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 230000005856 abnormality Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Retry When Errors Occur (AREA)
Abstract
本申请提供了一种应用程序引导备份方法、单片机、计算机可读存储介质,方法包括:启动引导程序对应的第一启动地址;获取看门狗模块的触发次数;当触发次数小于或者等于预设次数,调用第二启动地址,启动第二启动地址对应的第一应用程序;置位触发次数;当触发次数大于预设次数,调用第三启动地址,启动第三启动地址对应的第二应用程序;复位触发次数。本申请基于看门狗模块触发次数从第二启动地址和第三启动地址中确定目标地址,从而启动目标地址对应的目标程序,相比在引导程序代码中特定的启动位置启动程序的方案,能够有效提高MCU的容错能力,减少由于程序异常导致设备停机的情况发生。
Description
技术领域
本发明涉及但不限于嵌入式及计算机领域,尤其涉及一种应用程序引导备份方法、单片机、计算机可读存储介质。
背景技术
在嵌入式产品中,在设备上电或复位后一般需要执行一个简单的引导程序代码,对MCU做必要配置,引导MCU最小系统正常启动,待MCU最小系统成功运行之后,主程序再装载外围功能器件的驱动程序和系统软件,并实现嵌入式产品的正常运转。常规的MCU引导程序往往仅能从特定的启动位置进行程序的启动,一旦主程序运行异常后很难保证设备的正常运行。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例的主要目的在于提出一种应用程序引导备份方法、单片机、计算机可读存储介质,能够有效提高MCU的容错能力,减少由于程序异常导致设备停机的情况发生。
第一方面,本发明实施例提供了一种应用程序引导备份方法,应用于单片机,所述方法包括:
启动所述单片机预设的引导程序对应的第一启动地址,所述引导程序存储于第一存储地址对应的存储区域中;
获取所述单片机的看门狗模块的触发次数;
在所述触发次数小于或者等于预设次数的情况下,将所述第一启动地址调整至第二启动地址,并启动所述第二启动地址对应的第一应用程序,其中,所述第一应用程序存储于第二存储地址对应的存储区域中;
置位所述看门狗模块的触发次数;
在所述触发次数大于所述预设次数的情况下,将所述第一启动地址调整至第三启动地址,并启动所述第三启动地址对应的第二应用程序,其中,所述第二应用程序为所述第一应用程序对应的备用程序,所述第二应用程序存储于第三存储地址对应的存储区域中;
复位所述看门狗模块的触发次数。
在一实施例中,所述方法还包括:
在所述触发次数大于预设次数的情况下,生成并周期性发送告警提示信息。
在一实施例中,在所述启动所述单片机预设的引导程序对应的第一启动地址之前,所述方法还包括:
初始化与所述单片机相连接的全部外接设备;
为所述引导程序分配所述第一启动地址,为所述第一应用程序分配所述第二启动地址,以及为所述第二应用程序分配所述第三启动地址,其中,所述第一启动地址、所述第二启动地址和所述第三启动地址均归属于所述单片机的Flash地址空间。
在一实施例中,所述外接设备包括CAN设备,所述启动所述第三启动地址对应的第二应用程序,包括:
获取所述CAN设备输出的CAN数据,并根据预设校验规则对所述CAN数据进行校验,得到目标CAN数据;
在所述第三启动地址中写入所述目标CAN数据;
根据所述目标CAN数据对所述第一应用程序进行升级或更新,得到新的第一应用程序;
基于所述第二启动地址对所述第一应用程序进行Flash擦除处理,并在所述第二启动地址写入所述新的第一应用程序。
第二方面,本发明实施例提供了一种单片机,包括:
第一操作模块,用于启动所述单片机预设的引导程序对应的第一启动地址,所述引导程序存储于第一存储地址对应的存储区域中;
第一数据获取模块,用于获取所述单片机的看门狗模块的触发次数;
第二操作模块,在所述触发次数小于或者等于预设次数的情况下,调用第二启动地址,并启动所述第二启动地址对应的第一应用程序,其中,所述第一应用程序存储于第二存储地址对应的存储区域中;
第三操作模块,用于置位所述看门狗模块的触发次数;
第四操作模块,用于在所述触发次数大于预设次数的情况下,调用第三启动地址,并启动所述第三启动地址对应的第二应用程序,其中,所述第二应用程序为所述第一应用程序对应的备用程序,所述第二应用程序存储于第三存储地址对应的存储区域中;
第五操作模块,用于复位所述看门狗模块的触发次数。
在一实施例中,所述单片机还包括:
告警模块,用于在所述触发次数大于预设次数的情况下,生成并周期性发送告警提示信息。
在一实施例中,所述单片机还包括:
初始化模块,用于在所述启动所述单片机预设的引导程序对应的第一启动地址之前,初始化与所述单片机相连接的全部外接设备;
Flash地址分配模块,用于在所述启动所述单片机预设的引导程序对应的第一启动地址之前,为所述引导程序分配所述第一启动地址,为所述第一应用程序分配所述第二启动地址,以及为所述第二应用程序分配所述第三启动地址,其中,所述第一启动地址、所述第二启动地址和所述第三启动地址均归属于所述单片机的Flash地址空间。
在一实施例中,所述外接设备包括CAN设备,所述单片机还包括:
第二数据获取模块,用于获取所述CAN设备输出的CAN数据,并根据预设校验规则对所述CAN数据进行校验,得到目标CAN数据;
第一数据写入模块,用于在所述第三启动地址中写入所述目标CAN数据;
程序升级模块,用于根据所述目标CAN数据对所述第一应用程序进行升级或更新,得到新的第一应用程序;
第二数据写入模块,用于基于所述第二启动地址对所述第一应用程序进行Flash擦除处理,并在所述第二启动地址写入所述新的第一应用程序。
第三方面,本发明实施例提供了一种单片机,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的应用程序引导备份方法。
第四方面,一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行第一方面所述的应用程序引导备份方法。
本申请提供了一种应用程序引导备份方法、单片机、计算机可读存储介质,其中,应用程序引导备份方法包括:启动所述单片机预设的引导程序对应的第一启动地址,所述引导程序存储于第一存储地址对应的存储区域中;获取所述单片机的看门狗模块的触发次数;在所述触发次数小于或者等于预设次数的情况下,调用第二启动地址,并启动所述第二启动地址对应的第一应用程序,其中,所述第一应用程序存储于第二存储地址对应的存储区域中;置位所述看门狗模块的触发次数;在所述触发次数大于预设次数的情况下,调用第三启动地址,并启动所述第三启动地址对应的第二应用程序,其中,所述第二应用程序为所述第一应用程序对应的备用程序,所述第二应用程序存储于第三存储地址对应的存储区域中;复位所述看门狗模块的触发次数。在本实施例的技术方案中,将看门狗模块的触发次数作为判断启动第一应用程序或启动第二应用程序的条件,即是说,基于触发次数确定引导程序中的第二启动地址和第三启动地址中确定目标地址,从而启动目标地址对应的目标程序,相比在引导程序代码中特定的启动位置启动程序的方案,能够有效提高MCU的容错能力,减少由于程序异常导致设备停机的情况发生。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
图1是本发明一个实施例提供的应用程序引导备份方法的步骤流程图;
图2是本发明另一个实施例提供的发送告警提示信息的步骤流程图;
图3是本发明另一个实施例提供的在启动引导程序之前单片机的操作步骤流程图;
图4是本发明另一个实施例提供的启动第二应用程序的步骤流程图;
图5是本发明另一个实施例提供的单片机的模块示意图;
图6是本发明另一个实施例提供的单片机的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书、权利要求书或上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
目前,在嵌入式产品中,在设备上电或复位后一般需要执行一个简单的引导程序代码,对MCU做必要配置,引导MCU最小系统正常启动,待MCU最小系统成功运行之后,主程序再装载外围功能器件的驱动程序和系统软件,并实现嵌入式产品的正常运转。常规的MCU引导程序往往仅能从特定的启动位置进行程序的启动,一旦主程序运行异常后很难保证设备的正常运行。
为解决上述存在的问题,本发明实施例提供了一种应用程序引导备份方法、单片机、计算机可读存储介质,应用程序引导备份方法至少包括以下步骤:启动所述单片机预设的引导程序对应的第一启动地址,所述引导程序存储于第一存储地址对应的存储区域中;获取所述单片机的看门狗模块的触发次数;在所述触发次数小于或者等于预设次数的情况下,调用第二启动地址,并启动所述第二启动地址对应的第一应用程序,其中,所述第一应用程序存储于第二存储地址对应的存储区域中;置位所述看门狗模块的触发次数;在所述触发次数大于预设次数的情况下,调用第三启动地址,并启动所述第三启动地址对应的第二应用程序,其中,所述第二应用程序为所述第一应用程序对应的备用程序,所述第二应用程序存储于第三存储地址对应的存储区域中;复位所述看门狗模块的触发次数。
在本实施例的技术方案中,将看门狗模块的触发次数作为判断启动第一应用程序或启动第二应用程序的条件,即是说,基于触发次数从引导程序中的第二启动地址和第三启动地址中确定目标地址,从而启动目标地址对应的目标程序,相比在引导程序代码中特定的启动位置启动程序的方案,能够有效提高MCU的容错能力,减少由于程序异常导致设备停机的情况发生。
下面结合附图,对本发明实施例作进一步阐述。
如图1所示,图1是本申请一个实施例提供的应用程序引导备份方法的步骤流程图,本申请实施例提供了一种应用程序引导备份方法,应用于单片机,该方法包括但不限于有以下步骤:
步骤S110,启动单片机预设的引导程序对应的第一启动地址,引导程序存储于第一存储地址对应的存储区域中;
步骤S120,获取单片机的看门狗模块的触发次数;
步骤S130,在触发次数小于或者等于预设次数的情况下,调用第二启动地址,并启动第二启动地址对应的第一应用程序,其中,第一应用程序存储于第二存储地址对应的存储区域中;
步骤S140,置位看门狗模块的触发次数;
步骤S150,在触发次数大于预设次数的情况下,调用第三启动地址,并启动第三启动地址对应的第二应用程序,其中,第二应用程序为第一应用程序对应的备用程序,第二应用程序存储于第三存储地址对应的存储区域中;
步骤S160,复位看门狗模块的触发次数。
需要说明的是,本申请实施例并不限制具体的第一应用程序,可以是单片机中的固件程序,例如实现看门狗功能的程序或实现告警提示的程序,本领域技术人员可以根据实际需求进行开发编写,在此不多做限制。
需要说明的是,本申请实施例并不限制第一应用程序以及第二应用程序的开发方式,可以是基于引导程序确定应用程序在单片机的Flash地址空间的起始位置,并为该应用程序分配目标存储容量,即Flash大小,修改单片机预设的中断向量表的偏移位置,以实现存放中断服务子程序(第一应用程序或第二应用程序)的入口地址,最后,在该入口地址中添加相应的应用程序。
可以理解的是,启动单片机预设的引导程序对应的第一启动地址,引导程序存储于第一存储地址对应的存储区域中,获取单片机的看门狗模块的触发次数,看门狗模块用于监控单片机的程序运行,看门狗模块的触发次数表征当前执行引导程序过程中出现异常的次数,在触发次数小于或者等于预设次数的情况下,表示当前引导程序启动仍处于安全状态,调用第二启动地址,启动第二启动地址对应的第一应用程序,其中,第一应用程序存储于第二存储地址对应的存储区域中,在触发次数大于预设次数的情况下,表示当前程序执行过程存在异常或当前第一应用程序不可用,需要对其进行升级或更新处理,此时,调用第三启动地址,启动第三启动地址对应的第二应用程序,其中第二应用程序为第一应用程序对应的备用程序,第二应用程序可以是包括用于升级或更新第一应用程序的程序插件,还可以包括与第一应用程序功能相同的备份程序,第二应用程序存储于第三存储地址对应的存储区域中,第一存储地址、第二存储地址以及第三存储地址可以理解为在Flash地址空间中存储的指向各自对应的存储区域的存储地址,即指针,基于本实施例的技术方案,将看门狗模块的触发次数作为判断启动第一应用程序或启动第二应用程序的条件,即是说,基于触发次数从引导程序中的第二启动地址和第三启动地址中确定目标地址,从而启动目标地址对应的目标程序,相比在引导程序代码中特定的启动位置启动程序的方案,能够有效提高MCU的容错能力,减少由于程序异常导致设备停机的情况发生;并且,由于触发启动第一应用程序和第二应用程序对应不同的条件,能够使得第一应用程序与第二应用程序功能统一,从而避免单片机程序烧录过程中需要对第一应用程序和第二应用程序进行区分,可以采用同一程序进行烧录。
可以理解的是,单片机的看门狗模块的触发次数的具体数值根据执行Flash地址空间中存储的程序的实际情况决定,例如,在本实施例中,在启动第一应用程序的情况下,置位看门狗模块的触发次数;由于启动第二应用程序的前提条件是看门狗模块的触发次数大于预设次数,该情况下表示当前程序执行过程存在异常或当前第一应用程序不可用,需要启动第二应用程序实现对第一应用程序的升级或更新处理,启动第二应用程序之后,当前单片机程序运行的异常消除,复位看门狗模块的触发次数。
另外,参照图2,是本发明另一个实施例提供的发送告警提示信息的步骤流程图,在一实施例中,本发明实施例的应用程序引导备份方法还可以包括但不限于有以下步骤:
步骤S210,在触发次数大于预设次数的情况下,生成并周期性发送告警提示信息。
可以理解的是,本实施例的单片机可以与终端设备通信连接,由于看门狗模块的触发次数表征当前执行引导程序过程中出现异常的次数,在触发次数大于预设次数的情况下,表示当前程序执行过程存在异常或第一应用程序当前不可用,需要对其进行升级或更新处理,此时,生成告警提示信息,并周期性向终端设备发送该告警提示信息,能够使得终端设备使用人员及时知晓单片机存在的问题,以便对单片机进行及时维护,进而保证单片机的正常运行。
需要说明的是,本申请实施例并不限制告警提示信息的具体内容,告警提示信息可以包括存在异常的执行引导程序的日志信息,以及当前看门狗模块对应的触发次数数值,本领域技术人员根据实际需求进行确认即可,在此不多做限制。
另外,参照图3,是本发明另一个实施例提供的在启动引导程序之前单片机的操作步骤流程图,在一实施例中,在执行图1步骤S110之前,本发明实施例的应用程序引导备份方法还可以包括但不限于有以下步骤:
步骤S310,初始化与单片机相连接的全部外接设备;
步骤S320,为引导程序分配第一启动地址,为第一应用程序分配第二启动地址,以及为第二应用程序分配第三启动地址,其中,第一启动地址、第二启动地址和第三启动地址均归属于单片机的Flash地址空间。
需要说明的是,引导程序、第一应用程序以及第二应用程序各自对应的存储地址,均存储于单片机的Flash地址空间,各个不同的存储地址对应不同的起始标志地址,各个起始标志地址表征单片机的Flash地址空间中的不同位置,并且,各个起始标志地址占用Flash地址空间的占用容量大小不同,例如,本实施例中,引导程序的起始标志地址为0x8000000,对应的占用容量大小为32K;第一应用程序的起始标志地址为0x8008000,对应的占用容量大小为200K;第二应用程序的起始标志地址为0x806C000,对应的占用容量大小为200K;本实施例中的Flash地址空间中还可以包括存储配置文件的起始标志地址0x8100000。
需要说明的是,本申请实施例并不限制与单片机相连接的外接设备,可以是CAN设备或串口等。
可以理解的是,初始化与单片机相连接的全部外接设备,为引导程序分配第一启动地址,为第一应用程序分配第二启动地址,以及为第二应用程序分配第三启动地址,其中,第一启动地址、第二启动地址和第三启动地址均归属于单片机的Flash地址空间,能够为单片机执行本申请实施例提供的应用程序引导备份方法提供合适的运行环境。
另外,在一实施例中,外接设备包括CAN设备,参照图4,是本发明另一个实施例提供的启动第二应用程序的步骤流程图,图1所示步骤S140可以包括但不限于有以下步骤:
步骤S410,获取CAN设备输出的CAN数据,并根据预设校验规则对CAN数据进行校验,得到目标CAN数据;
步骤S420,在第三启动地址中写入目标CAN数据;
步骤S430,根据目标CAN数据对第一应用程序进行升级或更新,得到新的第一应用程序;
步骤S440,基于第二启动地址对第一应用程序进行Flash擦除处理,并在第二启动地址写入新的第一应用程序。
可以理解的是,在单片机的外接设备包括CAN设备的情况下,通过获取CAN设备输出的CAN数据,并根据预设校验规则对CAN数据进行校验,得到安全校验后的目标CAN数据,根据该目标CAN数据对第一应用程序进行升级或更新,得到新的第一应用程序,基于第二启动地址对第一应用程序进行Flash擦除处理,并在第二启动地址写入新的第一应用程序,从而保证单片机程序的正常运行。
另外,在一实施例中,参照图5,图5是本申请另一个实施例提供的单片机的模块示意图,在一实施例中,本申请实施例提供了一种单片机500,该单片机500包括:
第一操作模块501,用于启动单片机预设的引导程序对应的第一启动地址,引导程序存储于第一存储地址对应的存储区域中;
第一数据获取模块502,用于获取单片机的看门狗模块的触发次数;
第二操作模块503,在触发次数小于或者等于预设次数的情况下,调用第二启动地址,并启动第二启动地址对应的第一应用程序,其中,第一应用程序存储于第二存储地址对应的存储区域中;
第三操作模块504,用于置位看门狗模块的触发次数;
第四操作模块505,用于在触发次数大于预设次数的情况下,调用第三启动地址,并启动第三启动地址对应的第二应用程序,其中,第二应用程序为第一应用程序对应的备用程序,第二应用程序存储于第三存储地址对应的存储区域中;
第五操作模块506,用于复位看门狗模块的触发次数。
需要说明的是,该单片机的具体实施方式与图1所示方法步骤的具体实施例基本相同,在此不再赘述。
另外,在一实施例中,参照图5,单片机500还包括:
告警模块507,用于在所述触发次数大于预设次数的情况下,生成并周期性发送告警提示信息。
需要说明的是,该单片机的具体实施方式与图2所示方法步骤的具体实施例基本相同,在此不再赘述。
另外,在一实施例中,参照图5,单片机500还包括:
初始化模块508,用于在所述启动所述单片机预设的引导程序对应的第一启动地址之前,初始化与所述单片机相连接的全部外接设备;
Flash地址分配模块509,用于在所述启动所述单片机预设的引导程序对应的第一启动地址之前,为所述引导程序分配所述第一启动地址,为所述第一应用程序分配所述第二启动地址,以及为所述第二应用程序分配所述第三启动地址,其中,所述第一启动地址、所述第二启动地址和所述第三启动地址均归属于所述单片机的Flash地址空间。
需要说明的是,该单片机的具体实施方式与图3所示方法步骤的具体实施例基本相同,在此不再赘述。
另外,在一实施例中,参照图5,单片机500还包括:
第二数据获取模块510,用于获取所述CAN设备输出的CAN数据,并根据预设校验规则对所述CAN数据进行校验,得到目标CAN数据;
第一数据写入模块511,用于在所述第三启动地址中写入所述目标CAN数据;
程序升级模块,用于根据所述目标CAN数据对所述第一应用程序进行升级或更新,得到新的第一应用程序;
第二数据写入模块512,用于基于所述第二启动地址对所述第一应用程序进行Flash擦除处理,并在所述第二启动地址写入所述新的第一应用程序。
需要说明的是,该单片机的具体实施方式与图4所示方法步骤的具体实施例基本相同,在此不再赘述。
另外,参考图6,图6是本发明另一个实施例提供的单片机的结构图,本申请的一个实施例还提供了一种单片机600,该单片机600包括:存储器610、处理器620及存储在存储器610上并可在处理器620上运行的计算机程序。
处理器620和存储器610可以通过总线或者其他方式连接。
实现上述实施例的应用程序引导备份方法所需的非暂态软件程序以及指令存储在存储器610中,当被处理器620执行时,执行上述实施例中的应用程序引导备份方法,例如,执行以上描述的图1中的方法步骤S110至步骤S160、图2中的方法步骤S210、图3中的方法步骤S310至步骤S320和图4中的方法步骤S410至步骤S440。
此外,本申请的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,当计算机可执行指令用于执行上述应用程序引导备份方法,例如,执行以上描述的图1中的方法步骤S110至步骤S160、图2中的方法步骤S210、图3中的方法步骤S310至步骤S320和图4中的方法步骤S410至步骤S440。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。需要说明的是,计算机可读存储介质可以是非易失性,也可以是易失性。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本申请权利要求所限定的范围内。
Claims (10)
1.一种应用程序引导备份方法,应用于单片机,其特征在于,所述方法包括:
启动所述单片机预设的引导程序对应的第一启动地址,所述引导程序存储于第一存储地址对应的存储区域中;
获取所述单片机的看门狗模块的触发次数;
在所述触发次数小于或者等于预设次数的情况下,调用第二启动地址,并启动所述第二启动地址对应的第一应用程序,其中,所述第一应用程序存储于第二存储地址对应的存储区域中;
置位所述看门狗模块的触发次数;
在所述触发次数大于所述预设次数的情况下,调用第三启动地址,并启动所述第三启动地址对应的第二应用程序,其中,所述第二应用程序为所述第一应用程序对应的备用程序,所述第二应用程序存储于第三存储地址对应的存储区域中,所述第一应用程序和所述第二应用程序均为中断服务子程序;
复位所述看门狗模块的触发次数。
2.根据权利要求1所述的应用程序引导备份方法,其特征在于,所述方法还包括:
在所述触发次数大于预设次数的情况下,生成并周期性发送告警提示信息。
3.根据权利要求1所述的应用程序引导备份方法,其特征在于,在所述启动所述单片机预设的引导程序对应的第一启动地址之前,所述方法还包括:
初始化与所述单片机相连接的全部外接设备;
为所述引导程序分配所述第一启动地址,为所述第一应用程序分配所述第二启动地址,以及为所述第二应用程序分配所述第三启动地址,其中,所述第一启动地址、所述第二启动地址和所述第三启动地址均归属于所述单片机的Flash地址空间。
4.根据权利要求3所述的应用程序引导备份方法,其特征在于,所述外接设备包括CAN设备,所述启动所述第三启动地址对应的第二应用程序,包括:
获取所述CAN设备输出的CAN数据,并根据预设校验规则对所述CAN数据进行校验,得到目标CAN数据;
在所述第三启动地址中写入所述目标CAN数据;
根据所述目标CAN数据对所述第一应用程序进行升级或更新,得到新的第一应用程序;
基于所述第二启动地址对所述第一应用程序进行Flash擦除处理,并在所述第二启动地址写入所述新的第一应用程序。
5.一种单片机,其特征在于,包括:
第一操作模块,用于启动所述单片机预设的引导程序对应的第一启动地址,所述引导程序存储于第一存储地址对应的存储区域中;
第一数据获取模块,用于获取所述单片机的看门狗模块的触发次数;
第二操作模块,在所述触发次数小于或者等于预设次数的情况下,将所述第一启动地址调整至第二启动地址,并启动所述第二启动地址对应的第一应用程序,其中,所述第一应用程序存储于第二存储地址对应的存储区域中;
第三操作模块,用于置位所述看门狗模块的触发次数;
第四操作模块,用于在所述触发次数大于所述预设次数的情况下,调用第三启动地址,并启动所述第三启动地址对应的第二应用程序,其中,所述第二应用程序为所述第一应用程序对应的备用程序,所述第二应用程序存储于第三存储地址对应的存储区域中,所述第一应用程序和所述第二应用程序均为中断服务子程序;
第五操作模块,用于复位所述看门狗模块的触发次数。
6.根据权利要求5所述的单片机,其特征在于,还包括:
告警模块,用于在所述触发次数大于预设次数的情况下,生成并周期性发送告警提示信息。
7.根据权利要求5所述的单片机,其特征在于,还包括:
初始化模块,用于在所述启动所述单片机预设的引导程序对应的第一启动地址之前,初始化与所述单片机相连接的全部外接设备;
Flash地址分配模块,用于在所述启动所述单片机预设的引导程序对应的第一启动地址之前,为所述引导程序分配所述第一启动地址,为所述第一应用程序分配所述第二启动地址,以及为所述第二应用程序分配所述第三启动地址,其中,所述第一启动地址、所述第二启动地址和所述第三启动地址均归属于所述单片机的Flash地址空间。
8.根据权利要求7所述的单片机,其特征在于,所述外接设备包括CAN设备,所述单片机还包括:
第二数据获取模块,用于获取所述CAN设备输出的CAN数据,并根据预设校验规则对所述CAN数据进行校验,得到目标CAN数据;
第一数据写入模块,用于在所述第三启动地址中写入所述目标CAN数据;
程序升级模块,用于根据所述目标CAN数据对所述第一应用程序进行升级或更新,得到新的第一应用程序;
第二数据写入模块,用于基于所述第二启动地址对所述第一应用程序进行Flash擦除处理,并在所述第二启动地址写入所述新的第一应用程序。
9.一种单片机,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任意一项所述的应用程序引导备份方法。
10.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机用于执行权利要求1至4任意一项所述的应用程序引导备份方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180990.0A CN116225784B (zh) | 2023-02-27 | 2023-02-27 | 应用程序引导备份方法、单片机、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310180990.0A CN116225784B (zh) | 2023-02-27 | 2023-02-27 | 应用程序引导备份方法、单片机、计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116225784A CN116225784A (zh) | 2023-06-06 |
CN116225784B true CN116225784B (zh) | 2024-04-09 |
Family
ID=86578223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310180990.0A Active CN116225784B (zh) | 2023-02-27 | 2023-02-27 | 应用程序引导备份方法、单片机、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225784B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113196A1 (en) * | 2007-10-27 | 2009-04-30 | Hsun-Yao Jan | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems |
CN102270162A (zh) * | 2011-07-29 | 2011-12-07 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种应用于sparcv8结构计算机的容错引导方法 |
CN103631674A (zh) * | 2012-08-24 | 2014-03-12 | 京信通信系统(中国)有限公司 | 嵌入cpu的fpga及其启动方法 |
US20180088962A1 (en) * | 2016-09-27 | 2018-03-29 | American Megatrends, Inc. | Auto bootloader recovery in bmc |
CN110941516A (zh) * | 2019-12-06 | 2020-03-31 | 深圳市科力锐科技有限公司 | 操作系统还原方法、装置、设备及存储介质 |
-
2023
- 2023-02-27 CN CN202310180990.0A patent/CN116225784B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113196A1 (en) * | 2007-10-27 | 2009-04-30 | Hsun-Yao Jan | Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems |
CN102270162A (zh) * | 2011-07-29 | 2011-12-07 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种应用于sparcv8结构计算机的容错引导方法 |
CN103631674A (zh) * | 2012-08-24 | 2014-03-12 | 京信通信系统(中国)有限公司 | 嵌入cpu的fpga及其启动方法 |
US20180088962A1 (en) * | 2016-09-27 | 2018-03-29 | American Megatrends, Inc. | Auto bootloader recovery in bmc |
CN110941516A (zh) * | 2019-12-06 | 2020-03-31 | 深圳市科力锐科技有限公司 | 操作系统还原方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116225784A (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6230285B1 (en) | Boot failure recovery | |
EP0486304B1 (en) | Initialising computer systems | |
CN108170495B (zh) | 一种bios升级方法、系统、设备及计算机可读存储介质 | |
CN110442473B (zh) | 一种非易失性数据存储方法、装置、电子设备及介质 | |
CN108509215B (zh) | 一种系统软件的更换方法、装置、终端设备及存储介质 | |
CN111158968A (zh) | Bios配置信息自检方法、装置及存储介质 | |
CN114064084A (zh) | Onu的升级管理方法、存储介质、电子装置和onu | |
CN116225784B (zh) | 应用程序引导备份方法、单片机、计算机可读存储介质 | |
CN116521405A (zh) | sd卡状态检测方法、装置、设备及存储介质 | |
CN114237722B (zh) | 一种系统的启动方法、装置、设备及工程车辆 | |
US10698695B2 (en) | Method for intel platform detection of parameters in Flash Rom | |
CN115658152A (zh) | 固件升级方法、固件、电子设备和计算机可读存储介质 | |
CN113114730B (zh) | 升级方法、装置、终端设备及存储介质 | |
CN112052165B (zh) | 一种检测目标函数被调试的方法、系统及存储介质 | |
US7275132B2 (en) | Computing machine with hard stop-tolerant disk file management system | |
CN113672448A (zh) | BootLoader启动流程的监控方法、装置及存储介质 | |
CN111475335A (zh) | 一种数据库快速恢复的方法、系统、终端及存储介质 | |
CN112395121A (zh) | 一种驱动加载的处理方法及装置、存储介质、计算机设备 | |
CN114185606B (zh) | 一种基于嵌入式系统提高系统运行可靠性的方法和装置 | |
US7246206B2 (en) | Method and device for storing a computer program in a program memory of a control unit | |
CN114398107B (zh) | 一种跨领域多方式加载dsp程序的设计方法及通用平台 | |
CN113076225B (zh) | 一种外接存储介质检测方法、装置、设备及存储介质 | |
CN113407217B (zh) | 芯片程序升级方法、通信设备及计算机可读存储介质 | |
GB2471480A (en) | Preventing boot crashes due to new files | |
CN114153481A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |