KR20220019940A - Firmware Update Device and Update Method - Google Patents

Firmware Update Device and Update Method Download PDF

Info

Publication number
KR20220019940A
KR20220019940A KR1020200100253A KR20200100253A KR20220019940A KR 20220019940 A KR20220019940 A KR 20220019940A KR 1020200100253 A KR1020200100253 A KR 1020200100253A KR 20200100253 A KR20200100253 A KR 20200100253A KR 20220019940 A KR20220019940 A KR 20220019940A
Authority
KR
South Korea
Prior art keywords
segment
address
flash memory
firmware
address value
Prior art date
Application number
KR1020200100253A
Other languages
Korean (ko)
Other versions
KR102375290B1 (en
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 KR1020200100253A priority Critical patent/KR102375290B1/en
Publication of KR20220019940A publication Critical patent/KR20220019940A/en
Application granted granted Critical
Publication of KR102375290B1 publication Critical patent/KR102375290B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to an update device and an update method of a firmware. According to the present invention, disclosed is a technology capable of stably upgrading the firmware comprising: a preparation step of storing a segment of the firmware in a flash memory; an address management area forming step of providing an address management area inside of the flash memory; an address value storage step of storing an address value of the segment in the address management area; and a segment access step of accessing, in the address value storage step, the segment by jumping indirectly according to the address value of the segment stored in the address management area. Therefore, the present invention is capable of having an effect of realizing a stable firmware update.

Description

펌웨어 업데이트 장치 및 업데이트 방법{Firmware Update Device and Update Method}Firmware Update Device and Update Method

본 발명은 펌웨어 내장형 전자디바이스의 펌웨어를 업그레이드 시키기 위한 펌웨어 업데이트장치 및 업데이트방법에 관한 것이다.The present invention relates to a firmware update apparatus and an update method for upgrading the firmware of an electronic device with a built-in firmware.

IoT 즉, 사물인터넷 기반의 전자디바이스들이 많이 보급되어 사용됨에 따라 점차 소형화, 경량화 되고 있다. 이러한 전자디바이스들의 기능 변경이나 확장을 위하여 필요한 경우 펌웨어 업데이트 작업이 이루어져야 한다. As IoT-based electronic devices are widely distributed and used, they are gradually becoming smaller and lighter. In order to change or expand the functions of these electronic devices, a firmware update operation should be performed if necessary.

이러한 펌웨어 업데이트 작업을 위해서는 전자디바이스의 사용을 중지하고 업데이트를 실시해야 하였으며, 이와 같이 업그레이드를 하는 과정에서 업그레이드에 소요되는 비용과 시간 그리고 기술적 대응이 소요되는 물리적 비용을 감수해야 한다. 지속적인 업데이트를 하지 않을 경우, 사물인터넷 기반의 전자디바이스가 더 이상 서비스를 제공하지 못하게 되는 기기가 되는 문제가 발생한다.In order to update the firmware, it was necessary to stop using the electronic device and perform the update. If continuous update is not performed, there is a problem that the IoT-based electronic device becomes a device that can no longer provide services.

기존의 펌웨어 업데이트 방식은 기존의 펌웨어가 디바이스에 저장된 상태에서 추가적인 플래시메모리 공간에 새로운 버전의 펌웨어를 다운받고, 새로운 버전의 펌웨어 다운로드가 모두 완료된 후에 새로운 펌웨어로 동작을 변경하는 방식을 취하고 있었다. 전체 펌웨어를 모두 메모리에 기록하는데 많은 시간이 소요되며, 이미 실행되고 있었던 기존의 펌웨어 버전 또한 플래시 메모리에 저장되어 있기 때문에 펌웨어 업데이트를 하는 동안에는 사용자가 디바이스를 작동시킬 수 없었다. In the existing firmware update method, a new version of firmware is downloaded to an additional flash memory space while the existing firmware is stored in the device, and the operation is changed to the new firmware after the download of the new version of the firmware is completed. It takes a lot of time to write the entire firmware to the memory, and since the existing firmware version that was already running is also stored in the flash memory, the user could not operate the device while the firmware was being updated.

사물인터넷 기반의 전자디바이스에 내장된 펌웨어를 업데이트 하는 동안은 외부의 방해나 간섭으로부터 상당히 취약해지므로 사용자의 실수 또는 통신상의 오류로 인하여 펌웨어 업데이트가 중단되기도 한다.이처럼 펌웨어 업데이트가 진행 도중에 중단되어버리면 복구가 불가능하게 되므로 결국 전자디바이스의 작동이 불가능한 상태로 빠져버리기도 한다. During the firmware update of the IoT-based electronic device, the firmware update may be interrupted due to the user's mistake or communication error, as it is very vulnerable to external interference or interference. Since recovery becomes impossible, the electronic device may eventually fall into an impossible state.

이처럼 펌웨어 업데이트가 중단되어 동작이 불능한 상태가 되면, 이를 해결하기 위한 시간과 비용이 많이 소요되며, 전자디바이스를 사용하지 못함에 따라 각종 불편함이 뒤따르게 되므로 안정적인 펌웨어를 업데이트시킬 수 있는 펌웨어 업데이트 기술이 절실히 요구되고 있다.As such, when the firmware update is interrupted and the operation becomes inoperable, it takes a lot of time and money to solve the problem, and various inconveniences follow as the electronic device cannot be used. Technology is desperately needed.

대한민국 등록특허 제10-0818237호Republic of Korea Patent Registration No. 10-0818237

본 발명의 목적은 상기한 바와 같은 종래의 문제점을 해결하기 위한 것으로, 펌웨어가 내장된 전자디바이스의 펌웨어를 안정적으로 업그레이드 시켜줄 수 있는 펌웨어 업데이트장치 및 업데이트방법을 제공함에 있다.SUMMARY OF THE INVENTION An object of the present invention is to solve the problems of the related art as described above, and to provide a firmware update apparatus and an update method capable of stably upgrading the firmware of an electronic device having a built-in firmware.

상기와 같은 목적을 달성하기 위한 본 발명의 실시 에에 따른 펌웨어 업데이트장치는 업데이트를 위한 새로운 펌웨어에 속하는 세그먼트를 플래시메모리에 저장시키는 세그먼트관리부; 상기 세그먼트관리부에 의해 상기 플래시메모리에 저장된 상기 세그먼트의 주소값을 저장시키기 위한 주소관리영역을 상기 플래시메모리의 내부에 마련하고, 상기 주소관리영역에 상기 세그먼트의 주소값을 저장시키는 주소저장관리부; 및 상기 주소저장관리부에 의해 상기 주소관리영역에 저장된 상기 세그먼트의 주소값에 따라 간접적으로 점프하여 상기 세그먼트로 접근하는 세그먼트접근부; 를 포함하는 것을 하나의 특징으로 할 수도 있다.A firmware update apparatus according to an embodiment of the present invention for achieving the above object includes: a segment management unit for storing a segment belonging to a new firmware for update in a flash memory; an address storage management unit that provides an address management area inside the flash memory for storing the address value of the segment stored in the flash memory by the segment management unit, and stores the address value of the segment in the address management area; and a segment access unit accessing the segment by jumping indirectly according to the address value of the segment stored in the address management area by the address storage management unit. It may be characterized as one of including.

여기서, 상기 세그먼트관리부는, 상기 새로운 펌웨어를 다수개의 상기 세그먼트로 분할하고, 분할된 상기 세그먼트 각각을 상기 플래시메모리의 각 섹터별로 저장시키는 것을 또 하나의 특징으로 할 수도 있다.Here, the segment management unit may be further characterized in that the new firmware is divided into a plurality of the segments, and each of the divided segments is stored for each sector of the flash memory.

여기서, 상기 주소저장관리부에 의해 마련되는 상기 주소관리영역은 하나 또는 다수개의 상기 세그먼트의 주소값만을 저장하는 영역으로서 상기 플래시메모리 내부에서 별도로 구분되는 영역으로 마련되는 것을 또 하나의 특징으로 할 수도 있다.Here, the address management area provided by the address storage management unit is an area for storing only the address values of one or a plurality of segments, and may be provided as a separate area within the flash memory. .

여기서, 상기 주소저장관리부는, 상기 플래시메모리에 기존의 세그먼트의 주소값이 저장되어 있는 경우, 상기 기존의 세그먼트의 주소값을 새로운 펌웨어 세그먼트의 주소값으로 대체하여 저장시키는 것을 또 하나의 특징으로 할 수도 있다.Here, when the address value of the existing segment is stored in the flash memory, the address storage management unit replaces the address value of the existing segment with the address value of the new firmware segment and stores the replacement. may be

상기와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 펌웨어 업데이트방법은, 업데이트를 위한 새로운 펌웨어에 속하는 세그먼트를 플래시메모리에 저장시키는 준비단계; 상기 준비단계에서 저장된 상기 세그먼트의 주소값을 저장시키기 위한 주소관리영역을 상기 플래시메모리의 내부에 마련하는 주소관리영역 형성단계; 상기 주소관리영역 형성단계에서 마련된 상기 주소관리영역에 상기 세그먼트의 주소값을 저장하는 주소값저장단계; 및 상기 주소값저장단계에서 상기 주소관리영역에 저장된 상기 세그먼트의 주소값에 따라 간접적으로 점프하여 상기 세그먼트로 접근하는 세그먼트접근단계;를 포함하는 것을 하나의 특징으로 할 수도 있다.A firmware update method according to an embodiment of the present invention for achieving the above object includes a preparation step of storing a segment belonging to a new firmware for update in a flash memory; an address management area forming step of providing an address management area inside the flash memory for storing the address value of the segment stored in the preparation step; an address value storage step of storing the address value of the segment in the address management area prepared in the address management area forming step; and a segment access step of accessing the segment by indirectly jumping according to the address value of the segment stored in the address management area in the step of storing the address value.

여기서, 상기 준비단계는, 업데이트를 위한 새로운 펌웨어를 다수개의 세그먼트(segment)로 분할하는 분할단계; 및 상기 분할단계에서 다수개로 분할된 상기 세그먼트 각각을 플래시메모리의 각 섹터별로 저장시키는 저장단계;를 포함하는 것을 또 하나의 특징으로 할 수도 있다. Here, the preparation step may include dividing the new firmware for update into a plurality of segments; and a storing step of storing each of the segments divided into a plurality in the dividing step for each sector of the flash memory.

여기서, 업데이트를 위한 상기 새로운 펌웨어는, 상기 분할단계에서 다수개의 상기 세그먼트로 나누어 함수가 배치될 수 있도록 작성된 것을 또 하나의 특징으로 할 수도 있다. Here, the new firmware for update may be divided into a plurality of segments in the dividing step and written so that a function can be arranged.

여기서, 상기 주소관리영역 형성단계에서, 상기 주소관리영역은 하나 또는 다수개의 상기 세그먼트의 주소값만을 저장하는 영역으로서 상기 플래시메모리 내부에서 별도로 구분되는 영역으로 마련되는 것을 또 하나의 특징으로 할 수도 있다.Here, in the step of forming the address management area, the address management area is an area for storing only the address values of one or a plurality of the segments and may be provided as a separate area within the flash memory. .

상기와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 펌웨어 업데이트방법은 업데이트를 위한 새로운 펌웨어 세그먼트를 플래시메모리의 가용영역에 저장시키는 세그먼트저장단계; 플래시메모리에 저장되어 있던 기존의 세그먼트의 주소값을 상기 세그먼트저장단계에서 저장된 상기 새로운 펌웨어 세그먼트의 주소값으로 대체하여 저장시키는 주소값저장단계; 및 상기 주소값저장단계에서 저장된 상기 새로운 펌웨어 세그먼트의 주소값에 따라 간접적으로 점프하여 상기 새로운 펌웨어 세그먼트로 접근하는 세그먼트접근단계;를 포함하는 것을 또 하나의 특징으로 할 수도 있다.A firmware update method according to an embodiment of the present invention for achieving the above object includes a segment storage step of storing a new firmware segment for update in an available area of a flash memory; an address value storage step of replacing the address value of the existing segment stored in the flash memory with the address value of the new firmware segment stored in the segment storage step and storing the replaced; and a segment access step of accessing the new firmware segment by jumping indirectly according to the address value of the new firmware segment stored in the address value storage step.

여기서, 상기 세그먼트저장단계에서 상기 새로운 펌웨어 세그먼트가 저장되는 상기 플래시메모리의 가용영역은 상기 새로운 펌웨어 세그먼트의 크기에 대응되는 크기를 갖춘 것을 또 하나의 특징으로 할 수도 있다.Here, in the segment storage step, the available area of the flash memory in which the new firmware segment is stored may have a size corresponding to the size of the new firmware segment.

여기서, 상기 플래시메모리에는 세그먼트의 주소가 별도로 저장된 주소관리영역이 마련되어 있고, 상기 주소값저장단계에서, 상기 주소관리영역에 저장되어 있던 상기 기존의 세그먼트의 주소값을 상기 새로운 펌웨어 세그먼트의 주소값으로 대체하여 상기 주소관리영역에 저장되는 것을 또 하나의 특징으로 할 수도 있다.Here, the flash memory has an address management area in which the address of the segment is separately stored, and in the address value storage step, the address value of the existing segment stored in the address management area is used as the address value of the new firmware segment. Alternatively, it may be stored in the address management area as another feature.

본 발명의 실시 예에 따른 펌웨어 업데이트방법은, 펌웨어 업데이트에 요구되는 시간과 비용을 절감할 수 있으며 안정적으로 펌웨어 업데이트를 실현시켜주는 효과가 있다. The firmware update method according to an embodiment of the present invention has the effect of reducing the time and cost required for firmware update and stably realizing the firmware update.

도 1은 본 발명의 실시 예에 따른 펌웨어 업데이트장치를 개략적으로 나타낸 구성도이다.
도 2는 본 발명의 실시 예에 따른 펌웨어 업데이트방법을 개략적으로 나타낸 순서도이다.
도 3은 본 발명의 실시 예에 따른 펌웨어 업데이트방법을 설명하기 위하여 펌웨어와 플래시메모리를 개략적으로 나타낸 개념도이다.
도 4는 본 발명의 실시 예에 따른 펌웨어 업데이트방법에서의 플래시메모리를 개략적으로 나타낸 개념도이다.
도 5는 본 발명의 다른 실시 예에 따른 펌웨어 업데이트방법을 개략적으로 나타낸 순서도이다.
도 6은 본 발명의 다른 실시 예에 따른 펌웨어 업데이트방법을 설명하기 위 하여 플래시메모리를 개략적으로 나타낸 개념도이다.
1 is a configuration diagram schematically showing a firmware update apparatus according to an embodiment of the present invention.
2 is a flowchart schematically illustrating a firmware update method according to an embodiment of the present invention.
3 is a conceptual diagram schematically illustrating firmware and a flash memory in order to explain a firmware update method according to an embodiment of the present invention.
4 is a conceptual diagram schematically illustrating a flash memory in a firmware update method according to an embodiment of the present invention.
5 is a flowchart schematically illustrating a firmware update method according to another embodiment of the present invention.
6 is a conceptual diagram schematically illustrating a flash memory in order to explain a firmware update method according to another embodiment of the present invention.

이하에서는 본 발명에 대하여 보다 구체적으로 이해할 수 있도록 첨부된 도면을 참조한 바람직한 실시 예를 들어 설명하기로 한다. Hereinafter, a preferred embodiment will be described with reference to the accompanying drawings so that the present invention may be understood in more detail.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to specific embodiments, and it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When an element is referred to as being “connected” or “connected” to another element, it is understood that it may be directly connected or connected to the other element, but other elements may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시 예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In describing the present invention, in order to facilitate the overall understanding, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

도 1은 본 발명의 실시 예에 따른 펌웨어 업데이트 장치를 개략적으로 나타낸 구성도이다. 1 is a configuration diagram schematically showing a firmware update apparatus according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시 예에 따른 펌웨어 업데이트장치는 세그먼트관리부(11), 주소저장관리부(12) 및 세그먼트접근부(13)를 포함한다. Referring to FIG. 1 , a firmware update apparatus according to an embodiment of the present invention includes a segment management unit 11 , an address storage management unit 12 , and a segment access unit 13 .

이러한 본 발명의 실시 예에 따른 펌웨어 업데이트장치를 통해 업데이트할 때 디바이스컨트롤러(MCU,10)의 제어를 통해 플래시메모리(20)에 세그먼트와 세그먼트의 주소값이 저장된다. When updating through the firmware updater according to the embodiment of the present invention, the segment and the address value of the segment are stored in the flash memory 20 under the control of the device controller (MCU, 10).

플래시메모리(20)는 대표적으로 사물인터넷에 적용되는 IoT디바이스에 탑재된 것을 포함하여 그 외의 다양한 기기에 탑재된 것일 수 있다. 그리고, 펌웨어는 디바이스의 구동을 위한 프로그램으로서 다수의 세그먼트들로 구성된다. 함수는 세그먼트에 포함되어 플래시메모리(20)상에 적재되는 기본단위나 기능별 단위를 나타낸다. The flash memory 20 may be mounted on various other devices, including those mounted on IoT devices typically applied to the Internet of Things. And, the firmware is a program for driving the device and is composed of a plurality of segments. A function represents a basic unit or a function-specific unit included in a segment and loaded on the flash memory 20 .

세그먼트관리부(11)는 업데이트를 위한 새로운 펌웨어에 속하는 세그먼트를플래시메모리(20)에 저장시킨다. 또한 세그먼트관리부(11)는 새로운 펌웨어를 다수개의 세그먼트로 분할하고, 분할된 세그먼트 각각을 플래시메모리(20)의 각 섹터별로 저장시킨다.The segment management unit 11 stores a segment belonging to the new firmware for update in the flash memory 20 . In addition, the segment management unit 11 divides the new firmware into a plurality of segments, and stores each of the divided segments for each sector of the flash memory 20 .

여기서, 업데이트를 위한 새로운 펌웨어는 다수개의 세그먼트로 나누어 함수가 배치될 수 있도록 작성된 것이 바람직하다.Here, it is preferable that the new firmware for update is divided into a plurality of segments so that functions can be arranged.

주소저장관리부(12)는 세그먼트관리부(11)에 의해 플래시메모리(20)에 저장된 세그먼트의 주소값을 저장시키기 위한 주소관리영역을 플래시메모리(20)의 내부에 마련한다. 그리고, 주소관리영역에 세그먼트의 주소값이 저장되도록 한다.The address storage management unit 12 provides an address management area inside the flash memory 20 for storing the address values of the segments stored in the flash memory 20 by the segment management unit 11 . Then, the address value of the segment is stored in the address management area.

주소저장관리부(12)에 의해 마련되는 주소관리영역은 하나 또는 다수개의 세그먼트의 주소값만을 별도로 저장하는 영역으로서 플래시메모리(20)의 내부에서 별도로 구분되는 영역으로 마련된다. The address management area provided by the address storage management unit 12 is an area for separately storing only address values of one or a plurality of segments, and is provided as a separately divided area inside the flash memory 20 .

그리고, 세그먼트관리부(11)에 의해 플래시메모리(20)의 섹터에 저장된 세그먼트의 주소값을 주소저장관리부(12)는 플래시메모리(20) 내에 마련된 주소관리영역에 저장시킨다.Then, the address value of the segment stored in the sector of the flash memory 20 by the segment management unit 11 is stored in the address management area provided in the flash memory 20 by the address storage management unit 12 .

플래시메모리(20)에 기존의 세그먼트의 주소값이 저장되어 있는 경우에 주소저장관리부(12)는 기존의 세그먼트의 주소값을 새로운 펌웨어 세그먼트의 주소값으로 대체하여 저장시킬 수 있다. When the address value of the existing segment is stored in the flash memory 20 , the address storage management unit 12 may store the address value of the existing segment by replacing the address value of the new firmware segment.

세그먼트접근부(13)는 주소저장관리부(12)에 의해 주소관리영역에 저장된 세그먼트의 주소값에 따라 간접적으로 점프(jump)하여 세그먼트로 접근한다. 주소관리영역에 저장된 주소값에 따라 간접적으로 점프함으로써 각 세그먼트로 접근하여 새로운 펌웨어의 업데이트가 이루어질 수 있다.The segment access unit 13 accesses the segment by jumping indirectly according to the address value of the segment stored in the address management area by the address storage management unit 12 . By indirectly jumping according to the address value stored in the address management area, it is possible to access each segment and update the new firmware.

이와 같이, 플래시메모리(20) 내부에 펌웨어를 이루는 각 세그먼트들의 주소값만을 저장해 놓은 주소관리영역을 별도로 만들고, 펌웨어 프로그램이 임의의 세그먼트로 접근할 때 주소관리영역에 저장된 주소값을 통해 간접적으로 점프함으로써 펌웨어 업데이트가 이루어질 수 있다.In this way, an address management area storing only the address values of each segment constituting the firmware is separately created in the flash memory 20, and when the firmware program accesses an arbitrary segment, indirectly jumps through the address values stored in the address management area By doing so, a firmware update can be made.

그리고, 펌웨어를 여러 개의 세그먼트로 나누어 업데이트의 대상을 일부 세그먼트로 한정하고, 한정된 일부 세그먼트를 다운받아서 저장하고 업데이트할 수 있다. 따라서, 디바이스 내부 플래시 메모리에 저장된 펌웨어 전체를 업데이트 하지 않고 일부만 업데이트하여 전체적으로 소요되는 시간을 단축시킬 수 있다. 그리고 일부 세그먼트를 플래시 메모리에 저장하므로 펌웨어 업데이트에 필요한 메모리의 크기를 감축시킬 수가 있다.In addition, the firmware may be divided into several segments to limit the update target to some segments, and the limited segments may be downloaded, stored, and updated. Accordingly, it is possible to reduce the overall time required by updating only a part of the firmware stored in the device's internal flash memory without updating the entire firmware. In addition, since some segments are stored in the flash memory, the size of memory required for firmware update can be reduced.

도 2는 본 발명의 실시 예에 따른 펌웨어 업데이트방법을 개략적으로 나타낸 순서도이고, 도 3은 본 발명의 실시 예에 따른 펌웨어 업데이트방법을 설명하기 위하여 펌웨어와 플래시메모리를 개략적으로 나타낸 개념도이며, 도 4는 본 발명의 실시 예에 따른 펌웨어 업데이트방법에서의 플래시메모리를 개략적으로 나타낸 개념도이다. 2 is a flowchart schematically illustrating a firmware update method according to an embodiment of the present invention, and FIG. 3 is a conceptual diagram schematically illustrating firmware and a flash memory to explain a firmware update method according to an embodiment of the present invention, and FIG. 4 is a conceptual diagram schematically illustrating a flash memory in a firmware update method according to an embodiment of the present invention.

도 2 내지 도 4를 더 참조하면, 본 발명의 실시 예에 따른 펌웨어 업그레이드방법은, 준비단계, 주소관리영역 형성단계, 주소값저장단계 및 세그먼트접근단계를 포함한다.2 to 4 , the firmware upgrade method according to an embodiment of the present invention includes a preparation step, an address management area forming step, an address value storage step, and a segment access step.

여기서, 준비단계는 업데이트를 위한 새로운 펌웨어에 속하는 세그먼트를 플래시메모리(200)에 저장시키는 단계이며, 분할단계(S110) 및 저장단계(S120)를 포함한다.Here, the preparation step is a step of storing the segment belonging to the new firmware for update in the flash memory 200, and includes a division step (S110) and a storage step (S120).

분할단계(S110)에서 세그먼트관리부(11)는 업데이트를 위한 새로운 펌웨어(100)를 다수개의 세그먼트(segment)(110)로 분할시킨다.In the segmentation step S110 , the segment management unit 11 divides the new firmware 100 for update into a plurality of segments 110 .

여기서, 업데이트를 위한 새로운 펌웨어(100)는 분할단계(S110)에서 다수개의 세그먼트(110)로 나누어 함수가 배치될 수 있도록 작성된 것이 바람직하다.Here, it is preferable that the new firmware 100 for update is divided into a plurality of segments 110 in the division step S110 and written so that functions can be arranged.

도 3에서 참조되는 바와 같이, 다수개의 세그먼트(110)로 분할되면, 세그먼트관리부(11)는 저장단계(S120)에서 다수개로 분할된 세그먼트(110) 각각을 플래시메모리(200)의 각 섹터(210)별로 구분하여 저장시킨다. 3 , if the segment is divided into a plurality of segments 110 , the segment management unit 11 stores each of the segments 110 divided into a plurality of segments 110 in the storage step S120 for each sector 210 of the flash memory 200 . ) and store them separately.

즉, 다수개로 분할된 세그먼트(110) 각각이 플래시메모리(200)의 섹터(210)들 각각에 대응되어 저장될 수 있다. 참고로, 도면에서 #1, #2,...#N 은 플래시메모리(200)의 N 개의 섹터(210) 각각을 나타낸 표시이다.That is, each of the segments 110 divided into a plurality of segments may be stored in correspondence with each of the sectors 210 of the flash memory 200 . For reference, in the drawing, #1, #2, ... #N indicate each of the N sectors 210 of the flash memory 200 .

이와 같이 각 섹터(210)에 새로운 펌웨어의 세그먼트(110)이 분할되어 저장된다.As described above, the segment 110 of the new firmware is divided and stored in each sector 210 .

다음으로 주소관리영역 형성단계(S130)에서는, 도 4에서 참조되는 바와 같이 분할단계(S110) 및 저장단계(S120)를 통해 플래시메모리(200)의 섹터(210)에 저장된 하나 또는 다수개의 세그먼트(110)의 주소값을 저장시키기 위한 주소관리영역(220)을 플래시메모리(200)의 내부에 마련하는 단계이다.Next, in the address management area forming step ( S130 ), as shown in FIG. 4 , one or a plurality of segments ( 110) is a step of providing the address management area 220 for storing the address value of the flash memory 200 inside the flash memory 200.

주소관리영역 형성단계(S130)에서 주소저장관리부(12)에 의해 마련되는 주소관리영역(220)은 하나 또는 다수개의 세그먼트(110)의 주소값만을 별도로 저장하는 영역으로서, 플래시메모리(200)의 내부에서 별도로 구분되는 영역으로 마련되는 것이 바람직하다.The address management area 220 provided by the address storage management unit 12 in the address management area forming step (S130) is an area for separately storing only the address values of one or a plurality of segments 110, and It is preferable to be provided as a separately divided area inside.

그리고, 주소값저장단계(S140)에서는, 세그먼트관리부(11)에 의해 플래시메모리(200)의 섹터(210)에 저장된 세그먼트(110)의 주소값을 주소저장관리부(12)는 주소관리영역 형성단계(S130)에서 마련된 주소관리영역(220)에 저장시킨다.In addition, in the address value storage step S140 , the address value of the segment 110 stored in the sector 210 of the flash memory 200 by the segment management unit 11 is transferred to the address storage management unit 12 in the address management area forming step It is stored in the address management area 220 provided in (S130).

다음으로 세그먼트접근단계(S150)에서는, 세그먼트접근부(13)가 주소값저장단계(S140)에서 주소관리영역(220)에 저장된 세그먼트(110)의 주소값에 따라 간접적으로 점프하여, 플래시메모리(200)의 섹터(210)에 저장된 세그먼트(110)로 접근한다.Next, in the segment access step (S150), the segment access unit 13 indirectly jumps according to the address value of the segment 110 stored in the address management area 220 in the address value storage step (S140), and the flash memory ( The segment 110 stored in the sector 210 of 200 is accessed.

예를 들어, 도 3에서 개략적으로 표시한 바와 같이 Call #2에 따라 #2의 섹터에 저장된 세그먼트로 접근하기 위하여 주소관리영역(220)에 저장된 주소값에 따라 간접적으로 점프하여 #2 섹터로 가고, 다음으로 Call #N 에 따라 #N의 섹터에 저장된 세그먼트로 접근하기 위하여 주소관리영역(220)에 저장된 주소값에 따라 간접적으로 점프하여 #N 섹터로 접근한다. For example, as schematically shown in FIG. 3 , in order to access the segment stored in sector #2 according to Call #2, it indirectly jumps to sector #2 according to the address value stored in the address management area 220 and goes to sector #2. , next, in order to access the segment stored in the sector of #N according to Call #N, indirectly jump according to the address value stored in the address management area 220 to access the sector #N.

이와 같은 방식으로 주소관리영역(220)에 저장된 주소값에 따라 간접적으로 점프함으로써 각 세그먼트로 접근하여 새로운 펌웨어의 업데이트가 이루어진다는 것이다. In this way, by indirectly jumping according to the address value stored in the address management area 220, each segment is accessed and a new firmware is updated.

플래시메모리(200) 내부에 펌웨어를 이루는 각 세그먼트들의 주소값만을 저장해 놓은 주소관리영역을 별도로 만들고, 펌웨어 프로그램이 임의의 세그먼트로 접근할 때 주소관리영역에 저장된 주소값을 통해 간접적으로 점프함으로써 펌웨어 업데이트가 이루어질 수 있다.An address management area in which only the address values of each segment constituting the firmware are stored inside the flash memory 200 is separately created, and when the firmware program accesses an arbitrary segment, the firmware is updated by jumping indirectly through the address values stored in the address management area. can be made

펌웨어를 여러 개의 세그먼트로 나누어 업데이트의 대상을 일부 세그먼트로 한정하고, 한정된 일부 세그먼트를 다운받아서 저장하고 업데이트할 수 있다. 따라서 디바이스 내부 플래시 메모리에 저장된 펌웨어 전체를 업데이트 하지 않고 일부만 업데이트하여 전체적으로 소요되는 시간을 단축시킬 수 있다. 그리고 일부 세그먼트를 플래시 메모리에 저장하므로 펌웨어 업데이트에 필요한 메모리의 크기를 감축시킬 수가 있다By dividing the firmware into several segments, the update target is limited to some segments, and the limited segments can be downloaded, saved, and updated. Accordingly, it is possible to reduce the overall time required by updating only a part of the firmware stored in the device's internal flash memory, rather than updating it. And since some segments are stored in flash memory, the size of memory required for firmware update can be reduced.

그리고 다음과 같이 응용된 실시 형태 또한 충분히 가능하다.And the embodiment applied as follows is also sufficiently possible.

도 5는 본 발명의 다른 실시 예에 따른 펌웨어 업데이트방법을 개략적으로 나타낸 순서도이고, 도 6은 본 발명의 다른 실시 예에 따른 펌웨어 업데이트방법을 설명하기위 하여 플래시메모리를 개략적으로 나타낸 개념도이다. 5 is a flowchart schematically illustrating a firmware update method according to another embodiment of the present invention, and FIG. 6 is a conceptual diagram schematically illustrating a flash memory to explain a firmware update method according to another embodiment of the present invention.

도 5와 도 6를 참조하면, 본 발명의 다른 실시 예에 따른 펌웨어 업데이트방법은 펌웨어 업데이트방법으로서, 세그먼트저장단계(S210), 주소값저장단계(S220) 및 세그먼트접근단계(S230)를 포함한다.5 and 6 , a firmware update method according to another embodiment of the present invention is a firmware update method, and includes a segment storage step (S210), an address value storage step (S220), and a segment access step (S230). .

세그먼트저장단계(S210)에서는 업데이트를 위한 새로운 펌웨어 세그먼트(110)를 세그먼트관리부(11)에 의해 플래시메모리(300)의 가용영역(330)에 저장시키는 단계이다. In the segment storage step S210 , a new firmware segment 110 for update is stored in the available area 330 of the flash memory 300 by the segment management unit 11 .

세그먼트저장단계(S210)에서 새로운 펌웨어 세그먼트(110)가 저장되는 플래시메모리(300)의 가용영역(330)은 새로운 펌웨어 세그먼트(110)의 크기에 대응되는 크기를 갖춘 것이 바람직하다. 참고로, 도 5에서 참고로, 도면에서 #1, #2,...#N 은 플래시메모리(200)의 N 개의 섹터(310) 각각을 나타낸 표시이며, 도면부호 335는 가용영역(330) 내에 세그먼트(110)가 저장된 것을 나타낸다.Preferably, the available area 330 of the flash memory 300 in which the new firmware segment 110 is stored in the segment storage step S210 has a size corresponding to the size of the new firmware segment 110 . For reference, for reference in FIG. 5 , #1, #2, ... #N in the drawing indicate each of the N sectors 310 of the flash memory 200 , and reference numeral 335 denotes an available area 330 . It indicates that the segment 110 is stored within.

다음으로, 주소값저장단계(S220)에서는 플래시메모리(300)에 저장되어 있던 기존의 세그먼트의 주소값을 세그먼트저장단계(S210)에서 저장된 새로운 펌웨어 세그먼트(110)의 주소값으로 대체하여 저장시켜준다.Next, in the address value storage step S220, the address value of the existing segment stored in the flash memory 300 is replaced with the address value of the new firmware segment 110 stored in the segment storage step S210 and stored. .

플래시메모리(300)의 섹터(310) 또는 가용영역(330)에 저장되는 펌웨어 세그먼트의 주소값을 별도로 관리하기 위하여 플래시메모리(300)에는 세그먼트의 주소가 별도로 저장되는 주소관리영역(320)이 마련되어 있다. 그리고, 주소값저장단계(S220)에서, 주소관리영역(320)에 저장되어 있던 기존의 세그먼트의 주소값을 새로운 펌웨어 세그먼트(110)의 주소값으로 대체하여 주소관리영역(320)에 저장되는 것이 바람직하다.In order to separately manage the address value of the firmware segment stored in the sector 310 or the availability area 330 of the flash memory 300, an address management area 320 in which the address of the segment is separately stored is provided in the flash memory 300. there is. And, in the address value storage step (S220), the address value of the existing segment stored in the address management area 320 is replaced with the address value of the new firmware segment 110 and stored in the address management area 320 desirable.

주소관리영역(320)에서 새로운 펌웨어 세그먼트(110)의 주소값으로 대체하면서, 기존의 세그먼트가 저장되어 있던 영역(315)은 주소관리영역(320)에서 주소값이 삭제되면서 새로운 가용영역이 된다. 그리고 다음의 펌웨어 업그레이드시 세그먼트가 저장될 공간으로 이용될 수 있게 된다.While replacing the address value of the new firmware segment 110 in the address management area 320 , the area 315 in which the existing segment is stored becomes a new usable area as the address value is deleted from the address management area 320 . In addition, when the next firmware upgrade is performed, the segment can be used as a storage space.

다음으로 세그먼트접근단계(S230)에서는 주소값저장단계(S220)에서 저장된 새로운 펌웨어 세그먼트의 주소값에 따라 간접적으로 점프하여 새로운 펌웨어 세그먼트로 접근한다.Next, in the segment access step ( S230 ), the new firmware segment is accessed by jumping indirectly according to the address value of the new firmware segment stored in the address value storage step ( S220 ).

주소관리영역(320)에 저장된 세그먼트의 주소값에 따라 간접적으로 점프하여 세그먼트로 접근하는 것은 앞서 설명한 바와 대동소이하다. 주소관리영역(220)에 저장된 주소값에 따라 간접적으로 점프함으로써 각 세그먼트로 접근하여 새로운 펌웨어의 업데이트가 이루어진다.Accessing the segment by indirectly jumping according to the address value of the segment stored in the address management area 320 is substantially the same as described above. By indirectly jumping according to the address value stored in the address management area 220, each segment is accessed and a new firmware is updated.

이와 같이, 펌웨어 업데이트시, 최소한의 플래시 메모리 가용영역에, 업데이트할 새로운 펌웨어의 세그먼트를 저장한 뒤 세그먼트의 주소들을 관리하는 주소관리영역에서 기존의 세그먼트로 점프하는 주소값을 새롭게 저장된 세그먼트가 위치한 곳의 주소값으로 업데이트할 수 있다.In this way, when updating firmware, the segment of the new firmware to be updated is stored in the minimum flash memory available area, and the address value jumping to the existing segment in the address management area that manages the addresses of the segment is stored where the newly stored segment is located. can be updated with the address value of

이상에서 설명한 바와 같이, 본 발명에 따른 펌웨어 업데이트방법에 의하면, 펌웨어 업데이트에 요구되는 시간과 비용을 절감할 수 있으며 안정적으로 펌웨어 업데이트를 실현시켜 줄 수 있다는 장점이 있다.As described above, according to the firmware update method according to the present invention, the time and cost required for firmware update can be reduced and the firmware update can be stably realized.

이상에서 설명된 바와 같이, 본 발명에 대한 구체적인 설명은 첨부된 도면을 참조한 실시 예들에 의해서 이루어졌지만, 상술한 실시 예들은 본 발명의 바람직한 실시 예를 들어 설명하였을 뿐이기 때문에, 본 발명이 상기의 실시 예에만 국한되는 것으로 이해되어져서는 아니되며, 본 발명의 권리범위는 후술하는 청구범위 및 그 등가개념으로 이해되어져야 할 것이다. As described above, the detailed description of the present invention has been made by the embodiments with reference to the accompanying drawings, but since the above-described embodiments have only been described with reference to the preferred embodiments of the present invention, the present invention It should not be construed as being limited only to the embodiments, and the scope of the present invention should be understood as the following claims and their equivalents.

11 : 세그먼트관리부 12 : 세그먼트관리부
13 : 세그먼트접근부 100 : 펌웨어
110 : 세그먼트(segment) 20, 200, 300 : 플래시메모리
10, 310 : 섹터 220, 320 : 주소저장영역
11: segment management unit 12: segment management unit
13: segment access part 100: firmware
110: segment 20, 200, 300: flash memory
10, 310: Sector 220, 320: Address storage area

Claims (11)

업데이트를 위한 새로운 펌웨어에 속하는 세그먼트를 플래시메모리에 저장시키는 세그먼트관리부;
상기 세그먼트관리부에 의해 상기 플래시메모리에 저장된 상기 세그먼트의 주소값을 저장시키기 위한 주소관리영역을 상기 플래시메모리의 내부에 마련하고, 상기 주소관리영역에 상기 세그먼트의 주소값을 저장시키는 주소저장관리부; 및
상기 주소저장관리부에 의해 상기 주소관리영역에 저장된 상기 세그먼트의 주소값에 따라 간접적으로 점프하여 상기 세그먼트로 접근하는 세그먼트접근부; 를 포함하는 것을 특징으로 하는 펌웨어 업데이트 장치.
a segment management unit for storing a segment belonging to new firmware for update in a flash memory;
an address storage management unit that provides an address management area inside the flash memory for storing the address value of the segment stored in the flash memory by the segment management unit, and stores the address value of the segment in the address management area; and
a segment access unit accessing the segment by indirectly jumping according to the address value of the segment stored in the address management area by the address storage management unit; Firmware update device comprising a.
제 1항에 있어서,
상기 세그먼트관리부는,
상기 새로운 펌웨어를 다수개의 상기 세그먼트로 분할하고, 분할된 상기 세그먼트 각각을 상기 플래시메모리의 각 섹터별로 저장시키는 것을 특징으로 하는 펌웨어 업데이트 장치.
The method of claim 1,
The segment management unit,
and dividing the new firmware into a plurality of segments, and storing each of the divided segments for each sector of the flash memory.
제 2항에 있어서,
상기 주소저장관리부에 의해 마련되는 상기 주소관리영역은 하나 또는 다수개의 상기 세그먼트의 주소값만을 저장하는 영역으로서 상기 플래시메모리 내부에서 별도로 구분되는 영역으로 마련되는 것을 특징으로 하는 펌웨어 업데이트 장치.
3. The method of claim 2,
The address management area provided by the address storage management unit is an area for storing only one or more address values of the segments, and is provided as a separate area within the flash memory.
제 1항에 있어서,
상기 주소저장관리부는,
상기 플래시메모리에 기존의 세그먼트의 주소값이 저장되어 있는 경우, 상기 기존의 세그먼트의 주소값을 새로운 펌웨어 세그먼트의 주소값으로 대체하여 저장시키는 것을 특징으로 하는 펌웨어 업데이트 장치.
The method of claim 1,
The address storage management unit,
and replacing the address value of the existing segment with the address value of the new firmware segment and storing the stored address value in the flash memory.
업데이트를 위한 새로운 펌웨어에 속하는 세그먼트를 플래시메모리에 저장시키는 준비단계;
상기 준비단계에서 저장된 상기 세그먼트의 주소값을 저장시키기 위한 주소관리영역을 상기 플래시메모리의 내부에 마련하는 주소관리영역 형성단계;
상기 주소관리영역 형성단계에서 마련된 상기 주소관리영역에 상기 세그먼트의 주소값을 저장하는 주소값저장단계; 및
상기 주소값저장단계에서 상기 주소관리영역에 저장된 상기 세그먼트의 주소값에 따라 간접적으로 점프하여 상기 세그먼트로 접근하는 세그먼트접근단계;를 포함하는 것을 특징으로 하는 펌웨어 업데이트방법.
a preparation step of storing a segment belonging to a new firmware for update in a flash memory;
an address management area forming step of providing an address management area inside the flash memory for storing the address value of the segment stored in the preparation step;
an address value storage step of storing the address value of the segment in the address management area provided in the address management area forming step; and
and a segment access step of accessing the segment by indirectly jumping according to the address value of the segment stored in the address management area in the address value storage step.
제 5항에 있어서,
상기 준비단계는,
업데이트를 위한 새로운 펌웨어를 다수개의 세그먼트(segment)로 분할하는 분할단계; 및
상기 분할단계에서 다수개로 분할된 상기 세그먼트 각각을 플래시메모리의 각 섹터별로 저장시키는 저장단계;를 포함하는 것을 특징으로 하는 펌웨어 업데이트방법.
6. The method of claim 5,
The preparation step is
dividing the new firmware for update into a plurality of segments; and
and a storage step of storing each of the segments divided into a plurality in the dividing step for each sector of a flash memory.
제 6항에 있어서,
업데이트를 위한 상기 새로운 펌웨어는,
상기 분할단계에서 다수개의 상기 세그먼트로 나누어 함수가 배치될 수 있도록 작성된 것을 특징으로 하는 펌웨어 업데이트방법.
7. The method of claim 6,
The new firmware for update,
The firmware update method, characterized in that it is written so that the function can be arranged by dividing the segment into a plurality of segments in the dividing step.
제 6항에 있어서,
상기 주소관리영역 형성단계에서,
상기 주소관리영역은 하나 또는 다수개의 상기 세그먼트의 주소값만을 저장하는 영역으로서 상기 플래시메모리 내부에서 별도로 구분되는 영역으로 마련되는 것을 특징으로 하는 펌웨어 업데이트방법.
7. The method of claim 6,
In the address management area forming step,
The address management area is an area for storing only address values of one or a plurality of segments, and is provided as a separate area within the flash memory.
펌웨어 업데이트방법으로서,
업데이트를 위한 새로운 펌웨어 세그먼트를 플래시메모리의 가용영역에 저장시키는 세그먼트저장단계;
상기 플래시메모리에 저장되어 있던 기존의 세그먼트의 주소값을 상기 세그먼트저장단계에서 저장된 상기 새로운 펌웨어 세그먼트의 주소값으로 대체하여 저장시키는 주소값저장단계; 및
상기 주소값저장단계에서 저장된 상기 새로운 펌웨어 세그먼트의 주소값에 따라 간접적으로 점프하여 상기 새로운 펌웨어 세그먼트로 접근하는 세그먼트접근단계;를 포함하는 것을 특징으로 하는 펌웨어 업데이트방법.
A firmware update method comprising:
a segment storage step of storing a new firmware segment for update in an available area of a flash memory;
an address value storage step of replacing the address value of the existing segment stored in the flash memory with the address value of the new firmware segment stored in the segment storage step and storing the replaced; and
and a segment access step of accessing the new firmware segment by jumping indirectly according to the address value of the new firmware segment stored in the address value storage step.
제 9항에 있어서,
상기 세그먼트저장단계에서 상기 새로운 펌웨어 세그먼트가 저장되는 상기 플래시메모리의 가용영역은 상기 새로운 펌웨어 세그먼트의 크기에 대응되는 크기를 갖춘 것을 특징으로 하는 펌웨어 업데이트방법.
10. The method of claim 9,
In the segment storage step, the available area of the flash memory in which the new firmware segment is stored has a size corresponding to the size of the new firmware segment.
제 10항에 있어서,
상기 플래시메모리에는 세그먼트의 주소가 별도로 저장된 주소관리영역이 마련되어 있고,
상기 주소값저장단계에서, 상기 주소관리영역에 저장되어 있던 상기 기존의 세그먼트의 주소값을 상기 새로운 펌웨어 세그먼트의 주소값으로 대체하여 상기 주소관리영역에 저장되는 것을 특징으로 하는 펌웨어 업데이트방법.
11. The method of claim 10,
The flash memory has an address management area in which the address of the segment is separately stored,
In the address value storage step, the address value of the existing segment stored in the address management area is replaced with the address value of the new firmware segment and stored in the address management area.
KR1020200100253A 2020-08-11 2020-08-11 Firmware Update Device and Update Method KR102375290B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200100253A KR102375290B1 (en) 2020-08-11 2020-08-11 Firmware Update Device and Update Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200100253A KR102375290B1 (en) 2020-08-11 2020-08-11 Firmware Update Device and Update Method

Publications (2)

Publication Number Publication Date
KR20220019940A true KR20220019940A (en) 2022-02-18
KR102375290B1 KR102375290B1 (en) 2022-03-17

Family

ID=80495165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200100253A KR102375290B1 (en) 2020-08-11 2020-08-11 Firmware Update Device and Update Method

Country Status (1)

Country Link
KR (1) KR102375290B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100818237B1 (en) 2001-07-28 2008-04-01 삼성전자주식회사 Firmware upgrade system and a method for portable device
KR20090055074A (en) * 2007-11-28 2009-06-02 웹싱크 주식회사 Method of transaction-based firmware upgrade in mobile telephone and firmware upgrade system thereof
KR20100110652A (en) * 2009-04-03 2010-10-13 삼성전자주식회사 Memory apparatus and method for updating firmware of the memory apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100818237B1 (en) 2001-07-28 2008-04-01 삼성전자주식회사 Firmware upgrade system and a method for portable device
KR20090055074A (en) * 2007-11-28 2009-06-02 웹싱크 주식회사 Method of transaction-based firmware upgrade in mobile telephone and firmware upgrade system thereof
KR20100110652A (en) * 2009-04-03 2010-10-13 삼성전자주식회사 Memory apparatus and method for updating firmware of the memory apparatus

Also Published As

Publication number Publication date
KR102375290B1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
US20030037282A1 (en) Method and system for version control in a fault tolerant system
US6834384B2 (en) Methods and apparatus for upgrading firmware in an embedded system
US7389409B2 (en) Electronic device configuration management systems and methods
US8789035B2 (en) Method and apparatus for updating firmware
US20060200815A1 (en) Electronic Device and Method for Updating Related Programs
US9268552B1 (en) Patching improvement for executables in memory constrained devices
CN105487885B (en) Hand swims hot update method
CN107506221A (en) Application program updating method, apparatus and equipment
US20070294683A1 (en) Methods of generating, linking and updating component-based software and information storage medium having such software recorded thereon
US8689209B2 (en) Updating content without using a mini operating system
WO2017000567A1 (en) Bootrom upgrading method and device
CN110209420A (en) A kind of method and device updating bootstrap loader
US9715398B2 (en) Program code loading method of application and computing system using the same
JP2023009293A (en) Communication apparatus and information processing method
US9037773B2 (en) Methods for processing and addressing data between volatile memory and non-volatile memory in an electronic apparatus
KR102375290B1 (en) Firmware Update Device and Update Method
JP5084853B2 (en) Firmware update device, communication device, electronic device, firmware update system, firmware update method, and program
CN115390880A (en) Firmware upgrading method and device, storage medium and electronic equipment
US20240012633A1 (en) Device firmware descriptors
EP3584697A1 (en) Information processing device
CN110943871A (en) Resource interval adjusting method and device
US20240119036A1 (en) Management of two application versions in one database table
KR102142905B1 (en) Automatic Restoring Method of User File System in Communication Terminal
KR100321999B1 (en) Method for program patch using script
CN113641382A (en) Partitionable system updating method and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right