KR20080023841A - The method of firmware upgrade and automatic firmware recovery system - Google Patents

The method of firmware upgrade and automatic firmware recovery system Download PDF

Info

Publication number
KR20080023841A
KR20080023841A KR1020060087919A KR20060087919A KR20080023841A KR 20080023841 A KR20080023841 A KR 20080023841A KR 1020060087919 A KR1020060087919 A KR 1020060087919A KR 20060087919 A KR20060087919 A KR 20060087919A KR 20080023841 A KR20080023841 A KR 20080023841A
Authority
KR
South Korea
Prior art keywords
firmware
area
step
checksum
upgrade
Prior art date
Application number
KR1020060087919A
Other languages
Korean (ko)
Inventor
윤성진
Original Assignee
카시와야마 토요히테
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 카시와야마 토요히테 filed Critical 카시와야마 토요히테
Priority to KR1020060087919A priority Critical patent/KR20080023841A/en
Publication of KR20080023841A publication Critical patent/KR20080023841A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/109Sector level checksum or ECC, i.e. sector or stripe level checksum or ECC in addition to the RAID parity calculation

Abstract

A method and a system for upgrading firmware and recovering the damaged firmware automatically are provided to upgrade the firmware and automatically recover the firmware damaged during upgrade by dividing a non-volatile memory for storing the firmware into a firmware area and a temporary firmware area, storing the new firmware to the temporary firmware area, and copying again the new firmware to the firmware area when the firmware is upgraded. A non-volatile memory(20) comprises a boot loader area(21) storing a program for loading a system, a plurality of firmware areas(22) storing an OS(Operating System) and necessary applications, and a temporary firmware area(23). The temporary firmware area stores original or new firmware temporarily when the firmware stored in the firmware area is upgraded or recovered. A RAM enables a controller to execute the firmware by loading the firmware stored in the firmware area. The boot loader area includes a checksum of the firmware areas and integrity of the firmware area is checked by comparing the checksum stored in the boot loader area with the checksum stored in a predetermined area of the non-volatile memory.

Description

펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템 및 방법{The method of firmware upgrade and automatic firmware recovery system} Firmware upgrades and automatic repair damaged firmware, system and method {The method of firmware upgrade and automatic firmware recovery system}

도 1은 본 발명에 따른 시스템의 구성을 나타낸 구성도, Figure 1 is a block diagram showing the configuration of a system according to the invention,

도 2는 본 발명에 따른 시스템의 메모리부 구조를 나타낸 구성도, Figure 2 is a configuration showing a memory structure of the system according to the invention,

도 3은 본 발명에 따른 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법의 흐름을 개락적으로 나타낸 순서도, 3 is a flowchart of a firmware upgrade, damage the flow of the firmware auto repair method according to the invention with one rakjeok,

도 4는 본 발명에 따른 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법의 흐름을 상세히 나타낸 순서도, Flowchart Figure 4 illustrates the firmware upgrade the firmware of the corrupted flow auto repair method according to the invention in detail,

<도면의 주요 부호에 대한 부호의 설명> <Description of the Related sign of the drawings>

10 : 제어부 20 : 비휘발성 메모리부 10: control unit 20: non-volatile memory

21 : 부트로더 영역 22 : 펌웨어 영역 21: 22 bootloader area: Firmware Area

23 : 임시 펌웨어 영역 30 : 메모리(RAM) 23: temporary firmware area 30: Memory (RAM)

40 : 인터페이스 40: Interface

본 발명은 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법 및 시스템에 관한 것으로, 좀 더 상세하게는 펌웨어가 저장되어 있는 비휘발성 메모리부를 펌웨어 영역과 임시 펌웨어 영역으로 분할 구비되고 새로운 펌웨어를 업그레이드를 할 때 임시 펌웨어 영역에 먼저 저장한 후 펌웨어 영역으로 복사하는 방법과 펌웨어 업그레이드 도중 손상된 펌웨어를 자동으로 복구하기 위해서 먼저 펌웨어 영역의 무결성 확인과 복사가 완료되지 않은 펌웨어를 확인한 후 복사가 완료되지 않은 펌웨어가 존재하면 임시 펌웨어 영역에서 복사할 펌웨어가 존재하는지 확인하여 존재하면 펌웨어 영역으로 복사가 되지 않은 펌웨어를 복사한 후 시스템을 재부팅(Rebooting)하여 자동으로 손상된 펌웨어를 복구하는 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스 When the present invention relates to a firmware upgrade with compromised firmware automatic recovery method and system, more particularly, it is provided divided into a firmware area and the temporary firmware area parts non-volatile memory where the firmware is stored to upgrade new firmware temporary firmware If you order after saving the first in the region by copying the firmware area and during the firmware upgrade corrupted firmware to automatically recover the first is not to copy the firmware after confirming the non-integrity check and a copy of the firmware area is not completed, the firmware present temporary exists to make sure to copy the firmware from the firmware area exists when the firmware area after copying is not copying the firmware, reboot the system (rebooting) to automatically restore the firmware upgrade automatically repair a corrupted firmware and the system firmware is damaged 및 방법에 관한 것이다. And a method.

현재사회에 들어와서는 카메라, 휴대폰, MP3 Player 등과 같은 다양한 임베디드 시스템(embedded system)이 접목된 디지털기기들은 제어부(중앙처리장치 ; CPU)와 메모리부 및 상기 메모리부에 펌웨어(firmware)라 불리는 시스템 운영 프로그램이 내장하고 있다. Come in the current society are a variety of embedded systems (embedded system) is combined with other digital devices are control, such as cameras, cell phones, MP3 Player (central processing unit; CPU) and a memory unit and system called firmware (firmware) in the memory unit the operational program has been built.

특히, 이러한 장치들은 시스템의 기능 확장과 문제 해결을 위해 펌웨어를 외부에서 업그레이드 할 수 있도록 하고 있다. In particular, these devices have the ability to expand and troubleshooting of the system so you can upgrade the firmware on the outside. 또한 일반 사용자에 의한 임베디드 기기의 펌웨어 업그레이드는 기기의 문제를 사용자 스스로 해결 하도록 함으로써 생산 업체의 유지 보수비용을 줄일 수 있는 장점이 있다. In addition, firmware upgrades of the embedded device by the end user has the advantage of reducing the maintenance costs of manufacturers by allowing users themselves solve the problem of equipment.

그러나 펌웨어는 시스템 운영에 직접적인 영향을 미치는 프로그램이기 때문에 업그레이드하는 과정은 상당한 주의를 요하게 되며, 만약 실수나 사고로 인해 업그레이드를 마치지 못했을 경우 기기가 동작되지 않는 심각한 문제가 발생된다. However, the firmware upgrade process because a direct impact on the operating system program is yohage considerable attention, is a serious problem occurs if the device does not work if not have completed the upgrade due to a mistake or an accident.

실제로 펌웨어 업그레이드 문제로 인한 임베디드 시스템이 접목된 기기의 고장이 빈번하게 발생되기 때문에 많은 제품들이 사용자의 직접 업그레이드 조작을 권장하지 않거나 강한 경고를 하는 실정이다. In fact, many because the failure of embedded systems due to the firmware upgrade issues occur frequently incorporate equipment products are a strong warning that the situation does not encourage direct upgrade your control.

이러한 문제점을 해결하기 위한 대표적인 기술이 원본 펌웨어를 비휘발성 메모리에 따로 보관하고 있다가 문제가 발생할 경우 스위치 조작에 의해 원본 펌웨어를 사용하도록 하는 방법이 있다. The typical technique for solving these problems, there is a method to use the original firmware by a switch operation when the cause problems with the original firmware and store it separately in a non-volatile memory. 상술한 방법은 펌웨어 유실 시 응급조치로써 문제를 해결할 수 있는 장점은 있지만 스위치 조작에 의한 응급조치와 다시 펌웨어를 복구하기 위한 불편함으로 인해 일반 사용자가 조작하기 어려운 문제점이 있다. The above method is advantageous in that you can solve the problem by emergency measures when the firmware is lost, but it is difficult for the average user inconvenience due to the operation to repair the firmware and emergency action by the switch.

또한, 이동통신 단말기에 펌웨어를 다운로드 도중에 끊겨 에러(Error)가 발생했을 경우 고가의 특수 장비인 JTAG(Joing Action Group)장비를 이용하여 복구해야만 했으나, JTAG 장비는 PCB와 IC등을 테스트하기 위한 장비로, 부가 기능으로 핀(Pin)대 핀(Pin)방식으로 강제로 데이터를 기록하는 기능을 가지고 있으며, 이 기능을 이용해 펌웨어를 이동통신 단말기의 메모리에 강제로 기록하여 복구한다. Further, if the cut off during the download firmware to the mobile terminal error (Error) is generated, but must be recovered using an expensive special equipment of (Joing Action Group) JTAG device, JTAG equipment is equipment for testing, such as PCB and IC a, it has the capability to report the data to force the pin (pin) for the pin (pin) as an add-on manner, and use this function to record the recovery force in the memory of the mobile communication terminal firmware. 그런데, JTAG 장비를 이용해 복구하는 방법은 그 절차가 매우 번거로운 뿐만 아니라 장비 자체도 매우 고가인 단점이 있었다. By the way, how to recover using JTAG devices was that the procedure is very cumbersome, as well as the equipment is very expensive disadvantage itself.

상기와 같은 문제점을 해결하기 위한 본 발명은 펌웨어가 저장되는 비휘발성 메모리부를 펌웨어 영역과 임시 펌웨어 영역으로 분할하고, 펌웨어를 업그레이드 할 때 우선, 임시 펌웨어 영역으로 새로운 펌웨어를 저장한 후 다시 펌웨어 영역으로 복사하여 업그레이드 하는 방법과, 부트로더 로딩 및 시작 후 펌웨어 영역의 무결성 확인 및 복사가 완료되지 않은 펌웨어를 확인하여 오류가 발생하면 임시 펌웨어 영역에서 복사할 펌웨어의 존재여부를 확인한 후 존재하면 펌웨어 영역으로 펌웨어를 복사하고, 시스템을 재부팅시키는 손상된 펌웨어 자동 복구 방법 및 시스템을 제공하고자 하는데 그 목적이 있다. The present invention for solving the above problems is a firmware area again after the firmware is stored stores the first, the new firmware to the temporary firmware area to the non-volatile memory is divided into parts of the firmware area and the temporary firmware area, upgrades the firmware that as a way to upgrade by copying the boot loader loads and starts after you verify the integrity check, and a firmware copy is not completed, the firmware area is an error to exist after confirming the existence of the firmware to be copied from the temporary firmware area firmware area copy the firmware, and want to provide a method and system for automatically repair damaged firmware, reboot the system, it is an object.

상기와 같은 목적을 달성하기 위한 본 발명은 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법에 있어서, 시스템 부팅으로 부트로더가 로딩 및 시작된 후 펌웨어 영역의 무결성 확인 및 복사가 완료되지 않는 펌웨어 확인단계; The present invention for achieving the above object, the firmware upgrade the firmware in the damaged self-healing process, the boot loader is loaded and the integrity check, and a copy of the firmware area is not completed after the start of the firmware verification step, the system boots; 상기 펌웨어 확인단계에서 복사가 완료되지 않은 펌웨어 영역이 확인되면 임시 펌웨어 영역에서 복사되지 않은 펌웨어가 존재하는지 확인하는 단계; Confirming that the firmware is not copied from the temporary firmware area is present when copying is not completed firmware area is found in the firmware verification step; 상기 임시 펌웨어 영역에서 복사할 펌웨어가 존재하면 복사시킬 펌웨어를 임시 펌웨어 영역에서 펌웨어 영역으로 복사하는 제 1복사단계; A first copying step for copying the firmware to be copied when the firmware to be copied from the temporary firmware area is present in the temporary area, firmware, the firmware area; 및 상기 제 1복사단계 완료 후 시스템을 재부팅시키는 단계로 이루어져 손상된 펌웨어를 자동 복구시키고, And, automatically recover corrupted firmware consists of a step of rebooting the system after the first copying step is completed,

상기 펌웨어 확인단계에서 오류가 발생되지 않아 펌웨어가 로딩되어 실행되고, 펌웨어 업그레이드가 필요하면 외부장치로부터 새로운 펌웨어를 업로드 받아 비휘발성 메모리부의 임시 펌웨어 영역에 저장하는 단계; The checking step does not result in an error in the firmware step of the firmware is loaded and running, if the firmware upgrade is required and stored in a temporary region of the nonvolatile memory receiving the firmware uploading the new firmware from an external device; 및 상기 임시 펌웨어 영 역에 저장된 새로운 펌웨어를 펌웨어 영역으로 복사하는 제 2복사단계로 이루어져 펌웨어를 업그레이드 하는 것을 특징으로 한다. And in the characterized by consisting of Firmware to the second copying step of copying the new firmware is stored in the temporary area firmware, the firmware area.

본 발명에 따른 바람직한 한 특징으로는, 상기 제 1복사단계 전에는, 새로운 펌웨어가 복사될 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정영역에 시작점을 기록하는 단계와, 상기 제 1복사단계 후에는, 펌웨어의 무결성을 확인 할 수 있는 체크섬(Checksum)을 계산 한 후 복사가 완료된 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정영역에 체크섬과 함께 종료점을 기록하는 단계를 더 포함하는 것을 특징으로 한다. Preferred features, the method comprising recording a start point to a specific area of ​​the nonvolatile memory portion for before the first copying step, new firmware area to be firmware copy, after the first copying step according to the present invention, firmware of for calculating the checksum (checksum) which can verify the integrity after the copy is complete firmware area characterized in that said method further comprises: recording the end point with the checksum in the specific area of ​​the nonvolatile memory portion.

본 발명에 따른 바람직한 다른 특징으로는, 상기 제 2복사단계 전에는, 새로운 펌웨어가 복사될 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정영역에 시작점을 기록하는 단계와, 상기 제 2복사단계 후에는, 펌웨어의 무결성을 확인 할 수 있는 체크섬(Checksum)을 계산 한 후 복사가 완료된 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정영역에 체크섬과 함께 종료점을 기록하는 단계를 더 포함하는 것을 특징으로 한다. In a preferred another aspect of the present invention, the method comprising: recording a starting point to a specific area of ​​the nonvolatile memory portion for before the second copy phase, new firmware area to be firmware copies, after the second copy phase, firmware of for calculating the checksum (checksum) which can verify the integrity after the copy is complete firmware area characterized in that said method further comprises: recording the end point with the checksum in the specific area of ​​the nonvolatile memory portion.

본 발명에 따른 바람직한 또 다른 특징으로는, 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템에 있어서, 시스템을 전반적으로 제어하는 제어부; In a preferred further feature of the present invention, in the firmware upgrade firmware and damaged self-healing system, control unit for controlling the overall system; 시스템을 로딩하기 위한 프로그램이 저장된 부트로더 영역과, 시스템을 운영하기 위한 운영체제(OS) 및 필수 어플리케이션(Application)들이 저장되어 있는 다수의 펌웨어 영역과, 상기 펌웨어 영역에 저장된 펌웨어를 업그레이드 또는 복구시킬 때, 원본 또는 새로운 펌웨어가 저장되어 있는 임시 펌웨어 영역을 포함하여 구성되어 있는 비휘발성 메모리부 및 상기 펌웨어 영역에 저장된 펌웨어를 상기 제어부가 복사시켜 펌웨어를 실행하기 위한 램(RAM)으로 구성된 것을 특징으로 한다. And a number of firmware area and the boot loader area, a program to load the system is stored, the operating system (OS) and the required application (Application) for operating the system are stored, when the upgrade or restore the firmware stored in the firmware area , by the source, or new firmware is non-volatile memory unit and the control firmware stored in the firmware area is configured to include a temporary firmware area stored copy is characterized in that consists of random access memory (RAM) for running the firmware .

본 발명에 따른 바람직한 또 다른 특징으로는, 상기 부트로더 영역은, 다수의 펌웨어 영역에 대한 체크섬(Checksum)을 구비하고, 이를 상기 비휘발성 메모리부의 특정영역에 구비된 체크섬(Checksum)과 비교하여 펌웨어 영역의 무결성을 확인하는 것을 특징으로 한다. In a preferred further feature of the present invention, the boot loader area is provided with a checksum (Checksum) of the plurality of firmware areas, compares it with the checksum (Checksum) provided in the specific area of ​​the nonvolatile memory portion firmware characterized in that to check the integrity of the area.

이하, 첨부된 도면을 참조하여 본 발명에 따른 펌웨어 업그레이드와 업그레이드 도중 손상된 펌웨어 자동 복구 시스템 및 방법에 대한 일실시예를 상세히 설명하면 다음과 같다. Hereinafter, it will be described in detail an embodiment of a firmware upgrade, and repair damaged firmware automatically during the upgrade system and method according to the present invention with reference to the accompanying drawings as follows.

도 1은 본 발명에 따른 시스템의 구성을 나타낸 구성도, 도 2는 본 발명에 따른 시스템의 메모리부 구조를 나타낸 구성도, 도 3은 본 발명에 따른 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법의 흐름을 개락적으로 나타낸 순서도, 도 4는 본 발명에 따른 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법의 흐름을 상세히 나타낸 순서도이다. Figure 1 is a firmware upgrade with a damaged flow of the firmware auto repair method according to the invention is a structural view showing a memory structure of the system, Figure 3 in accordance with the diagram, the present Figure 2 is the diagram showing the configuration of a system according to the invention a flow chart illustrating a more rakjeok, Figure 4 is a flow chart showing the flow of the firmware upgrades and corrupt firmware auto repair method according to the present invention;

우선, 도 1 및 도 2를 참조하면 본 발명에 따른 시스템의 구성은 임베디드 장치(100)에 있어서 시스템을 전체적으로 제어하는 제어부(중앙처리장치 ; 10)와, 펌웨어를 저장하고 있는 비휘발성 메모리부(20) 및 상기 제어부(10)의 제어를 받아 상기 메모리부에 저장된 펌웨어를 복사하여 프로그램을 동작시키는 램(RAM ; 30)으로 크게 구성된다. First, the 1 and 2 configuration of the system according to the present invention is a control unit for controlling the system as a whole according to an embedded device 100 (central processing unit) 10, a nonvolatile memory that stores firmware ( It is composed of a 30)) 20 and random access memory (RAM which under the control of the control section 10 operates the program by copying the firmware stored in the memory unit.

새로 업그레이드될 펌웨어(Firmware)는 다양한 외부기기와 연결되어 펌웨어를 업로드는 받기 위한 인터페이스(40)를 통해 통신장치(Ethernet, USB)에 의한 업그레이드 또는 무선통신망을 이용한 업그레이드등 다양한 방법을 통하여 새로운 펌웨어를 업로드 받을 수 있다. The newly upgraded firmware (Firmware) is the new firmware by various methods, including upgrading using upgrade or a wireless communication network by the connected to the different external device, the communication device (Ethernet, USB) via an interface (40) for receiving the firmware is uploaded It can be uploaded.

상기 비휘발성 메모리부(20)는 일반적으로 펌웨어를 저장시킬 수 있는 임베디드 시스템에서 많이 채용되는 비휘발성 메모리인 플래쉬 메모리(Flash memory)로 사용된다. The non-volatile memory unit 20 is commonly used as a non-volatile memory is flash memory which is capable of storing a firmware employed in many embedded systems (Flash memory).

상기 비휘발성 메모리부(20)는 도 2에 도시된 바와 같이 부트로더 영역(21)과, 다수의 펌웨어 영역(22) 및 임시 펌웨어 영역(23)을 분할하여 별도로 더 구성되어 있다. The non-volatile memory unit 20 is divided by the boot loader section 21, and a plurality of firmware area 22 and the temporary firmware area 23 is further configured separately, as shown in FIG.

임베디드 기기(100)의 시스템이 부팅되면 시스템을 로딩하기 위해 상기 부트로더 영역(21)을 통하여 시스템이 부팅되고, 또한 상기 펌웨어 영역(22)의 무결성을 확인하기 위한 체크섬(Checksum)을 구비하고 있다. When the system is booting of an embedded device 100 and the system is booted by the boot loader section 21 to load the system, and is provided with a checksum (Checksum) to determine the integrity of the firmware area 22 .

상기 펌웨어 영역(22)은 상기 임베디드 기기(100)의 기능을 동작시키기 위한 운영체제(OS)나 동작프로그램을 저장하고 있는 것으로, 다양한 각각의 기능을 동작시키기 위한 여러 펌웨어를 저장하기 위해 상기 펌웨어 영역(22)을 다수개 형성시킨다. The firmware area 22 as storing an operating system (OS) or the operation program for operating the functions of the embedded device 100, the firmware area to store the number of the firmware for operating the various respective functions ( 22) to form a plurality of.

상기 임시 펌웨어 영역(23)은 펌웨어를 업그레이드 할 때 또는 펌웨어를 복수시킬 때 새로운 펌웨어를 임시적으로 저장하는 곳이다. The temporary firmware area 23 when a plurality or firmware when the firmware upgrade is where temporarily stored in the new firmware.

외부장치로부터 새로운 펌웨어를 업로드 받으면 제어부(10)는 펌웨어 실행에 사용되는 상기 펌웨어 영역(22)에 저장하지 않고, 상기 임시 펌웨어 영역(23) 우선 저장을 하였다가 상기 펌웨어 영역(22)으로 저장하게 되는 것이다. When uploading the new firmware from an external device controller 10 to not stored in the firmware area 22 used for firmware implementation, the temporary firmware area 23 the first was the storage saved in the firmware area 22 It will be.

또한, 상기 메모리부(20)에 별도로 구성된 각각의 영역(21, 22, 23)외에 영역(이하 '특정영역')에는 상기 임시 펌웨어 영역(22)에 저장된 펌웨어를 상기 펌웨어 영역(21)으로 복사를 시작할 때나 복사를 완료할 때 복사될 실제 펌웨어 영역(22)에 대한 시작점(Start marking)과 종료점(End marking)을 기록하고, 복사가 수행된 펌웨어에 대한 체크섬(Checksum)을 계산하여 기록하게 되는 것이다. In addition, copy each of the regions 21, 22 and 23 in addition to the area (the "specific area") is the temporary firmware area 22 of the firmware area 21, the firmware stored in the well configured in the memory unit 20 record the start point (start marking) and end point (End marking) of the actual firmware area 22 is copied at the completion of the copying time to start, and is recorded to calculate the checksum (checksum) for the copying is done firmware will be.

다음으로 본 발명에 따른 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법에 대한 동작순서를 첨부된 도면 3, 4를 참조하여 상세히 설명하면 다음과 같다. Referring next to the drawings 3, 4 attached to the operation procedure for firmware upgrades and automatically damaged firmware recovery method of the present invention will be described in detail as follows.

휴대폰, MP3등과 같은 다양한 임베디드 시스템이 접목된 다양한 기기들은 각종 기능을 동작시켜주는 운영 소프트웨어인 펌웨어를 저장하고 있으며, 이 펌웨어는 필요시에 따른 업그레이드를 실시하여야 한다. A wide variety of embedded systems that combines a variety of devices such as mobile phones, MP3, and are stored in the firmware and operating software that operate the various functions, the firmware upgrade will be carried out according to the time required.

우선 임베디드 기기(100)로 전원이 공급되면 시스템이 부팅되면서 부트로더 로딩 및 시작(S100)된다. First, when power is supplied to the embedded device (100), the system will boot and boot loader is loaded and started (S100). 이때 부트로더는 각 펌웨어 영역(22)에 해당하는 체크섬(Checksum)을 구비하고 있으며, 이 체크섬을 비휘발성 메모리부(20)의 특정영역에 존재하는 체크섬과 비교하여 무결성을 확인하고, 이후 시작점과 종료점을 확인하여 복사가 되지 않은 펌웨어 영역이 있는지 확인한다(S110). The boot loader is provided with a checksum (Checksum) for each firmware area 22 and its integrity is verified by comparing the checksum with the checksum present in the specific area of ​​the nonvolatile memory portion 20, since the start point and Check the endpoint to verify that the firmware is not copied region (S110).

상기 확인단계(S110)에서 복사되지 않은 펌웨어 영역이 발견되지 않으면 정상적으로 펌웨어가 로딩 및 시작(S120)되면서 펌웨어가 실행된다. As normally, the firmware is loaded and started (S120) If the firmware is not copied in the area check step (S110) is not found, the firmware is executed.

하지만, 상기 확인단계(S110)에서 복사되지 않은 펌웨어 영역이 존재한다면 비휘발성 메모리부(20)의 임시 펌웨어 영역(23)에 복사되지 않은 펌웨어가 존재하는지 확인하고(S130) 존재하지 않으면 시스템은 종료된다. However, if if is not copy the firmware area is present in the checking step (S110) confirm that the non-copied to the temporary firmware area 23 of the non-volatile memory unit 20, the firmware is present and (S130) exists, the system is shut down do.

상기 임시 펌웨어 영역(20)에 복사되지 않은 펌웨어가 존재한다면 계속 기록시켜야할 펌웨어 영역(22)을 확인(S140)한 후, 비휘발성 메모리부(20)의 특정영역에 펌웨어 복사가 시작됨을 기록하는 시작점(Start marking)을 기록한다(S150). The temporary firmware area after 20 check (S140) the firmware area 22 to be still written if the non-copying the firmware exists in the firmware to copy a specific area of ​​the nonvolatile memory section 20 for recording to be started record the start point (Start marking) (S150).

시작점 기록이 완료되면 상기 임시 펌웨어 영역(23)에 저장된 복사되지 않은 펌웨어를 복사시킬 펌웨어 영역(22)로 제 1복사단계가 진행된다(S160). When the start recording is completed, the temporary firmware area 23 in the firmware area 22 to copy the non-copying the firmware first copy saved step proceeds to (S160).

상기 제 1복사단계(S160)가 완료되면 계산된 체크섬과 종료점(End marking)을 상기 비휘발성 메모리부(20)의 특정영역에 저장하고(S170), 시스템을 재부팅(Rebooting)시키는 단계(S180)를 수행하여 시스템을 다시 가동시킴으로써, 손상된 펌웨어를 자동으로 복구시키게 되는 것이다. Wherein the step of storing in a specified area of ​​the first calculated after the copy step (S160) is completed, the checksum and end point (End marking) to the non-volatile memory unit 20, and (S170), a reboot (Rebooting) the system (S180) by performing the re-start the system, which will thereby automatically repair the corrupted firmware.

다음은, 상기 펌웨어 영역 확인단계(S110)에서 복사되지 않은 펌웨어가 존재하지 않는다면 펌웨어가 로딩 및 시작(S120)되게 되는데, 펌웨어가 동작하게 되면 필요에 따라 펌웨어 업그레이드가 진행되는 것으로 펌웨어 업그레이드 과정에 대해 설명하면 다음과 같다. Next, the firmware area is not present is not copy the firmware from the verification step (S110) there is presented the firmware is loaded and started (S120), that is when the firmware is to operate the firmware upgrade process, as needed for the firmware upgrade If the description follows.

우선, 부트로더 로딩 후 펌웨어 영역의 무결성 및 복사되지 않은 펌웨어 확인결과 미복사된 펌웨어가 존재하지 않으면 펌웨어가 로딩된다. First, if the boot loader then loads the firmware integrity and regions that are not copy firmware check result there is no US copied the firmware of the firmware is loaded.

펌웨어 초기화 단계(S200), 펌웨어 로딩 및 시작단계(S210)를 거쳐 펌웨어가 실행(S220)되게 되는데, 일반적인 펌웨어 업그레이드는 동작중인 어플리케이션(application) 내에서 특정 메뉴 또는 절차에 의해 시작되는 것으로, 업그레이드 할 펌웨어는 일반적으로 통신장치(Ethernet, USB), ODD와 같은 기록매체, 무선통신등 다양한 방법으로 새로운 펌웨어를 업로드 받을 수 있다. Via a firmware initialization step (S200), the firmware load and the beginning (S210) there is presented the firmware is executed (S220), a common firmware upgrade is to be started by a specific menu, or process within a running application (application), to upgrade the firmware can be typically communication devices (Ethernet, USB), a recording medium, various methods such as wireless communications, such as ODD upload the new firmware.

이러한 외부장치나 통신망을 통해 새로운 펌웨어를 다운받게 되면 우선, 새로운 펌웨어는 상기 비휘발성 메모리부(20)의 임시 펌웨어 영역(23)에 저장된다. Upon receipt of the new firmware down through such an external device or communication network first, the new firmware is stored in the temporary firmware area 23 of the nonvolatile memory portion 20. 상기 임시 펌웨어 영역(23)에 저장된 새로운 펌웨어는 상술한 과정(S150)과 동일하게 비휘발성 메모리부(20)의 특정영역에 복사가 시작될 펌웨어 영역(22)에 대한 시작점을 기록하고(S250) 상기 펌웨어 영역(22)로 펌웨어 복사를 실시하는 제 2복사단계를 진행한다(S260). New firmware stored in the temporary firmware area 23 is the above-described process (S150) in the same manner as the non-volatile memory unit 20, the recording and (S250) the start point for the firmware area 22 is copied to begin in a particular region of the of proceeds with copying the second step for applying the firmware copy the firmware area (22) (S260).

상기 제 2복사단계(S260)가 완료되면 상기 (S170)단계와 같이 계산된 체크섬을 계산하고(S270), 계산된 체크섬과 종료점(End marking)을 상기 비휘발성 메모리부(20)의 특정영역에 저장(S280)하면 펌웨어 업그레이드가 완료되고 업그레이드된 펌웨어가 실행된다. A particular area of ​​the second when the copy step (S260) is completed, the (S170) calculating and (S270) the calculated checksum, such as steps, the calculated checksum and the end point (End marking) to the nonvolatile memory portion 20 storing (S280) the firmware upgrade is complete and the upgraded firmware is executed.

다시 업그레이드 할 새로운 펌웨어가 있다면 상기 (S23) 내지 (S280)의 단계를 반복적으로 수행하게 되는 것이다. If the new firmware to be upgraded again to that it would take a step in the (S23) to (S280) repeatedly.

이와 같이 구성되고 작용되는 본 발명은 임베디드 기기를 동작시켜 주기 위한 펌웨어를 안전적으로 업그레이드 시키거나 업그레이드 도중 펌웨어가 손상되었을 자동적으로 복구시킴에 따라 다양한 임베디드 기기의 효율성을 높일 수 있는 이 점이 있다. The present invention is thus configured, and the action point is to increase the efficiency of the various embedded devices in accordance with the automatic recovery of Sikkim as to not totally upgrade the firmware for cycle by operating the embedded equipment or when the firmware is corrupted during the upgrade.

이상, 본 발명의 원리를 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 그와 같이 도시되고 설명된 그대로의 구성 및 작용으로 한정되는 것이 아니다. Or more, has been described and illustrated in connection with preferred embodiments to illustrate the principles of the invention, the invention is not limited to the construction and operation of the illustrated and described as it as such.

오히려, 첨부된 청구범위의 사상 및 범주를 일탈함이 없이 본 발명에 대한 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. Rather, a large number of changes and modifications to the present invention, the spirit and scope of the appended claims without departing available those skilled in the art will be able to understand. 따라서 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다. Therefore, all suitable modifications and equivalents as such will also be considered as falling within the scope of the invention.

상기와 같이 구성되고 작용되는 본 발명은 임베디드 시스템의 펌웨어를 안전하게 업그레이드 할 수 있고, 펌웨어 업그레이드 실수에 기인한 제품 고장의 빈도를 줄여 결과적으로 제품의 유지 보수에 대한 효율성을 높이고 비용을 절감시킬 수 있는 이점이 있다. The present invention is configured and works as described above can be upgraded safely firmware for embedded systems, reducing the incidence of product failure due to firmware upgrades mistakes resulting in increased efficiency for the maintenance of the product that can reduce costs there is an advantage.

Claims (5)

  1. 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법에 있어서, In the firmware upgrade and repair the damaged firmware automatic way,
    시스템 부팅으로 부트로더가 로딩 및 시작된 후 펌웨어 영역의 무결성 확인 및 복사가 완료되지 않는 펌웨어 확인단계; The bootloader has been loaded, and then verify the integrity of the firmware area and began copying is not completed, the firmware verification step, the system boots;
    상기 펌웨어 확인단계에서 복사가 완료되지 않은 펌웨어 영역이 확인되면 임시 펌웨어 영역에서 복사되지 않은 펌웨어가 존재하는지 확인하는 단계; Confirming that the firmware is not copied from the temporary firmware area is present when copying is not completed firmware area is found in the firmware verification step;
    상기 임시 펌웨어 영역에서 복사할 펌웨어가 존재하면 복사시킬 펌웨어를 임시 펌웨어 영역에서 펌웨어 영역으로 복사하는 제 1복사단계; A first copying step for copying the firmware to be copied when the firmware to be copied from the temporary firmware area is present in the temporary area, firmware, the firmware area; And
    상기 제 1복사단계 완료 후 시스템을 재부팅시키는 단계로 이루어져 손상된 펌웨어를 자동 복구시키고, After the first copy completion step consists of step of rebooting the system and automatically restore the corrupted firmware,
    상기 펌웨어 확인단계에서 오류가 발생되지 않아 펌웨어가 로딩되어 실행되고, 펌웨어 업그레이드가 필요하면 외부장치로부터 새로운 펌웨어를 업로드 받아 비휘발성 메모리부의 임시 펌웨어 영역에 저장하는 단계; The checking step does not result in an error in the firmware step of the firmware is loaded and running, if the firmware upgrade is required and stored in a temporary region of the nonvolatile memory receiving the firmware uploading the new firmware from an external device; And
    상기 임시 펌웨어 영역에 저장된 새로운 펌웨어를 펌웨어 영역으로 복사하는 제 2복사단계로 이루어져 펌웨어를 업그레이드 하는 것을 특징으로 하는 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법. The temporary new firmware area consists of the firmware as a second copying step for copying the firmware upgrade the firmware area characterized in that the firmware update as stored in the auto repair corrupted firmware.
  2. 제 1항에 있어서, 상기 제 1복사단계 전에는, The method of claim 1, wherein before the first copying step,
    새로운 펌웨어가 복사될 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정 영역에 시작점을 기록하는 단계와, For the firmware area for the new firmware to be copied and the step of recording a start point to a specific area of ​​the nonvolatile memory portion,
    상기 제 1복사단계 후에는, 펌웨어의 무결성을 확인 할 수 있는 체크섬(Checksum)을 계산 한 후 복사가 완료된 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정영역에 체크섬과 함께 종료점을 기록하는 단계를 더 포함하는 것을 특징으로 하는 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법. The first radiation step after, a step of recording the end point with the checksum in the specific area of ​​the nonvolatile memory portion for the integrity checksum (Checksum) a firmware area copy is complete after calculating to determine the firmware more Auto repair damaged firmware, and firmware upgrade methods characterized in that.
  3. 제 1항에 있어서, 상기 제 2복사단계 전에는, The method of claim 1, wherein before the second copy phase,
    새로운 펌웨어가 복사될 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정영역에 시작점을 기록하는 단계와, For the firmware area for the new firmware to be copied and the step of recording a start point to a specific area of ​​the nonvolatile memory portion,
    상기 제 2복사단계 후에는, 펌웨어의 무결성을 확인 할 수 있는 체크섬(Checksum)을 계산 한 후 복사가 완료된 펌웨어 영역에 대해 상기 비휘발성 메모리부의 특정영역에 체크섬과 함께 종료점을 기록하는 단계를 더 포함하는 것을 특징으로 하는 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 방법. The second radiation stage after, a step of recording the end point with the checksum in the specific area of ​​the nonvolatile memory portion for the integrity checksum (Checksum) a firmware area copy is complete after calculating to determine the firmware more Auto repair damaged firmware, and firmware upgrade methods characterized in that.
  4. 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템에 있어서, In the firmware upgrade firmware automatically recover a damaged system,
    시스템을 전반적으로 제어하는 제어부; A controller for controlling the overall system;
    시스템을 로딩하기 위한 프로그램이 저장된 부트로더 영역과, 시스템을 운영하기 위한 운영체제(OS) 및 필수 어플리케이션(Application)들이 저장되어 있는 다수의 펌웨어 영역과, 상기 펌웨어 영역에 저장된 펌웨어를 업그레이드 또는 복구시킬 때, 원본 또는 새로운 펌웨어가 저장되어 있는 임시 펌웨어 영역을 포함하여 구 성되어 있는 비휘발성 메모리부; And a number of firmware area and the boot loader area, a program to load the system is stored, the operating system (OS) and the required application (Application) for operating the system are stored, when the upgrade or restore the firmware stored in the firmware area , is configured including the original or new firmware is stored temporarily firmware area in the non-volatile memory unit that; And
    상기 펌웨어 영역에 저장된 펌웨어를 상기 제어부가 복사시켜 펌웨어를 실행하기 위한 램(RAM)으로 구성된 것을 특징으로 하는 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템. By the firmware stored in the firmware area is copied, the controller firmware upgrade firmware and damaged self-healing system, characterized in that consists of random access memory (RAM) for running the firmware.
  5. 제 4항에 있어서, 상기 부트로더 영역은, The method of claim 4, wherein the bootloader region,
    다수의 펌웨어 영역에 대한 체크섬(Checksum)을 구비하고, 이를 상기 비휘발성 메모리부의 특정영역에 구비된 체크섬(Checksum)과 비교하여 펌웨어 영역의 무결성을 확인하는 것을 특징으로 하는 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템. Provided with a checksum (Checksum) of the plurality of firmware areas, this checksum (Checksum) in the firmware upgrade, characterized in that to check the integrity of the firmware area and compromised firmware compared to the automatic repair having a specific area of ​​the nonvolatile memory portion system.
KR1020060087919A 2006-09-12 2006-09-12 The method of firmware upgrade and automatic firmware recovery system KR20080023841A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060087919A KR20080023841A (en) 2006-09-12 2006-09-12 The method of firmware upgrade and automatic firmware recovery system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060087919A KR20080023841A (en) 2006-09-12 2006-09-12 The method of firmware upgrade and automatic firmware recovery system

Publications (1)

Publication Number Publication Date
KR20080023841A true KR20080023841A (en) 2008-03-17

Family

ID=39412401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060087919A KR20080023841A (en) 2006-09-12 2006-09-12 The method of firmware upgrade and automatic firmware recovery system

Country Status (1)

Country Link
KR (1) KR20080023841A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101457086B1 (en) * 2012-11-30 2014-11-12 한국전자통신연구원 Apparatus for integrity verification of firmware of embedded system and method thereof
US9015459B2 (en) 2011-08-10 2015-04-21 Samsung Electronics Co., Ltd. Method of initializing operation of a memory system
KR20150078644A (en) * 2013-12-31 2015-07-08 에릭슨엘지엔터프라이즈 주식회사 Method and apparatus for duplexing of software image
WO2017075852A1 (en) * 2015-11-05 2017-05-11 邦彦技术股份有限公司 Method and system for protecting working program of mcu
US9826335B2 (en) 2008-01-18 2017-11-21 Interdigital Patent Holdings, Inc. Method and apparatus for enabling machine to machine communication
US9924366B2 (en) 2009-03-06 2018-03-20 Interdigital Patent Holdings, Inc. Platform validation and management of wireless devices

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9826335B2 (en) 2008-01-18 2017-11-21 Interdigital Patent Holdings, Inc. Method and apparatus for enabling machine to machine communication
US9924366B2 (en) 2009-03-06 2018-03-20 Interdigital Patent Holdings, Inc. Platform validation and management of wireless devices
US9015459B2 (en) 2011-08-10 2015-04-21 Samsung Electronics Co., Ltd. Method of initializing operation of a memory system
US9021609B2 (en) 2012-11-30 2015-04-28 Electronics And Telecommunications Research Institute Apparatus and method for verifying integrity of firmware of embedded system
KR101457086B1 (en) * 2012-11-30 2014-11-12 한국전자통신연구원 Apparatus for integrity verification of firmware of embedded system and method thereof
KR20150078644A (en) * 2013-12-31 2015-07-08 에릭슨엘지엔터프라이즈 주식회사 Method and apparatus for duplexing of software image
WO2017075852A1 (en) * 2015-11-05 2017-05-11 邦彦技术股份有限公司 Method and system for protecting working program of mcu

Similar Documents

Publication Publication Date Title
JP5173818B2 (en) Initializing flash storage via embedded controller
US7702952B2 (en) Firmware update for consumer electronic device
KR100880783B1 (en) Tri-phase boot process in electronic devices
US7080245B2 (en) Method and system of switching between two or more images of firmware on a host device
US20020091919A1 (en) Method, system, and program for selecting one of multiple code images to execute following a reboot operation
US20060075284A1 (en) Method for over-the-air firmware update of NAND flash memory based mobile devices
US20090300415A1 (en) Computer System and Method for Performing Integrity Detection on the Same
US7971199B1 (en) Mobile device with a self-updating update agent in a wireless network
US20040044917A1 (en) Apparatus and method for restoring working context
US7107482B2 (en) Program update apparatus and method
EP2096538A1 (en) Communication device and firmware update method thereof
JP2006527423A (en) Computer operation system repair method
US8364942B2 (en) Electronic device having an alterable configuration and methods of manufacturing and configuring the same
JP2010541105A (en) Firmware image update and management
US7836444B2 (en) Mobile communication terminal having embedded system for software download and method for software download
JP2007507016A (en) Software update method for electronic control device by flash programming via serial interface and state automatic device corresponding thereto
US6715106B1 (en) Bios corruption detection system and method
KR100248757B1 (en) Method of damaged rom bios recovery function
KR20070034239A (en) Software update method, and a computer-readable recording medium storing the system and method
CN1304946C (en) Booting and boot code update method
US20080010446A1 (en) Portable apparatus supporting multiple operating systems and supporting method therefor
ES2371995T3 (en) Update of the firmware of an electronic device.
US7664923B2 (en) Method and system for updating software
GB2381901A (en) Install system with re-boot suppression
US20050132351A1 (en) Updating electronic device software employing rollback

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J501 Disposition of invalidation of trial