CN115718610A - Reliable method for updating application program of single chip microcomputer - Google Patents
Reliable method for updating application program of single chip microcomputer Download PDFInfo
- Publication number
- CN115718610A CN115718610A CN202211506169.5A CN202211506169A CN115718610A CN 115718610 A CN115718610 A CN 115718610A CN 202211506169 A CN202211506169 A CN 202211506169A CN 115718610 A CN115718610 A CN 115718610A
- Authority
- CN
- China
- Prior art keywords
- upgrading
- area
- app
- identifier
- backup
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
The invention discloses a reliable method for updating an application program of a single chip microcomputer, which comprises the following steps: s1: an upgrade identifier 1, an upgrade identifier 2, an upgrade identifier 3 and a lifting identifier 4 are preset and respectively correspond to a communication mode, a copy mode, a recovery mode and a backup mode; s2: initializing hardware, checking whether an upgrading identifier exists, and if the upgrading identifier exists, upgrading the software according to an upgrading mode corresponding to the upgrading identifier; s3: if the upgrade identifier is not checked in the S2, whether the app is normal or not is checked, and if the app is checked to be abnormal, the recovery mode is directly adopted for software upgrade; s4: and if the program verification of the backup area is abnormal, copying the normal program from the running area to the backup area to complete the program backup. The method is stable and reliable, and can automatically recover the firmware of the previous version when the file cannot run due to power failure or interruption caused by other reasons in the upgrading process, thereby ensuring the normal running of the software.
Description
Technical Field
The invention relates to the technical field of upgrading of single-chip microcomputer application programs, in particular to a reliable method for updating the single-chip microcomputer application programs.
Background
Embedded application software refers to system software and application software that are embedded within a dedicated computer system that performs independent functions. The embedded system has expandability in the application process, and the expandable equipment of the embedded system is roughly divided into three parts, wherein a single chip Microcomputer (MCU) is a core part, and a control function of a program is realized by combining a CPU device and peripheral hardware equipment in the system. In the specific application process, the CPU device is connected with a peripheral device of the system through an SPI (serial peripheral interface) to realize data information exchange between the CPU and the single chip microcomputer. The data information module is used for realizing information transmission between the single chip microcomputer and the peripheral hardware system, the application of the single chip microcomputer in the system can realize functional expansion through interfaces such as an I/O port, and functional conversion is realized under the combined action of the single chip microcomputer and the peripheral hardware system.
In practical use, due to the continuous change of the requirements of customers and the continuous change of application environments, software upgrading is difficult to avoid, and the conventional software upgrading methods of the MCU include the following methods:
1)ICP-(In-circuit programmer)
ICP indicates a mode in which a program is programmed in a circuit, and a program is not required in an MCU, and a program storage region can be programmed by directly powering on the MCU, such as JTAG or SWD used at ordinary times. The method is generally used in the process of development or production before factory shipment, and the method needs a special downloading tool and has limitation in application.
2)ISP-(In-system programer)
The ISP indicates that the system is programmed, and the MCU is programmed through a serial programming interface dedicated to the MCU, that is, the MCU needs to have external operating conditions, such as a crystal oscillator, etc., for example, stm32 used at ordinary times, sets a corresponding start mode by setting a boot pin, and then upgrades an internal Flash through a serial port, etc., so that a manufacturer may solidify a BootLoader program inside a chip, but this method cannot be used if hardware is not a solidified communication method or power control pins are different, and has the problems of being not universal, being unable to customize communication pins, etc., and is currently rarely used.
3)IAP-(In-application programer)
The IAP represents in application programming, is equivalent to customizing a bootstrap program, CAN realize various upgrading modes such as a serial port, a CAN, an Ethernet and the like by programming design, is very flexible, is a more popular mode used in the industry at present, and as shown in figure 1, for a common application case of the upgrading method, the method has two defects, namely, firstly, the updating firmware is to directly erase the original flash2 data, if the upgrading process is interrupted through a communication port after the erasing, the automatic recovery cannot be realized, and the upgrading is needed again; secondly, if the version is updated, the version cannot be restored without the original version, and the use is very inconvenient.
Disclosure of Invention
The invention aims to provide a reliable method for updating an application program of a single chip microcomputer, which is stable and reliable, can automatically recover to the firmware of the previous version when a file cannot run due to power failure or interruption of other reasons or upgrading errors in the upgrading process, ensures that software can run normally, has multiple modes for upgrading, can be freely selected by a user according to actual requirements, and has strong universality.
In order to realize the purpose, the following technical scheme is adopted:
a reliable method for updating an application program of a single chip microcomputer comprises the following steps:
s1: an upgrade identifier 1, an upgrade identifier 2, an upgrade identifier 3 and a lifting identifier 4 are preset, wherein the upgrade identifier 1 indicates that software upgrade is performed in a communication mode, the lifting identifier 2 indicates that software upgrade is performed in a copy mode, the upgrade identifier 3 indicates that software upgrade is performed in a recovery mode, and the upgrade identifier 4 indicates that software upgrade is performed in a backup mode;
s2: initializing hardware, checking whether an upgrading identifier exists or not, and if the upgrading identifier exists and is one of the upgrading identifiers S1, upgrading the software according to an upgrading mode corresponding to the upgrading identifier;
s3: if the upgrade identification is not checked in the S2, verifying whether the app is normal, if the app is abnormal, directly adopting a recovery mode to upgrade the software, and if the app is normal, verifying whether the program of the backup area is normal;
s4: and if the program verification of the backup area is abnormal, copying the normal program from the running area to the backup area to complete the program backup.
Further, the software upgrading method in the communication mode specifically includes the following steps:
s11: sending an upgrading instruction to the app so that the app jumps to a boot area to run a boot program BootLoader;
s12: directly writing the firmware data into an operation area of the internal flash through a communication interface;
s13: and after the firmware is downloaded, verifying the firmware data of the operation area, if the verification is successful, jumping to the operation area to operate the app, and if the verification is failed, restoring the original firmware from the backup area of the external flash.
Further, the software upgrading method in the copy mode specifically includes the following steps:
s11: sending an upgrading instruction to the app, and directly writing the firmware data into an external flash through a communication interface;
s12: after the firmware is downloaded, checking firmware data in the external flash, and if the checking is successful, jumping to a boot area to run a boot loader;
s13: copying firmware data from an external flash through a BootLoader of a bootstrap program, and writing the firmware data into an internal flash;
s14: and after the writing is finished, verifying the firmware data in the internal flash, if the verification is successful, jumping to the operation area to operate the app, and if the verification is failed, restoring the original firmware from the backup area of the external flash.
Further, the software upgrading method in the recovery mode specifically includes the following steps:
s11: copying firmware data from a backup area of an external flash to an internal flash directly;
s12: and after the copying is finished, checking the firmware data in the internal flash, and if the checking is successful, jumping to the running area to run the app.
Further, the backup mode includes an automatic backup mode and a manual backup mode.
Further, the software upgrading method in the automatic backup mode specifically includes the following steps:
s51: checking whether the data in the parameter area in the internal flash is correct or not, and if not, backing up the app data of the current running area to a backup area of the external flash;
s52: and checking the firmware data in the external flash, if the checking is successful, storing the checked parameter data into a parameter area in the internal flash, and jumping to a running area to run the app.
Further, the software upgrading method in the manual backup mode specifically includes the following steps:
s51: sending a backup instruction to the app to enable the app to jump to a boot area to run a boot loader;
s52: copying the firmware data of the running area to an external flash;
s53: and after the copying is finished, checking the firmware data of the internal flash, and after the checking is successful, jumping to the running area to run the app.
Further, the communication interface is any one of the following interfaces: UART communication interface, 485 communication interface, CAN communication interface.
By adopting the scheme, the invention has the beneficial effects that:
the method is stable and reliable, in the upgrading process, due to outage or interruption of other reasons or upgrading errors, the file cannot run, the file can be automatically recovered to be the firmware of the previous version, normal running of software is guaranteed, the upgrading mode is multiple, users can freely select the upgrading mode according to actual requirements, and universality is high.
Drawings
FIG. 1 is a schematic block diagram of a conventional IAP software upgrade;
FIG. 2 is a schematic block diagram of the present invention;
FIG. 3 is a schematic flow chart of the present invention;
Detailed Description
The invention is described in detail below with reference to the figures and the specific embodiments.
Referring to fig. 2 to 3, the invention provides a reliable method for updating an application program of a single chip microcomputer, which comprises the following steps:
s1: an upgrade identifier 1, an upgrade identifier 2, an upgrade identifier 3 and a lifting identifier 4 are preset, wherein the upgrade identifier 1 indicates that software upgrade is performed in a communication mode, the lifting identifier 2 indicates that software upgrade is performed in a copy mode, the upgrade identifier 3 indicates that software upgrade is performed in a recovery mode, and the upgrade identifier 4 indicates that software upgrade is performed in a backup mode;
s2: initializing hardware, checking whether an upgrading identifier exists or not, and if the upgrading identifier exists and is one of the upgrading identifiers S1, upgrading the software according to an upgrading mode corresponding to the upgrading identifier;
s3: if the upgrade identification is not checked in the S2, verifying whether the app is normal, if the app is abnormal, directly adopting a recovery mode to upgrade the software, and if the app is normal, verifying whether the program of the backup area is normal;
s4: and if the program verification of the backup area is abnormal, copying the normal program from the running area to the backup area to complete the program backup.
The software upgrading method in the communication mode specifically comprises the following steps:
s11: sending an upgrading instruction to the app so that the app jumps to a boot area to run a boot program BootLoader;
s12: directly writing the firmware data into an operation area of the internal flash through a communication interface;
s13: and after the firmware is downloaded, verifying the firmware data of the operation area, if the verification is successful, jumping to the operation area to operate the app, and if the verification is failed, restoring the original firmware from the backup area of the external flash.
The software upgrading method of the copy mode specifically comprises the following steps:
s11: sending an upgrading instruction to the app, and directly writing the firmware data into the external flash through a communication interface;
s12: after the firmware is downloaded, checking firmware data in the external flash, and if the checking is successful, jumping to a boot area to run a boot loader;
s13: copying firmware data from an external flash through a BootLoader of a bootstrap program, and writing the firmware data into an internal flash;
s14: and after the writing is finished, verifying the firmware data in the internal flash, if the verification is successful, jumping to the operation area to operate the app, and if the verification is failed, restoring the original firmware from the backup area of the external flash.
The software upgrading method of the recovery mode specifically comprises the following steps:
s11: copying firmware data from a backup area of an external flash to an internal flash directly;
s12: and after the copying is finished, checking the firmware data in the internal flash, and if the checking is successful, jumping to the running area to run the app.
The backup mode includes an automatic backup mode and a manual backup mode.
The software upgrading method in the automatic backup mode specifically comprises the following steps:
s51: checking whether the data in the parameter area in the internal flash is correct or not, and if the data in the parameter area in the internal flash is incorrect, backing up the app data in the current running area to a backup area of the external flash;
s52: and checking the firmware data in the external flash, if the checking is successful, storing the checked parameter data into a parameter area in the internal flash, and jumping to a running area to run the app.
The software upgrading method in the manual backup mode specifically comprises the following steps:
s51: sending a backup instruction to the app to enable the app to jump to a boot area to run a boot program BootLoader;
s52: copying the firmware data of the running area to an external flash;
s53: and after the copying is finished, checking the firmware data of the internal flash, and after the checking is successful, jumping to the running area to run the app.
The communication interface is any one of the following interfaces: UART communication interface, 485 communication interface, CAN communication interface.
The working principle of the invention is as follows:
continuing to refer to fig. 2-3, to illustrate this upgrade, the following concepts are introduced:
flash: one type of memory chip, which can modify the data in it by a specific program, is called flash memory for short;
firmware: the program is written into an EEPROM (electrically erasable programmable read-only memory, and a memory chip with data not lost after power failure), the firmware of the embedded MCU is a program for operating the whole system, and the memory format is generally hex and bin;
internal flash: in particular to an MCU internal flash which is divided into a boot area (storing a boot loader), an operation area (storing an application program app), and a parameter area (storing a mark of an upgrading process, firmware length, firmware verification and the like);
external flash: and the MCU external memory is divided into an upgrading area and a backup area.
In this embodiment, the upgrade flag is used to record external firmware data, so as to write the upgrade mode of the internal flash of the MCU into the memory, and four kinds of upgrade flags and multiple kinds of completion flags are set as shown in the following table.
TABLE 1 upgrade identification Table
And (3) communication mode: the app receives the upgrading instruction, records an upgrading identifier, and jumps to a boot area to run a BootLoader; then, the firmware data is directly written into the internal flash through a communication interface (a UART communication interface, a 485 communication interface, a CAN communication interface and the like); and finishing the firmware downloading, checking the firmware data of the operation area, if the check is passed, saving the finishing identifier, then jumping to the operation area to run the app, and if the check is failed, restoring the original firmware from the backup area of the external flash.
Copy mode: the app receives the upgrading instruction, enters an upgrading state, and directly writes the firmware data into the external flash through communication interfaces (a UART communication interface, a 485 communication interface, a CAN communication interface and the like); after the firmware is downloaded, checking the firmware data of the external flash, if the firmware data passes the checking, storing an upgrading identifier, and then jumping to a boot area to run a BootLoader; copying firmware data from an external flash to write into an internal flash by the BootLoader according to the upgrading identifier; and after the writing is finished, checking the firmware data of the internal flash, if the checking is passed, storing a finishing identifier, jumping to the operation area to run the app, and if the checking is failed, restoring the original firmware from the backup area.
And (3) recovery mode: after upgrading fails in other modes, copying firmware from a backup area of the external flash to the internal flash according to an upgrading failure completion identifier; and after the copying is finished, checking the firmware data of the internal flash, if the checking is passed, storing a finishing identifier, and jumping to a running area to run the app.
A backup mode: the method is divided into automatic backup and manual backup.
Automatic backup mode: and electrifying for the first time to check whether the backup check of the parameter area of the internal flash is correct, if not, backing up the app data of the current operation area to the backup area of the external flash, checking the firmware data of the external flash, if the check is passed, storing the completion identifier, then storing the completion identifier, the firmware length and the firmware check to the parameter area of the internal flash, and jumping to the operation area to operate the app.
Manual backup mode: the app receives the backup instruction, records the upgrade identifier, and jumps to a boot area to run a BootLoader; copying the firmware data of the running area to an external flash, verifying the firmware data of the internal flash after copying is completed, if verification is passed, storing a completion identifier, and jumping to the running area to run the app.
The upgrading method is stable and reliable, in the upgrading process, due to outage or interruption of other reasons or upgrading errors, files cannot run, the files can be automatically recovered to be the firmware of the previous version, normal running of software is guaranteed, the upgrading mode is in multiple modes, the common mode is a copy mode, the upgrading is directly carried out in the running of application programs, namely the original functions are continued (user experience is good), after data downloading is completed, the boot area is jumped to, and the boot program is run to complete software updating.
The present invention is not limited to the above preferred embodiments, and any modifications, equivalent substitutions and improvements made within the spirit and principle of the present invention should be included in the protection scope of the present invention.
Claims (8)
1. A reliable method for updating an application program of a single chip microcomputer is characterized by comprising the following steps:
s1: an upgrade identifier 1, an upgrade identifier 2, an upgrade identifier 3 and a lifting identifier 4 are preset, wherein the upgrade identifier 1 indicates that software upgrade is performed in a communication mode, the lifting identifier 2 indicates that software upgrade is performed in a copy mode, the upgrade identifier 3 indicates that software upgrade is performed in a recovery mode, and the upgrade identifier 4 indicates that software upgrade is performed in a backup mode;
s2: initializing hardware, checking whether an upgrading identifier exists or not, and if the upgrading identifier exists and is one of the upgrading identifiers S1, upgrading the software according to an upgrading mode corresponding to the upgrading identifier;
s3: s2, if the upgrading identification is not checked, verifying whether the app is normal or not, if the app is abnormal, directly adopting a recovery mode to upgrade the software, and if the app is normal, verifying whether the program of the backup area is normal or not;
s4: and if the program verification of the backup area is abnormal, copying the normal program from the running area to the backup area to complete the program backup.
2. The method for reliably updating the application program of the single chip microcomputer according to claim 1, wherein the method for upgrading the software in the communication mode specifically comprises the following steps:
s11: sending an upgrading instruction to the app so that the app jumps to a boot area to run a boot program BootLoader;
s12: directly writing the firmware data into an operation area of an internal flash through a communication interface;
s13: and after the firmware is downloaded, verifying the firmware data of the operation area, if the verification is successful, jumping to the operation area to operate the app, and if the verification is failed, restoring the original firmware from the backup area of the external flash.
3. The method for reliably updating the application program of the single chip microcomputer according to claim 1, wherein the software upgrading method in the copy mode specifically comprises the following steps:
s11: sending an upgrading instruction to the app, and directly writing the firmware data into an external flash through a communication interface;
s12: after the firmware is downloaded, checking firmware data in the external flash, and if the checking is successful, jumping to a boot area to run a boot loader;
s13: copying firmware data from an external flash through a BootLoader of a bootstrap program, and writing the firmware data into an internal flash;
s14: and after the writing is finished, verifying the firmware data in the internal flash, if the verification is successful, jumping to the operation area to operate the app, and if the verification is failed, restoring the original firmware from the backup area of the external flash.
4. The method for reliably updating the application program of the single chip microcomputer according to claim 1, wherein the software upgrading method in the recovery mode specifically comprises the following steps:
s11: copying firmware data from a backup area of an external flash to an internal flash directly;
s12: and after the copying is finished, checking the firmware data in the internal flash, and if the checking is successful, jumping to the running area to run the app.
5. The method for reliable single-chip application updating of claim 1 wherein the backup modes include an automatic backup mode and a manual backup mode.
6. The method for reliably updating the application program of the single chip microcomputer according to claim 5, wherein the software upgrading method in the automatic backup mode specifically comprises the following steps:
s51: checking whether the data in the parameter area in the internal flash is correct or not, and if not, backing up the app data of the current running area to a backup area of the external flash;
s52: and checking the firmware data in the external flash, if the checking is successful, storing the checked parameter data into a parameter area in the internal flash, and jumping to a running area to run the app.
7. The method for reliably updating the application program of the single chip microcomputer according to claim 5, wherein the software upgrading method in the manual backup mode specifically comprises the following steps:
s51: sending a backup instruction to the app to enable the app to jump to a boot area to run a boot program BootLoader;
s52: copying the firmware data of the running area to an external flash;
s53: and after the copying is finished, checking the firmware data of the internal flash, and after the checking is successful, jumping to the running area to run the app.
8. The method for reliably updating the application program of the single chip microcomputer according to any one of claims 2 or 3, wherein the communication interface is any one of the following interfaces: UART communication interface, 485 communication interface, CAN communication interface.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506169.5A CN115718610A (en) | 2022-11-28 | 2022-11-28 | Reliable method for updating application program of single chip microcomputer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211506169.5A CN115718610A (en) | 2022-11-28 | 2022-11-28 | Reliable method for updating application program of single chip microcomputer |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115718610A true CN115718610A (en) | 2023-02-28 |
Family
ID=85256838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211506169.5A Pending CN115718610A (en) | 2022-11-28 | 2022-11-28 | Reliable method for updating application program of single chip microcomputer |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115718610A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130639A (en) * | 2023-10-26 | 2023-11-28 | 江苏华鲲振宇智能科技有限责任公司 | BMC cluster management single-board MCU firmware upgrading method and system |
CN117149242A (en) * | 2023-11-01 | 2023-12-01 | 深圳市杰美康机电有限公司 | Driver batch upgrading method and device |
CN117932625A (en) * | 2024-03-25 | 2024-04-26 | 慧翰微电子股份有限公司 | Upgrading method and device of embedded equipment, electronic equipment and storage medium |
-
2022
- 2022-11-28 CN CN202211506169.5A patent/CN115718610A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117130639A (en) * | 2023-10-26 | 2023-11-28 | 江苏华鲲振宇智能科技有限责任公司 | BMC cluster management single-board MCU firmware upgrading method and system |
CN117130639B (en) * | 2023-10-26 | 2024-03-08 | 江苏华鲲振宇智能科技有限责任公司 | BMC cluster management single-board MCU firmware upgrading method and system |
CN117149242A (en) * | 2023-11-01 | 2023-12-01 | 深圳市杰美康机电有限公司 | Driver batch upgrading method and device |
CN117149242B (en) * | 2023-11-01 | 2024-02-23 | 深圳市杰美康机电有限公司 | Driver batch upgrading method and device |
CN117932625A (en) * | 2024-03-25 | 2024-04-26 | 慧翰微电子股份有限公司 | Upgrading method and device of embedded equipment, electronic equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115718610A (en) | Reliable method for updating application program of single chip microcomputer | |
CN101329632B (en) | Method and apparatus for starting CPU by BOOT | |
KR100506203B1 (en) | Booting and boot code update method and system thereof | |
TWI384367B (en) | System of updating firmware and method thereof | |
KR101427755B1 (en) | Device and method for firmware upgrade using usb | |
TWI382346B (en) | Computer system with dual bios protection mechanism and control method of the same | |
US20110302572A1 (en) | Embedded network device and firmware upgrading method | |
WO2020062887A1 (en) | Firmware upgrading method and system based on flash micro-controller, and flash micro-controller | |
JP3629517B2 (en) | A boot device switching method for an information processing apparatus. | |
CN102945173A (en) | User program on-line upgrading system and method | |
CN101373451A (en) | Computer system for protecting double-basic input /output system program and control method thereof | |
CN111651174A (en) | Method and system for remotely upgrading MCU (microprogrammed control Unit) program | |
CN108345464A (en) | A kind of the startup method and Android vehicle device of Android system | |
WO2015184732A1 (en) | Bootstrap storage method, bootstrap fault recovery method and device, and computer storage medium | |
CN111736882B (en) | Remote upgrading method of DSP program | |
CN108664275A (en) | Method, system and the storage medium of backup configuration parameter | |
JP2005284902A (en) | Terminal device, control method and control program thereof, host device, control method and control program thereof, and method, system, and program for remote updating | |
CN116909611A (en) | Electronic device firmware updating method, cleaning device and storage medium | |
WO2022199622A1 (en) | Method for running startup program of electronic device, and electronic device | |
CN110377303A (en) | Method and its equipment based on spare memory area mode upgrade procedure | |
CN113467797B (en) | Program updating method, device and system and computer readable storage medium | |
CN211427090U (en) | Micro control unit device | |
CN111045709B (en) | Firmware upgrading method and firmware upgrading device | |
CN113778485A (en) | System operation method and device of electronic chip, electronic chip and storage medium | |
CN118394393B (en) | IO module firmware updating method based on EtherCat coupler |
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 |