JP2016099937A - Method for back-up activation processing - Google Patents

Method for back-up activation processing Download PDF

Info

Publication number
JP2016099937A
JP2016099937A JP2014238753A JP2014238753A JP2016099937A JP 2016099937 A JP2016099937 A JP 2016099937A JP 2014238753 A JP2014238753 A JP 2014238753A JP 2014238753 A JP2014238753 A JP 2014238753A JP 2016099937 A JP2016099937 A JP 2016099937A
Authority
JP
Japan
Prior art keywords
program
checksum
update
area
stored
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
JP2014238753A
Other languages
Japanese (ja)
Inventor
善幸 篠原
Yoshiyuki Shinohara
善幸 篠原
亘 田村
Wataru Tamura
亘 田村
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.)
Toshiba Alpine Automotive Technology Inc
Original Assignee
Toshiba Alpine Automotive Technology Inc
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 Toshiba Alpine Automotive Technology Inc filed Critical Toshiba Alpine Automotive Technology Inc
Priority to JP2014238753A priority Critical patent/JP2016099937A/en
Publication of JP2016099937A publication Critical patent/JP2016099937A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

PROBLEM TO BE SOLVED: To activate a program with a back-up program if an abnormality is in an activation program storing region after update of programs.SOLUTION: A program region for storing a program-updating program is set in a first program region and a second program region. The updating program is written into the first program region and a checksum is stored into an update management region, while the updating program is written into the second program region and a checksum is stored into an update management region. A boot program is used for calculating a checksum in processing of a normal activation program. The obtained checksum and the checksum stored in each of the update management regions are compared. If the obtained checksum is not the same as the checksum stored in one of the update management regions, activation is done using the update program stored in the other update management region.SELECTED DRAWING: Figure 5

Description

本発明の実施形態は、バックアップ起動処理方法に関する。   Embodiments described herein relate generally to a backup activation processing method.

プログラムのアップデート中に電源供給が断たれてしまうと、書込みに失敗し、二度と起動できなくなる。これを回避するために、一般的に、Flash ROMに、バックアップ用のプログラムも書き込んでおく手法が採用されている。   If the power supply is interrupted while updating the program, writing will fail and it will not be possible to start again. In order to avoid this, a method of writing a backup program in the Flash ROM is generally adopted.

係る従来手法は、プログラムのアップデート中に電源の瞬断などの異常発生により、最後まで書込み完了できない場合には効果を発揮する。   Such a conventional method is effective when writing cannot be completed to the end due to an abnormality such as a momentary power interruption during program update.

ところが、書込み以降に、静電気等によってFlash ROMのプログラム領域が破損してしまった場合には、バックアッププログラムは有効とならず、二度と起動できなくなる、という問題があった。   However, if the program area of the Flash ROM is damaged due to static electricity or the like after writing, the backup program is not effective and cannot be started again.

通常、起動用のプログラム領域に破損が発生した場合、ブート処理はプログラム領域の破損を検知することができずに、起動用のプログラムを実行し、暴走する恐れがある。   Normally, when the activation program area is damaged, the boot process cannot detect the corruption of the program area and executes the activation program and may run away.

特開2008−40924号公報JP 2008-40924 A

本発明が解決しようとする課題は、プログラムのアップデート後に、起動用プログラム格納領域の異常があっても、バックアップ用プログラムを活用可能とするバックアップ起動処理方法を提供することである。   The problem to be solved by the present invention is to provide a backup activation processing method that makes it possible to utilize a backup program even if there is an abnormality in the activation program storage area after updating the program.

実施形態のバックアップ起動処理方法は、アップデート用プログラムを格納するためのプログラム領域を、第1のプログラム領域と第2のプログラム領域に設定するステップと、前記第1のプログラム領域に前記アップデート用プログラムの書込みの際、第1のプログラム領域用チェックサムを、前記第1のプログラム領域のアップデート管理領域に格納するステップと、前記第2のプログラム領域に前記アップデート用プログラムの書込みの際、第2のプログラム領域用チェックサムを、前記第2のプログラム領域のアップデート管理領域に格納するステップと、ブートプログラムで、通常の起動用のプログラム処理の際のチェックサムを計算するステップと、計算して得られたチェックサムと、各前記アップデート管理領域に格納した前記チェックサムとを比較するステップと、一方の前記アップデート管理領域に格納した前記チェックサムに対する比較結果が不一致の場合、他方の前記アップデート管理領域に格納されている前記アップデート用プログラムを使用して起動するステップとを備える。   The backup activation processing method according to the embodiment includes a step of setting a program area for storing an update program in a first program area and a second program area, and the update program is stored in the first program area. A step of storing a checksum for the first program area in the update management area of the first program area at the time of writing, and a second program at the time of writing the update program in the second program area A step of storing the area checksum in the update management area of the second program area, and a step of calculating a checksum at the time of normal boot program processing by the boot program. Checksum and before storing in each update management area When the comparison result for the checksum stored in one of the update management areas is inconsistent with the step of comparing the checksum, the update program stored in the other update management area is activated. Steps.

プログラム各領域のチェックサム格納後のFlash ROMの配置例を示す図である。It is a figure which shows the example of arrangement | positioning of Flash ROM after the checksum storage of each area | region of a program. ブート時に起動用プログラム(A面の場合)のチェックサム計算後のFlash ROMの配置例を示す図である。It is a figure which shows the example of arrangement | positioning of Flash ROM after the checksum calculation of the starting program (in the case of A surface) at the time of booting. 計算したチェックサムとアップデート管理領域内のチェックサム(A面の場合)の比較を表すFlash ROMの配置例を示す図である。It is a figure which shows the example of arrangement | positioning of Flash ROM showing a comparison with the checksum calculated in the update management area | region (in the case of A surface). アップデート処理の流れを示すフローチャートである(A面の場合)。It is a flowchart which shows the flow of an update process (in the case of A surface). ブート処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a boot process.

以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same portions are denoted by the same reference numerals, and redundant description is omitted.

本実施形態においては、起動時に通常用のプログラム領域に異常がないかチェックサムを利用して確認し、異常の場合にはバックアップ用のプログラムを起動するものである。   In this embodiment, a checksum is used to check whether there is an abnormality in the normal program area at the time of activation, and a backup program is activated if there is an abnormality.

図1は、プログラム各領域のチェックサム格納後のFlash ROMの配置例を示す図である。図1に示すように、プログラムの書込みの際、プログラム領域:A面、プログラム領域:B面に対応させて、各面の管理領域中に、A面用チェックサム、B面用チェックサムを格納しておく。プログラムのアップデート用プログラムを格納するためのプログラム領域を、第1のプログラム領域:A面と第2のプログラム領域:B面に設定する。例えば、プログラム領域A面に書込むアップデート用プログラムと、プログラム領域B面に書込むアップデート用プログラムとは、同じバージョンであってもよい。あるいは、プログラム領域A面に書込むアップデート用プログラムは、プログラム領域B面に書込むアップデート用プログラムよりも1つ前のバージョンであってもよい。後述するように、バージョンの管理は、アップデート管理領域に対するアップデートの回数で行うのが好適である。   FIG. 1 is a diagram illustrating an arrangement example of the Flash ROM after storing the checksum of each program area. As shown in FIG. 1, when writing a program, the checksum for A side and the checksum for B side are stored in the management area of each side corresponding to the program area: A side and the program area: B side. Keep it. Program areas for storing program update programs are set in a first program area: A side and a second program area: B side. For example, the update program written on the program area A side and the update program written on the program area B side may be the same version. Alternatively, the update program to be written on the program area A side may be a version before the update program to be written on the program area B side. As will be described later, the version management is preferably performed by the number of updates to the update management area.

図2は、ブート時に起動用プログラム(A面の場合)のチェックサム計算後のFlash ROMの配置例を示す図である。図2に示すように、ブートプログラムにて、起動用プログラムのチェックサムを計算する。   FIG. 2 is a diagram illustrating an arrangement example of the Flash ROM after the checksum calculation of the startup program (in the case of the A side) at the time of booting. As shown in FIG. 2, the boot program calculates the checksum of the startup program.

図3は、計算したチェックサムとアップデート管理領域内のチェックサム(A面の場合)の比較を表すFlash ROMの配置例を示す図である。図3に示すように、チェックサムの一致を確認する。   FIG. 3 is a diagram showing an arrangement example of the Flash ROM that represents a comparison between the calculated checksum and the checksum in the update management area (in the case of A side). As shown in FIG. 3, a checksum match is confirmed.

<アップデート処理>
図4は、プログラム領域A面のアップデート処理の流れを示すフローチャートである。
<Update process>
FIG. 4 is a flowchart showing the flow of the update process of the program area A surface.

まず、アップデート用のデータを取得する(ステップS401)。   First, update data is acquired (step S401).

次に、チェックサムのデータを取得する(ステップS402)。   Next, checksum data is acquired (step S402).

続いて、アップデート用のデータからチェックサムを算出する(ステップS403)。   Subsequently, a checksum is calculated from the update data (step S403).

次に、算出したチェックサムとチェックサムデータが等しいか否かを判定する(ステップS404)。   Next, it is determined whether or not the calculated checksum is equal to the checksum data (step S404).

等しければ(ステップS404でYes)、A面のプログラム領域を書き換える(ステップS405)。   If they are equal (Yes in step S404), the program area on side A is rewritten (step S405).

次に、A面の管理領域にチェックサムを格納する(ステップS406)。   Next, the checksum is stored in the management area of side A (step S406).

続いて、A面のアップデート管理領域を書き換える(ステップS407)。   Subsequently, the A-side update management area is rewritten (step S407).

次に、ソフトウェアをリセット(ステップS408)した後、ブート処理へ移行する。   Next, after resetting the software (step S408), the process proceeds to boot processing.

一方、ステップS404でNo(算出したチェックサムとチェックサムデータが等しくない)であれば、アップデート処理を終了する。   On the other hand, if No in step S404 (the calculated checksum and the checksum data are not equal), the update process is terminated.

プログラム領域B面も同様の処理を行う。   The same processing is performed on the program area B surface.

<ブート処理>
次に、ブート処理について説明する。図5は、ブート処理の流れを示すフローチャートである。
<Boot process>
Next, the boot process will be described. FIG. 5 is a flowchart showing the flow of the boot process.

まず、A面のアップデート管理領域を確認する(ステップS501)。   First, the update management area on side A is confirmed (step S501).

次に、アップデート時に格納されたA面用チェックサムを管理領域から取得する(ステップS502)。   Next, the A-side checksum stored at the time of update is acquired from the management area (step S502).

続いて、B面のアップデート管理領域を確認する(ステップS503)。   Subsequently, the B side update management area is confirmed (step S503).

次に、アップデート時に格納されたB面用チェックサムを管理領域から取得する(ステップS504)。   Next, the B-side checksum stored at the time of update is acquired from the management area (step S504).

次に、A面のアップデート回数がB面のアップデート回数よりも多いか否かを判定する(ステップS505)。   Next, it is determined whether or not the number of updates on side A is greater than the number of updates on side B (step S505).

A面のアップデート回数がB面のアップデート回数よりも多ければ(ステップS505でYes)、A面を起動プログラム領域に設定する(ステップS506)。   If the number of updates on side A is greater than the number of updates on side B (Yes in step S505), side A is set as the startup program area (step S506).

続いて、A面のチェックサムを算出する(ステップS507)。   Subsequently, the checksum of the A surface is calculated (step S507).

次に、取得したA面用チェックサムと算出したA面のチェックサムが等しいか否かを判定する(ステップS508)。   Next, it is determined whether or not the acquired A-side checksum is equal to the calculated A-side checksum (step S508).

等しければ(ステップS508でYes)、起動プログラム領域の先頭へジャンプする。   If they are equal (Yes in step S508), the process jumps to the top of the startup program area.

一方、等しくなければ(ステップS508でNo)、B面のチェックサムを算出する(ステップS509)。   On the other hand, if they are not equal (No in step S508), the checksum of side B is calculated (step S509).

続いて、取得したB面用チェックサムと算出したB面のチェックサムが等しいか否かを判定する(ステップS510)。   Subsequently, it is determined whether or not the acquired B-side checksum is equal to the calculated B-side checksum (step S510).

等しければ(ステップS510でYes)、起動プログラム領域の先頭へジャンプする。   If they are equal (Yes in step S510), the process jumps to the top of the startup program area.

一方、等しくなければ(ステップS510でNo)、ブートエラーとなる。   On the other hand, if they are not equal (No in step S510), a boot error occurs.

A面のアップデート回数がB面のアップデート回数よりも多くなければ(ステップS505でNo)、B面を起動プログラム領域に設定する(ステップS511)。   If the number of updates on side A is not greater than the number of updates on side B (No in step S505), side B is set as the activation program area (step S511).

続いて、B面のチェックサムを算出する(ステップS512)。   Subsequently, a checksum of the B surface is calculated (step S512).

次に、取得したB面用チェックサムと算出したB面のチェックサムが等しいか否かを判定する(ステップS513)。   Next, it is determined whether or not the acquired B-side checksum is equal to the calculated B-side checksum (step S513).

等しければ(ステップS513でYes)、起動プログラム領域の先頭へジャンプする。   If they are equal (Yes in step S513), the process jumps to the top of the startup program area.

一方、等しくなければ(ステップS513でNo)、A面のチェックサムを算出する(ステップS514)。   On the other hand, if they are not equal (No in step S513), the checksum of the A side is calculated (step S514).

続いて、取得したA面用チェックサムと算出したA面のチェックサムが等しいか否かを判定する(ステップS515)。   Subsequently, it is determined whether or not the acquired A-side checksum is equal to the calculated A-side checksum (step S515).

等しければ(ステップS515でYes)、起動プログラム領域の先頭へジャンプする。   If they are equal (Yes in step S515), the process jumps to the top of the startup program area.

一方、等しくなければ(ステップS515でNo)、ブートエラーとなる。   On the other hand, if they are not equal (No in step S515), a boot error occurs.

本実施形態によれば、アップデート後に、起動用プログラム格納領域の異常があっても、バックアップ用プログラムを起動用プログラムとして活用することができる。   According to the present embodiment, the backup program can be used as the startup program even if there is an abnormality in the startup program storage area after the update.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.

Claims (4)

プログラムのアップデート用プログラムを格納するためのプログラム領域を、第1のプログラム領域と第2のプログラム領域に設定するステップと、
前記第1のプログラム領域に前記アップデート用プログラムの書込みの際、第1のプログラム領域用チェックサムを、前記第1のプログラム領域のアップデート管理領域に格納するステップと、
前記第2のプログラム領域に前記アップデート用プログラムの書込みの際、第2のプログラム領域用チェックサムを、前記第2のプログラム領域のアップデート管理領域に格納するステップと、
ブートプログラムで、通常の起動用のプログラム処理の際のチェックサムを計算するステップと、
計算して得られたチェックサムと、各前記アップデート管理領域に格納した前記チェックサムとを比較するステップと、
一方の前記アップデート管理領域に格納した前記チェックサムに対する比較結果が不一致の場合、他方の前記アップデート管理領域に格納されている前記アップデート用プログラムを使用して起動するステップとを備えるバックアップ起動処理方法。
Setting program areas for storing program update programs in a first program area and a second program area;
Storing the first program area checksum in the update management area of the first program area when the update program is written to the first program area;
Storing the second program area checksum in the update management area of the second program area when the update program is written to the second program area;
In the boot program, calculating a checksum during normal startup program processing;
Comparing the checksum obtained by calculation with the checksum stored in each of the update management areas;
A backup activation processing method comprising: a step of using the update program stored in the other update management area when the comparison result for the checksum stored in the one update management area does not match.
前記第1のプログラム領域に書込む前記アップデート用プログラムと、前記第2のプログラム領域に書込む前記アップデート用プログラムとは、同じバージョンである請求項1に記載のバックアップ起動処理方法。   2. The backup activation processing method according to claim 1, wherein the update program written in the first program area and the update program written in the second program area are the same version. 前記第1のプログラム領域に書込む前記アップデート用プログラムは、前記第2のプログラム領域に書込む前記アップデート用プログラムよりも1つ前のバージョンである請求項1に記載のバックアップ起動処理方法。   2. The backup activation processing method according to claim 1, wherein the update program to be written to the first program area is a version previous to the update program to be written to the second program area. 前記バージョンの管理は、前記アップデート管理領域に格納されるアップデートの回数で行うとする請求項2または請求項3に記載のバックアップ起動処理方法。   The backup activation processing method according to claim 2 or 3, wherein the version is managed by the number of updates stored in the update management area.
JP2014238753A 2014-11-26 2014-11-26 Method for back-up activation processing Pending JP2016099937A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014238753A JP2016099937A (en) 2014-11-26 2014-11-26 Method for back-up activation processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014238753A JP2016099937A (en) 2014-11-26 2014-11-26 Method for back-up activation processing

Publications (1)

Publication Number Publication Date
JP2016099937A true JP2016099937A (en) 2016-05-30

Family

ID=56077903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014238753A Pending JP2016099937A (en) 2014-11-26 2014-11-26 Method for back-up activation processing

Country Status (1)

Country Link
JP (1) JP2016099937A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825405A (en) * 2019-10-24 2020-02-21 苏州海鹏科技有限公司 Inverter program updating method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825405A (en) * 2019-10-24 2020-02-21 苏州海鹏科技有限公司 Inverter program updating method

Similar Documents

Publication Publication Date Title
US10701084B2 (en) Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices
CN106775610B (en) Electronic equipment starting method and electronic equipment
JP5831271B2 (en) Method and system for starting refresh operation of semiconductor nonvolatile memory device
JP2018037059A5 (en)
US8812910B2 (en) Pilot process method for system boot and associated apparatus
CN111078662B (en) Block chain data storage method and device
CN103761124B (en) Embedded Linux system for protection supervisory equipment starts method
CN104572206A (en) Application program self updating and backup recovery method
JP2012058879A (en) Operating system boot management device
US20180373524A1 (en) Serial bootloading of power supplies
JP6482211B2 (en) Information processing apparatus, control method thereof, and program
US8930318B1 (en) Systems and methods for handling interruptions while updating of an electronic device
WO2015184732A1 (en) Bootstrap storage method, bootstrap fault recovery method and device, and computer storage medium
JP2013257690A5 (en) Image forming apparatus
US20140258699A1 (en) Boot fault tolerant device and method thereof
JP2016099937A (en) Method for back-up activation processing
CN105814545A (en) Electronic device
CN104184614B (en) A kind of configuration rollback method and device
JP6258824B2 (en) Communication device and communication device log storage method
JP2016110503A (en) Micro controller
WO2021012170A1 (en) Firmware booting method and device, and computer-readable storage medium
JP2014099097A (en) Information processing device, information processing method, and computer program
JP6025165B2 (en) Update system for control program of semiconductor manufacturing equipment
JP6635195B2 (en) Information processing apparatus and application management method
JP6011687B1 (en) Storage device and control method thereof