KR102429346B1 - Memory Upgrade System And Method - Google Patents

Memory Upgrade System And Method Download PDF

Info

Publication number
KR102429346B1
KR102429346B1 KR1020150136049A KR20150136049A KR102429346B1 KR 102429346 B1 KR102429346 B1 KR 102429346B1 KR 1020150136049 A KR1020150136049 A KR 1020150136049A KR 20150136049 A KR20150136049 A KR 20150136049A KR 102429346 B1 KR102429346 B1 KR 102429346B1
Authority
KR
South Korea
Prior art keywords
upgrade
size
mtd
environment variable
image
Prior art date
Application number
KR1020150136049A
Other languages
Korean (ko)
Other versions
KR20170037017A (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 KR1020150136049A priority Critical patent/KR102429346B1/en
Publication of KR20170037017A publication Critical patent/KR20170037017A/en
Application granted granted Critical
Publication of KR102429346B1 publication Critical patent/KR102429346B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템은 MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지; 상기 업그레이드 이미지를 수신하는 데이터 입력부; 상기 업그레이드 이미지 및 상기 환경변수 데이터를 기록하는 저장부; 상기 업그레이드 이미지 및 상기 환경변수 데이터의 기록의 성공 여부를 판단하고, 상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 제어부를 포함한다.The memory upgrade system according to an embodiment of the present invention for solving the above problems includes environment variable data having information about the size of an MTD partition, an upgrade image used for memory upgrade; a data input unit for receiving the upgrade image; a storage unit for recording the upgrade image and the environment variable data; and a control unit that determines whether recording of the upgrade image and the environment variable data is successful, and dynamically creates a new MTD partition in the storage unit based on the environment variable data.

Description

메모리 업그레이드 시스템 및 방법{Memory Upgrade System And Method}Memory Upgrade System And Method}

본 발명은 메모리 업그레이드 시스템 및 방법에 관한 것으로써, 보다 상세하게는 메모리 업그레이드를 수행할 때, 업그레이드 이미지의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여 정상적인 기능을 수행하도록 하는 메모리 업그레이드 시스템 및 방법에 관한 것이다.The present invention relates to a memory upgrade system and method, and more particularly, to a memory upgrade system and method for performing a normal function by making the size of an upgrade image always smaller than the size of an MTD partition when performing a memory upgrade. it's about

임베디드 시스템(Embedded System)이란, 미리 정해진 특정 기능을 수행하기 위해 각종 전자제품이나 장치 등에 프로세서를 내장하여 장치를 조작하는 제어시스템이다. 임베디드 시스템은 MCU(Main Control Unit)와 그 MCU를 구동하여 특정한 기능을 수행하도록 프로그램을 탑재함으로써 해당 장치의 용도에 맞는 기본적인 컴퓨팅 능력을 가지고 그 용도에 맞는 어플리케이션을 이용하여 제어 동작을 수행하게 된다.An embedded system is a control system that operates a device by embedding a processor in various electronic products or devices to perform a predetermined specific function. An embedded system has a basic computing power suitable for the purpose of the device by loading a program to perform a specific function by driving the MCU (Main Control Unit) and the MCU, and performs control operations using an application suitable for the purpose.

이러한 임베디드 시스템은 임베디드 리눅스(Embedded Linux)를 OS(운영체제)로 사용하고, 운영체제와 프로그램을 저장하기 위해 메모리 장치를 통해 프로그램과 리소스를 저장한다. 최근 하드웨어의 소형화에 따라, 이러한 임베디드 시스템도 크기가 작은 메모리를 사용하며 단가를 낮추고 성능이 최적화되도록 구현하여야 한다. 따라서 임베디드 시스템에서는 저장공간으로 플래시 메모리(Flash Memory)를 많이 사용하고 있다.Such an embedded system uses Embedded Linux as an OS (operating system), and stores programs and resources through a memory device to store the operating system and programs. In accordance with the recent miniaturization of hardware, such an embedded system also uses a small-sized memory and needs to be implemented to lower the unit cost and optimize the performance. Therefore, in embedded systems, a lot of flash memory is used as a storage space.

플래시 메모리는 작고 가벼우며, 비휘발성이면서도 전력 소모가 적고 충격에 강하다. 이러한 장점 때문에 최근 휴대폰이나 디지털 카메라 등의 휴대 기기의 저장 장치로 많이 사용되고 있다. 이러한 플래시 메모리를 하드 디스크와 같이 사용하기 위하여 MTD(Memory Technology Device)를 사용하게 된다. MTD란 다양한 메모리 형태의 장치를 지원하기 위해 만들어진 기술이며, 플래시 메모리는 MTD에 의해 MTD 파티션(MTD Partition)이라고 부르는 몇 개의 부분들로 나누어져 있고, MTD 서브시스템이 플래시 메모리의 MTD 파티션을 지원한다.Flash memory is small and light, non-volatile, low power consumption, and shock-resistant. Due to these advantages, recently, it has been widely used as a storage device for portable devices such as cell phones and digital cameras. In order to use such a flash memory together with a hard disk, a Memory Technology Device (MTD) is used. MTD is a technology created to support devices of various memory types. Flash memory is divided into several parts called MTD partitions by MTD, and the MTD subsystem supports MTD partitions of flash memory. .

그러나 종래에는 각 MTD 파티션마다 사이즈(Size)가 미리 할당이 되도록 세팅되어 있었다. 따라서 상기 업그레이드를 위해 업그레이드 이미지(Upgrade Image)를 받아 기록(Write) 동작을 할 때, 상기 업그레이드 이미지의 사이즈가 상기 MTD 파티션의 사이즈보다 클 경우에는 시스템이 정상적으로 작동하지 않을 수 있어 문제가 되었다.However, in the prior art, the size was set to be allocated in advance for each MTD partition. Therefore, when a write operation is performed after receiving an upgrade image for the upgrade, if the size of the upgrade image is larger than the size of the MTD partition, the system may not operate normally, which is a problem.

한국공개공보 제 2009-0060774 호Korean Publication No. 2009-0060774 한국공개공보 제 2013-0075018 호Korea Publication No. 2013-0075018

본 발명이 해결하고자 하는 과제는, 메모리 업그레이드를 수행할 때 업그레이드 이미지의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여 시스템 펌웨어가 정상적인 기능을 수행하도록 하는 메모리 업그레이드 시스템 및 방법을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a memory upgrade system and method in which the size of the upgrade image is always smaller than the size of the MTD partition when performing the memory upgrade so that the system firmware performs a normal function.

본 발명의 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems of the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템은 MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지; 상기 업그레이드 이미지를 수신하는 데이터 입력부; 상기 업그레이드 이미지 및 상기 환경변수 데이터를 기록하는 저장부; 상기 업그레이드 이미지 및 상기 환경변수 데이터의 기록의 성공 여부를 판단하고, 상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 제어부를 포함한다.The memory upgrade system according to an embodiment of the present invention for solving the above problems includes environment variable data having information about the size of an MTD partition, an upgrade image used for memory upgrade; a data input unit for receiving the upgrade image; a storage unit for recording the upgrade image and the environment variable data; and a control unit that determines whether recording of the upgrade image and the environment variable data is successful, and dynamically creates a new MTD partition in the storage unit based on the environment variable data.

상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 메모리 업그레이드 방법은 USB 또는 인터넷을 통해 업그레이드 프로그램이 선택되어 시작되는 단계; MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지를 복사하는 단계; 저장부에 있는 MTD 파티션에 기록된 기존의 이미지를 삭제하고 새로운 상기 업그레이드 이미지를 기록하는 단계; 상기 업그레이드 이미지를 기록하는 동작이 성공하면, 상기 업그레이드 프로그램이 상기 MTD 파티션에 있는 기존의 환경변수 데이터를 삭제하고 새로운 상기 환경변수 데이터를 기록하는 단계; 및 상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 단계를 포함한다.A memory upgrade method according to another embodiment of the present invention for solving the above problems includes the steps of starting by selecting an upgrade program through USB or the Internet; copying an upgrade image that includes environment variable data having information about the size of the MTD partition and is used for memory upgrade; deleting the existing image recorded in the MTD partition in the storage unit and recording the new upgraded image; deleting, by the upgrade program, existing environment variable data in the MTD partition and recording the new environment variable data when the operation of recording the upgrade image is successful; and dynamically creating a new MTD partition in the storage unit based on the environment variable data.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

본 발명의 실시예들에 의하면 적어도 다음과 같은 효과가 있다.According to the embodiments of the present invention, there are at least the following effects.

업그레이드 이미지에 MTD 파티션의 사이즈에 관한 정보가 포함되며 플래시 메모리의 MTD 파티션의 사이즈가 동적으로 할당됨으로써, 메모리 업그레이드를 수행할 때 상기 MTD 파티션의 사이즈에 관한 정보에 따라 MTD 파티션의 영역이 새로 할당이 되어 업그레이드 이미지의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여, 시스템 펌웨어가 정상적인 기능을 수행하도록 한다.Information on the size of the MTD partition is included in the upgrade image and the size of the MTD partition of the flash memory is dynamically allocated. Therefore, when performing the memory upgrade, the area of the MTD partition is newly allocated according to the information on the size of the MTD partition. This ensures that the size of the upgrade image is always smaller than the size of the MTD partition, so that the system firmware performs normal functions.

본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effect according to the present invention is not limited by the contents exemplified above, and more various effects are included in the present specification.

도 1은 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 업그레이드 방법의 흐름도이다.
도 3은 종래의 저장부(102)의 MTD 파티션 분할을 도시한 테이블이다.
도 4는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션 분할을 도시한 테이블이다.
도 5는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션의 사이즈를 동적으로 세팅하기 위한 파일의 내용을 나타낸 참고도이다.
도 6은 본 발명의 일 실시예에 따른 복수의 MTD 파티션마다 사이즈를 할당하는 방법을 나타낸 흐름도이다.
1 is a block diagram of a memory upgrade system 1 according to an embodiment of the present invention.
2 is a flowchart of a memory upgrade method according to an embodiment of the present invention.
3 is a table showing the MTD partition division of the conventional storage unit 102 .
4 is a table showing MTD partition division of the storage unit 102 according to an embodiment of the present invention.
5 is a reference diagram illustrating contents of a file for dynamically setting the size of the MTD partition of the storage unit 102 according to an embodiment of the present invention.
6 is a flowchart illustrating a method of allocating sizes for a plurality of MTD partitions according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only these embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein may be used with the meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless clearly defined in particular.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural, unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)의 블록도이다.1 is a block diagram of a memory upgrade system 1 according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 시스템 펌웨어(System Firmware)를 업그레이드하려는 업그레이드 대상 모듈(10)은 입력부(101), 저장부(102), 제어부(103)를 포함한다. 입력부(101)는 CD-ROM 인터페이스, USB 인터페이스, 인터넷 통신 인터페이스, 무선 통신 인터페이스를 포함하는 다양한 인터페이스 중 적어도 하나의 인터페이스를 통해 업그레이드 이미지(20)를 받을 수 있다. 여기서 업그레이드 이미지(20)는 시스템의 새로운 커널(Kernel), 루트 파일 시스템(Root File System)을 포함한다.As shown in FIG. 1 , the upgrade target module 10 for upgrading system firmware includes an input unit 101 , a storage unit 102 , and a control unit 103 . The input unit 101 may receive the upgrade image 20 through at least one of various interfaces including a CD-ROM interface, a USB interface, an Internet communication interface, and a wireless communication interface. Here, the upgrade image 20 includes a new kernel of the system and a root file system.

업그레이드 이미지(20)는 Uboot 환경변수(201)를 포함한다. Uboot(Universal Boot Loader)란 주로 PowerPC와 ARM 임베디드 시스템에서 사용되는 부트로더(Boot Loader)를 말한다. 본 발명을 구현하기 위하여 다양한 종류의 부트로더가 사용될 수 있으나 본 발명의 일 실시예에서는 Uboot를 사용하며, 이하 Uboot를 사용한 본 발명의 일 실시예에 대하여 설명한다. Uboot 환경변수(201)란 플래시 메모리의 일정 영역에 저장되어 부팅 환경을 변경시키는 값으로, 대표적으로 bootargs, bootcmd, bootdelay, ipaddr 등이 있다. 여기서 bootargs는 커널에 값을 전달하는 환경변수이고, Uboot 환경변수(201) 중에서 특히 bootargs에는 복수의 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)가 포함되어 있다.The upgrade image 20 includes the Uboot environment variable 201 . Uboot (Universal Boot Loader) refers to a boot loader mainly used in PowerPC and ARM embedded systems. Various types of boot loaders may be used to implement the present invention. However, in one embodiment of the present invention, Uboot is used, and an embodiment of the present invention using Uboot will be described below. The Uboot environment variable 201 is a value that is stored in a certain area of the flash memory to change the booting environment, and typically includes bootargs, bootcmd, bootdelay, ipaddr, and the like. Here, bootargs is an environment variable that transmits a value to the kernel, and among Uboot environment variables 201, bootargs, in particular, includes information 202 on the size of each of the plurality of MTD partition areas.

저장부(102)는 데이터를 저장할 수 있는 영역을 말하며, 여기서 저장부(102)는 다양한 종류가 있을 수 있으나, 본 발명의 일 실시예에 따르면 플래시 메모리인 것이 바람직하다. 따라서 이하, 저장부(102)가 플래시 메모리인 본 발명의 일 실시예에 대하여 설명한다. 플래시 메모리는 복수의 MTD 파티션으로 분할되며, 각 MTD 파티션의 영역마다 저장되는 부트 컨텐츠가 다르다. 하기에 기술할 바 본 발명의 일 실시예에 따른 플래시 메모리는 MTD 파티션의 영역이 미리 할당되지 않고, MTD 파티션의 사이즈 정보에 따라 동적으로 영역이 할당된다. 여기서 동적으로 영역이 할당된다는 것은, MTD 파티션의 사이즈가 단순히 가변적이라는 것이 아니라, 사용자가 직접 사이즈를 변경하는 작업 없이도 MTD 파티션의 사이즈에 관한 정보(202)에 따라 MTD 파티션이 자동적으로 분할되는 것을 의미한다.The storage unit 102 refers to an area capable of storing data. Here, the storage unit 102 may be of various types, but according to an embodiment of the present invention, a flash memory is preferable. Accordingly, an embodiment of the present invention in which the storage unit 102 is a flash memory will be described below. The flash memory is divided into a plurality of MTD partitions, and boot contents stored in each MTD partition area are different. As will be described below, in the flash memory according to an embodiment of the present invention, the area of the MTD partition is not allocated in advance, but the area is dynamically allocated according to the size information of the MTD partition. Here, dynamically allocating a region does not mean that the size of the MTD partition is simply variable, but that the MTD partition is automatically divided according to the information 202 about the size of the MTD partition without the user directly changing the size. do.

따라서, 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)은 업그레이드 이미지(20)를 받으면, 업그레이드 이미지(20) 내에 포함된 MTD 파티션의 사이즈에 관한 정보(202)에 따라 플래시 메모리의 MTD 파티션 영역이 새로 할당되므로, 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여 시스템 펌웨어가 정상적인 기능을 수행하도록 한다.Therefore, when the memory upgrade system 1 according to an embodiment of the present invention receives the upgrade image 20 , the MTD partition of the flash memory according to the information 202 on the size of the MTD partition included in the upgrade image 20 . Since the area is newly allocated, the size of the upgrade image 20 is always smaller than the size of the MTD partition so that the system firmware performs a normal function.

제어부(103)는 저장부(102)의 MTD 파티션에 기록(Write)된 기존의 이미지와Uboot 환경변수 이미지를 삭제(Erase)하고, 새로운 업그레이드 이미지(20)와 Uboot 환경변수 이미지를 기록(Write)하며 기록 성공 여부를 판단한다. 여기서 제어부(103)는 본 발명의 일 실시예에 따른 메모리 업그레이드를 진행하는데 필요한 제어를 하는 모든 모듈들을 포함하며, 부트로더, 커널 등이 이에 해당한다. 종래의 경우에는 제어부(103)가 업그레이드 이미지(20)의 사이즈와 MTD 파티션의 사이즈를 비교하는 과정이 필요하나, 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)은 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 항상 작으므로 제어부(103)가 따로 사이즈를 비교하는 과정이 불필요하다.The control unit 103 deletes the existing image and Uboot environment variable image recorded in the MTD partition of the storage unit 102 (Erase), and writes the new upgrade image 20 and the Uboot environment variable image (Write) and determine whether the recording was successful or not. Here, the control unit 103 includes all modules that control necessary to perform a memory upgrade according to an embodiment of the present invention, and includes a boot loader, a kernel, and the like. In the conventional case, it is necessary for the control unit 103 to compare the size of the upgrade image 20 with the size of the MTD partition. Since the size is always smaller than the size of the MTD partition, there is no need for the controller 103 to separately compare the sizes.

도 2는 본 발명의 일 실시예에 따른 메모리 업그레이드 방법의 흐름도이다.2 is a flowchart of a memory upgrade method according to an embodiment of the present invention.

시스템 펌웨어(System Firmware)를 업그레이드(Upgrade)하기 위해 도 2에 도시된 바와 같이, 우선 USB(Universal Serial Bus) 또는 인터넷(Internet)을 통해 커널 및 루트 파일 시스템의 업그레이드를 수행할 업그레이드 프로그램이 선택된다(S201). 상기 선택된 업그레이드 프로그램이 시작(Launch)되면(S202) Uboot 환경변수(201) 이미지가 항상 포함된 업그레이드 이미지(20)가 저장부(102)로 복사된다(S203). Uboot 환경변수(201)에는 복수의 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)가 포함되어 있다.In order to upgrade the system firmware (System Firmware), as shown in Figure 2, first, an upgrade program to perform the upgrade of the kernel and the root file system through a USB (Universal Serial Bus) or the Internet (Internet) is selected (S201). When the selected upgrade program is launched (S202), the upgrade image 20 including the Uboot environment variable 201 image is always copied to the storage unit 102 (S203). The Uboot environment variable 201 includes information 202 about the size of each of the plurality of MTD partition areas.

상기 복사된 업그레이드 프로그램이 수행(Run)되면(S204) MTD 파티션에 기록(Write)된 기존의 이미지가 삭제(Erase)되고, 새로운 업그레이드 이미지(20)가 기록된다(S205). 새로운 업그레이드 이미지(20)의 기록이 성공하지 않는다면(S206) 시스템은 재부팅 후 작동을 멈추게 되나(S207, S208), 이 기록이 성공한다면(S206) 부트 컨텐츠들의 영역 할당을 위해, 업그레이드 프로그램은 MTD 파티션에 기록(Write)된 기존의 Uboot 환경변수(201) 이미지를 삭제(Erase)하고, 새로운 Uboot 환경변수(201) 이미지를 기록하게 된다(S209). Uboot 환경변수(201) 이미지의 기록이 성공하지 않는다면(S210) 시스템은 재부팅 후 작동을 멈추게 되나(S211, S212), 이 기록이 성공한다면(S210) 시스템은 재시작 후 새로운 업그레이드 이미지(20)를 시작한다(S213, S214). 이 때, Uboot 환경변수(201)에 포함된 복수의 MTD 파티션 영역 각각의 사이즈 정보(202)로 인해 MTD 파티션이 새롭게 분할 생성되고, 업그레이드 이미지(20)의 사이즈는 MTD 파티션의 사이즈보다 항상 작게 되어 시스템은 올바른 기능을 수행할 수 있다(S215).When the copied upgrade program is run (S204), the existing image written to the MTD partition is erased, and a new upgraded image 20 is recorded (S205). If the recording of the new upgrade image 20 is not successful (S206), the system stops working after rebooting (S207, S208). The image of the existing Uboot environment variable 201 written to is deleted (Erase), and a new image of the Uboot environment variable 201 is recorded (S209). If the recording of the Uboot environment variable 201 image is not successful (S210), the system stops working after rebooting (S211, S212), but if this recording is successful (S210), the system restarts and starts a new upgrade image (20) (S213, S214). At this time, the MTD partition is newly divided and created due to the size information 202 of each of the plurality of MTD partition areas included in the Uboot environment variable 201, and the size of the upgrade image 20 is always smaller than the size of the MTD partition. The system may perform the correct function (S215).

도 3은 종래의 저장부(102)의 MTD 파티션 분할을 도시한 테이블이고, 도 4는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션 분할을 도시한 테이블이다.3 is a table illustrating MTD partition division of the conventional storage unit 102, and FIG. 4 is a table illustrating MTD partition division of the storage unit 102 according to an embodiment of the present invention.

임베디드 시스템은 전원 온(On) 시 MTD 0의 부트로더(Boot Loader)가 구동되고 MTD 2의 커널(Kernel)을 로딩(Loading)한 후, MTD 4의 루트 파일 시스템(Root File System)의 시스템 파일(System File)을 로딩하여 구동된다. 이러한 임베디드 시스템은 시스템 펌웨어를 업그레이드 할 때에는, 도 2에 도시된 흐름도에 따라 USB 또는 인터넷을 통해 MTD 2의 커널 및 MTD 4의 루트 파일 시스템을 업그레이드한다.When the embedded system is powered on, the boot loader of MTD 0 is driven, the kernel of MTD 2 is loaded, and the system file of the root file system of MTD 4 is loaded. (System File) is loaded and driven. When upgrading the system firmware, such an embedded system upgrades the kernel of MTD 2 and the root file system of MTD 4 through USB or the Internet according to the flowchart shown in FIG. 2 .

도 3 및 도 4에 도시된 바와 같이, MTD0 영역은 운영체제를 구동하기 위한 부트로더가 저장된 영역이고, MTD1 영역은 상기 부트로더의 환경설정이 저장된 영역이다. MTD2 영역은 정상적으로 로드되는 리눅스 커널 이미지가 저장된 영역이고, MTD3 영역은 로고(Logo) 즉, 하드웨어, 응용 소프트웨어가 부분적으로 교체되어도 안정적인 동작을 인증해 주는 로고가 저장된 영역이다. MTD4 영역은 정상적으로 로드되는 루트 파일 시스템이 저장된 영역이고, MTD5 영역은 정상적으로 로드되는 사용자 어플리케이션이 저장된 영역이다. MTD6 영역은 어플리케이션 설정 파라미터들이 저장된 영역이며, MTD7 영역은 MTD6에 저장된 어플리케이션 설정 파라미터들이 중복저장(Mirror)된 영역이다. MTD8 영역은 부트로더에 의해 사용되는 데이터가 저장되는 자유 영역이다.3 and 4 , the MTD0 area is an area in which a boot loader for driving an operating system is stored, and the MTD1 area is an area in which environment settings of the boot loader are stored. The MTD2 area is the area where the normally loaded Linux kernel image is stored, and the MTD3 area is the area where the logo, that is, the logo that authenticates stable operation even when hardware, application and software are partially replaced. The MTD4 area is an area where a normally loaded root file system is stored, and the MTD5 area is an area where a normally loaded user application is stored. The MTD6 area is an area in which application setting parameters are stored, and the MTD7 area is an area in which the application setting parameters stored in the MTD6 are duplicated (mirror). The MTD8 area is a free area in which data used by the bootloader is stored.

위와 같이 리눅스 기반의 임베디드 디바이스가 동작되기 위해서는 부트로더 영역, 리눅스 커널 영역, 기능 수행에 필요한 공통 라이브러리 및 유틸리티, 파티션이 포함되어 있는 루트 파일 시스템 영역, 비즈니스 로직이 구현되어 있는 라이브러리와 어플리케이션이 포함된 사용자 어플리케이션 영역, 변경 가능한 구성 정보 영역 등으로 메모리가 구성될 수 있으며, 사용자 어플리케이션 영역은 루트 파일 시스템 영역에 포함되어 구성될 수도 있다.In order for a Linux-based embedded device to operate as described above, the boot loader area, Linux kernel area, common libraries and utilities necessary for function execution, root file system area containing partitions, and libraries and applications containing business logic are included. The memory may include a user application area, a changeable configuration information area, and the like, and the user application area may be included in the root file system area.

종래의 경우에는 도 3에 도시된 바와 같이, 각각의 MTD 파티션의 영역마다 사이즈가 미리 할당되어 있다. 플래시 메모리의 MTD 파티션은 논리적으로 구분되므로 사이즈는 변경할 수 있으나, 이를 변경하기 위해서는 Uboot 환경변수(201) 중에 bootargs를 사용자가 직접 /etc/cmdline 파일을 통해 변경하여야 한다. 따라서 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 클 경우에 시스템이 정상적으로 동작하지 않는다. 또한, 사용자가 이를 해결하기 위해 어떤 영역의 MTD 파티션의 사이즈를 변경해야 하는지 알아내기 어려우며 그 과정이 번거롭다.In the conventional case, as shown in FIG. 3, the size of each MTD partition is allocated in advance. Since the MTD partition of the flash memory is logically divided, the size can be changed. To change this, the user must directly change bootargs in the Uboot environment variable 201 through the /etc/cmdline file. Therefore, when the size of the upgrade image 20 is larger than the size of the MTD partition, the system does not operate normally. In addition, it is difficult for the user to find out in which area the size of the MTD partition needs to be changed in order to solve this problem, and the process is cumbersome.

본 발명의 일 실시예에 따른 플래시 메모리의 경우에는 도 4에 도시된 바와 같이 각각의 MTD 파티션의 영역마다 사이즈가 미리 할당되지 않고 동적이다. 따라서 업그레이드가 진행되면 업그레이드 이미지(20)에 포함된 MTD 파티션의 사이즈에 관한 정보(202)에 따라 MTD 파티션이 분할 생성되고 업그레이드 이미지(20)에 포함된 새로운 커널, 루트 파일 시스템 등은 대응되는 MTD 파티션에 각각 저장된다.In the case of the flash memory according to an embodiment of the present invention, as shown in FIG. 4 , the size of each MTD partition is not allocated in advance but is dynamic. Therefore, when the upgrade is in progress, the MTD partition is divided and created according to the information 202 on the size of the MTD partition included in the upgrade image 20 , and the new kernel, root file system, etc. included in the upgrade image 20 is the corresponding MTD. are stored in each partition.

도 4에 도시된 바와 같이, MTD 파티션의 사이즈가 미리 할당되지 않으므로 각각의 MTD 파티션의 주소코드도 할당되지 않는다. 주소코드 또한 각각의 MTD 파티션의 사이즈가 할당되면, 그 사이즈를 계산하여 주소코드도 자동적으로 생성된다.As shown in FIG. 4 , since the size of the MTD partition is not allocated in advance, the address code of each MTD partition is not allocated either. When the address code is also assigned the size of each MTD partition, the address code is automatically generated by calculating the size.

도 5는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션의 사이즈를 동적으로 세팅하기 위한 파일의 내용을 나타낸 참고도이다.5 is a reference diagram illustrating the contents of a file for dynamically setting the size of the MTD partition of the storage unit 102 according to an embodiment of the present invention.

Uboot 환경변수(201) 중에 bootargs는 커널에 값을 전달하는 환경변수이고, bootargs에는 복수의 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)가 포함되어 있다. Uboot가 bootargs를 커널로 전달할 때, 커널은 상기 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)에 따라 플래시 메모리를 각각 다른 사이즈의 MTD 파티션으로 분할하며, 상세한 정보를 /etc/cmdline 파일에 저장한다.Among the Uboot environment variables 201, bootargs is an environment variable that transmits a value to the kernel, and bootargs includes information 202 about the size of each of the plurality of MTD partition areas. When Uboot delivers bootargs to the kernel, the kernel divides the flash memory into MTD partitions of different sizes according to the information 202 on the size of each MTD partition area, and stores the detailed information in the /etc/cmdline file. .

본 발명의 일 실시예에 따른 Uboot 환경변수(201) 중 bootargs는 MTD 파티션을 미리 분할하여 고정시키지 않도록, /etc/cmdline 파일이 도 5에 도시된 바와 같이 설정된다.The /etc/cmdline file is set as shown in FIG. 5 so that bootargs among the Uboot environment variables 201 according to an embodiment of the present invention does not pre-partition and fix the MTD partition.

MTD 파티션의 사이즈를 할당하는 방법은 'mtdparts = [drv-name]:size(partition name), size(partition name)… 문구를 추가한다. 여기서 'drv-name'에는 MTD 드라이버 이름(driver name)을 기재한다. 본 발명의 일 실시예에 따르면 도 5에 도시된 바와 같이, 드라이버의 이름은 hinand이다.The method of allocating the size of the MTD partition is 'mtdparts = [drv-name]:size(partition name), size(partition name)… Add text. Here, the MTD driver name is written in 'drv-name'. According to an embodiment of the present invention, as shown in FIG. 5 , the name of the driver is hinand.

'size'에는 각각의 MTD 파티션의 이름에 대응되는 MTD 파티션의 사이즈를 기재하나, 본 발명의 일 실시예에 따르면 도 5에 도시된 바와 같이, 곧바로 MTD 파티션의 사이즈를 기재하지 않고, 미리 'uboot_mtd_size', 'ubootenv_mtd_size' 등과 같은 새로운 변수들을 지정하며 상기 새로운 변수들에 각각의 MTD 파티션의 사이즈에 대응되는 숫자를 각각 대입한다. 그리고 상기 새로운 변수들을 'size'에 기재하며, 각각의 새로운 변수 이름의 앞에 '$'를 붙여 변수에 대입된 숫자가 고정되지 않도록 한다. 시스템 펌웨어의 업그레이드가 시작되면 플래시 메모리에 업그레이드 이미지(20)가 기록되고, 업그레이드 이미지(20)의 기록이 성공하면 Uboot 환경변수(201)를 기록하게 된다. 이 때, bootargs에 있는 MTD 파티션의 사이즈에 관한 정보(202)가 기록되므로, 상기 MTD 파티션의 사이즈에 관한 정보(202)에 따라 상기 새로운 변수들에 대입되는 숫자가 자동으로 변경된다. 상기와 같은 방법으로 사용자가 직접 MTD 파티션의 사이즈를 변경하는 작업을 하지 않고도 MTD 파티션의 사이즈가 동적으로 할당될 수 있다. 다만, 업그레이드 이미지(20)에 포함된 새로운 MTD 파티션의 사이즈에 관한 정보(202)에도 각각 상기 새로운 변수들의 이름과 같은 이름의 변수가 설정되어 있어야 자동으로 숫자가 대입될 수 있다.In 'size', the size of the MTD partition corresponding to the name of each MTD partition is described, but according to an embodiment of the present invention, as shown in FIG. New variables such as ' and 'ubootenv_mtd_size' are designated, and a number corresponding to the size of each MTD partition is assigned to the new variables. Then, the new variables are written in 'size', and '$' is added in front of each new variable name so that the number assigned to the variable is not fixed. When the system firmware upgrade starts, the upgrade image 20 is recorded in the flash memory, and when the upgrade image 20 is successfully recorded, the Uboot environment variable 201 is recorded. At this time, since information 202 about the size of the MTD partition in bootargs is recorded, the number assigned to the new variables is automatically changed according to the information 202 about the size of the MTD partition. In this way, the size of the MTD partition can be dynamically allocated without the user directly changing the size of the MTD partition. However, in the information 202 on the size of the new MTD partition included in the upgrade image 20, a number can be automatically assigned only when variables with the same name as the names of the new variables are set.

플래시 메모리에 내장되는 부트 컨텐츠들은 기재된 순서대로 MTD0, MTD1, MTD2… 영역에 각각 대응된다. 도 5에 도시된 바와 같이, 루트 파일 시스템의 사이즈를 지칭하는 'rootfs'는 6번째에 기재되어 있고, 도 3 및 도 4에 도시된 바와 같이, 루트 파일 시스템은 6번째 영역인 MTD5에 저장되어 있다. 따라서 도 5에 도시된 바와 같이 'root=dev/mtdblock5'라고 기재를 하여 제어부(103)가 루트 파일 시스템을 MTD5에서 찾아 판독하도록 한다.The boot contents embedded in the flash memory are MTD0, MTD1, MTD2... corresponding to each area. As shown in Fig. 5, 'rootfs', which refers to the size of the root file system, is described in the 6th, and as shown in Figs. 3 and 4, the root file system is stored in the 6th area, MTD5. have. Accordingly, as shown in FIG. 5, 'root=dev/mtdblock5' is written so that the controller 103 finds and reads the root file system from MTD5.

플래시 메모리를 저장매체로 사용하기 위한 방법에는, 크게 FTL(Flash Translation Layer: 플래시 변환계층)을 구현하여 플래시 메모리와 결합 사용하는 방법과, 플래시 메모리 전용 파일 시스템을 사용하는 방법이 있다.Methods for using a flash memory as a storage medium include a method of using a flash memory in combination with a flash memory by implementing a flash translation layer (FTL), and a method of using a file system dedicated to the flash memory.

FTL은 쓰기 연산 시에 파일 시스템이 생성한 논리주소를 플래시 메모리 상에서, 이미 삭제 연산이 수행된 영역에 대한 물리주소로 변환하는 역할을 수행한다. 그리고 상위 계층인 파일 시스템에 쓰기 연산 시 필요한 삭제 연산을 감추어 일반적인 자기 디스크용 파일 시스템이 플래시 메모리 상에서 작동할 수 있도록 하고, 시간 지연 및 마모의 문제를 상위의 운영체제에서 방지할 수 있도록 한다. 이 경우 파일 시스템은 리눅스(linux)에서 널리 쓰이는 ext2(second extended file system, 이차 확장 파일 시스템)이 사용될 수 있다.The FTL serves to convert a logical address generated by the file system during a write operation into a physical address for an area in which an erase operation has been performed in the flash memory. In addition, it hides the delete operation necessary for the write operation in the upper layer file system, so that the file system for a general magnetic disk can operate on the flash memory, and the problem of time delay and wear can be prevented in the upper operating system. In this case, as the file system, ext2 (second extended file system, second extended file system) widely used in Linux may be used.

FTL을 사용하지 않는 경우에는, MTD(Memory Technology Device)를 사용하는 JFFS2(Journaling Flash File System 2), YAFFS (Yet Another Flash File System), 및 YAFFS2 등과 같은 LFS(Log-structured File System: 로그 구조 파일 시스템)가 많이 사용된다. LFS와 같은 파일 시스템들은 저장 공간을 하나의 로그로 보고, 데이터를 앞에서부터 차례로 기록한다. 또한, 데이터를 기록함과 함께 메타데이터가 저장되고, 상기 메타 데이터 기반으로 매핑 테이블(Mapping Table)을 주 메모리 상에 구성하여 관리하게 된다.If you are not using FTL, log-structured file systems (LFS) such as Journaling Flash File System 2 (JFFS2), Yet Another Flash File System (YAFFS), and YAFFS2 that use a Memory Technology Device (MTD). system) is widely used. File systems such as LFS view storage space as a log and write data sequentially from the front. In addition, metadata is stored along with data recording, and a mapping table is configured and managed in the main memory based on the metadata.

본 발명의 일 실시예에 따른 플래시 메모리는 ext2를 사용하며, 이 경우 도 5에 도시된 바와 같이, 'rootfstype=ext2' 라고 기재한다. 그러나 이에 제한되지 않고 다양한 루트 파일 시스템이 사용될 수 있다.The flash memory according to an embodiment of the present invention uses ext2. In this case, as shown in FIG. 5 , 'rootfstype=ext2' is described. However, it is not limited thereto, and various root file systems may be used.

도 6은 본 발명의 일 실시예에 따른 복수의 MTD 파티션마다 사이즈를 할당하는 방법을 나타낸 흐름도이다.6 is a flowchart illustrating a method of allocating sizes for a plurality of MTD partitions according to an embodiment of the present invention.

도 2에 도시된 흐름도에서 업그레이드 이미지(20)의 기록이 성공한다면(S206) 업그레이드 프로그램은 MTD 파티션에 기록(Write)된 기존의 Uboot 환경변수 이미지를 삭제(Erase)하고, 새로운 Uboot 환경변수(201) 이미지를 기록하게 된다(S209). 도 6은 이 이후에 복수의 MTD 파티션마다 사이즈를 할당하여 새롭게 MTD 파티션이 분할 생성되는 과정을 더 자세히 나타낸다.In the flowchart shown in FIG. 2, if the recording of the upgrade image 20 is successful (S206), the upgrade program deletes the existing Uboot environment variable image recorded in the MTD partition (Erase), and a new Uboot environment variable 201 ) to record the image (S209). FIG. 6 shows in more detail a process in which a new MTD partition is created by allocating a size to each of a plurality of MTD partitions thereafter.

도 6에 도시된 바와 같이, 새로운 Uboot 환경변수(201)의 기록이 성공적으로 끝난 후, 시스템은 새로운 업그레이드 이미지(20)를 시작하기 위해 우선 Uboot를 시동시키면(S601), Uboot의 초기화가 완료된다(S602). Uboot 환경변수를 판독함으로써 bootargs 내의 MTD 파티션의 사이즈가 동적으로 할당될 수 있도록 세팅한다(S603). 상기 기술한 바, /etc/cmdline 파일을 도 5에 도시된 바와 같이 세팅함으로써, MTD 파티션의 사이즈가 동적으로 할당될 수 있다. 그 후에, Uboot가 새로운 업그레이드 이미지(20)에 포함된 bootargs 내에 있는 MTD 파티션의 사이즈에 관한 정보(202)를 획득하고, 상기 MTD 파티션의 사이즈에 관한 정보(202)를 커널로 전달하면(S604), 커널은 새로운 업그레이드 이미지(20)에 포함된 /etc/cmdline 파일을 판독한다(S605). 그리고 커널은 상기 MTD 파티션의 사이즈에 관한 정보(202)를 기초로 하여 플래시 메모리의 MTD 파티션을 새롭게 분할 생성한다(S606). MTD 파티션은 상기 S603단계에서 사이즈가 동적으로 할당되도록 이미 세팅을 하였으므로, 사용자가 직접 변경하는 과정 없이도 MTD 파티션이 자동으로 분할된다. 만약 MTD 파티션의 분할이 실패하면(S607) 시스템은 부팅에 실패하게 되나(S608), MTD 파티션의 분할이 성공하면(S607) 각 MTD 파티션의 영역에 각각의 부트 컨텐츠들이 저장되면서 주소코드가 새롭게 생성된다. 따라서 시스템은 새로운 업그레이드 이미지의 부팅에 성공한다(S609). 이 때 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)은 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 항상 작으므로 제어부(103)가 따로 사이즈를 비교하는 과정이 불필요하다(S610).As shown in FIG. 6 , after the recording of the new Uboot environment variable 201 is successfully completed, the system first starts Uboot to start the new upgrade image 20 ( S601 ), and the initialization of Uboot is completed. (S602). By reading the Uboot environment variable, the size of the MTD partition in bootargs is set to be dynamically allocated (S603). As described above, by setting the /etc/cmdline file as shown in FIG. 5, the size of the MTD partition can be dynamically allocated. After that, when Uboot obtains information 202 on the size of the MTD partition in bootargs included in the new upgrade image 20 and transmits the information 202 on the size of the MTD partition to the kernel (S604) , the kernel reads the /etc/cmdline file included in the new upgrade image 20 (S605). Then, the kernel creates a new MTD partition of the flash memory based on the information 202 on the size of the MTD partition (S606). Since the size of the MTD partition has already been set so that the size is dynamically allocated in step S603, the MTD partition is automatically divided without the user's direct change. If the MTD partition division fails (S607), the system fails to boot (S608). do. Therefore, the system succeeds in booting the new upgrade image (S609). At this time, in the memory upgrade system 1 according to an embodiment of the present invention, since the size of the upgrade image 20 is always smaller than the size of the MTD partition, there is no need for the controller 103 to separately compare the sizes ( S610 ). .

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those of ordinary skill in the art to which the present invention pertains will understand that the present invention may be embodied in other specific forms without changing the technical spirit or essential features thereof. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be interpreted as being included in the scope of the present invention. do.

1: 메모리 업그레이드 시스템 10: 업그레이드 대상 모듈
20: 업그레이드 이미지 101: 입력부
102: 저장부 103: 제어부
201: Uboot 환경변수 202: MTD 파티션의 사이즈에 관한 정보
1: Memory upgrade system 10: Upgrade target module
20: Upgrade image 101: Input
102: storage unit 103: control unit
201: Uboot environment variable 202: Information about the size of the MTD partition

Claims (6)

MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지를 수신하는 데이터 입력부;
상기 업그레이드 이미지 및 상기 환경변수 데이터를 기록하는 저장부; 및
상기 업그레이드 이미지 및 상기 환경변수 데이터의 기록의 성공 여부를 판단하고, 상기 환경변수 데이터를 기초로 상기 업그레이드 이미지의 사이즈 보다 큰 사이즈로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 제어부를 포함하되,
상기 업그레이드 이미지는 서로 다른 복수의 MTD 파티션 영역에 저장되는 복수의 영역 데이터를 포함하고,
상기 서로 다른 복수의 MTD 파티션 영역의 주소코드는 상기 서로 다른 복수의 MTD 파티션 영역 각각의 사이즈가 계산되어 생성되는, 메모리 업그레이드 시스템.
a data input unit including environment variable data having information about the size of the MTD partition and receiving an upgrade image used for memory upgrade;
a storage unit for recording the upgrade image and the environment variable data; and
a control unit that determines whether the recording of the upgrade image and the environment variable data is successful, and dynamically creates a new MTD partition in the storage unit with a size larger than the size of the upgrade image based on the environment variable data,
The upgrade image includes a plurality of area data stored in a plurality of different MTD partition areas,
The address code of the plurality of different MTD partition areas is generated by calculating the sizes of each of the plurality of different MTD partition areas.
제1항에 있어서,
상기 저장부는,
플래시 메모리를 포함하는, 메모리 업그레이드 시스템.
According to claim 1,
The storage unit,
A memory upgrade system comprising flash memory.
제2항에 있어서,
상기 환경변수 데이터는,
상기 업그레이드 이미지에 포함되는 각각의 부트 컨텐츠의 사이즈에 관한 정보를 포함하는, 메모리 업그레이드 시스템.
3. The method of claim 2,
The environment variable data is
A memory upgrade system comprising information on a size of each boot content included in the upgrade image.
USB 또는 인터넷을 통해 업그레이드 프로그램이 선택되어 시작되는 단계;
MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지를 복사하는 단계;
저장부에 있는 MTD 파티션에 기록된 기존의 이미지를 삭제하고 새로운 상기 업그레이드 이미지를 기록하는 단계;
상기 업그레이드 이미지를 기록하는 동작이 성공하면, 상기 업그레이드 프로그램이 상기 MTD 파티션에 있는 기존의 환경변수 데이터를 삭제하고 새로운 상기 환경변수 데이터를 기록하는 단계; 및
상기 환경변수 데이터를 기초로 상기 업그레이드 이미지의 사이즈 보다 큰 사이즈로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 단계를 포함하되,
상기 업그레이드 이미지는 서로 다른 복수의 MTD 파티션 영역에 저장되는 복수의 영역 데이터를 포함하고,
상기 서로 다른 복수의 MTD 파티션 영역의 주소코드는 상기 서로 다른 복수의 MTD 파티션 영역 각각의 사이즈가 계산되어 생성되는, 메모리 업그레이드 방법.
a step in which the upgrade program is selected and started via USB or the Internet;
copying an upgrade image that includes environment variable data having information about the size of the MTD partition and is used for memory upgrade;
deleting the existing image recorded in the MTD partition in the storage unit and recording the new upgraded image;
deleting, by the upgrade program, existing environment variable data in the MTD partition and recording the new environment variable data when the operation of recording the upgrade image is successful; and
Comprising the step of dynamically creating a new MTD partition in the storage unit with a size larger than the size of the upgrade image based on the environment variable data,
The upgrade image includes a plurality of area data stored in a plurality of different MTD partition areas,
and the address codes of the plurality of different MTD partition areas are generated by calculating the sizes of the plurality of different MTD partition areas.
제4항에 있어서,
상기 저장부는,
플래시 메모리를 포함하는, 메모리 업그레이드 방법.
5. The method of claim 4,
The storage unit,
A method of upgrading memory, including flash memory.
제5항에 있어서,
상기 환경변수 데이터는,
상기 업그레이드 이미지에 포함되는 각각의 부트 컨텐츠의 사이즈에 관한 정보를 포함하는, 메모리 업그레이드 방법.
6. The method of claim 5,
The environment variable data is
The memory upgrade method comprising information about the size of each boot content included in the upgrade image.
KR1020150136049A 2015-09-25 2015-09-25 Memory Upgrade System And Method KR102429346B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150136049A KR102429346B1 (en) 2015-09-25 2015-09-25 Memory Upgrade System And Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150136049A KR102429346B1 (en) 2015-09-25 2015-09-25 Memory Upgrade System And Method

Publications (2)

Publication Number Publication Date
KR20170037017A KR20170037017A (en) 2017-04-04
KR102429346B1 true KR102429346B1 (en) 2022-08-03

Family

ID=58588715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150136049A KR102429346B1 (en) 2015-09-25 2015-09-25 Memory Upgrade System And Method

Country Status (1)

Country Link
KR (1) KR102429346B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196870A (en) * 2017-12-29 2018-06-22 北京臻迪科技股份有限公司 Upgrade method and device
CN110716723A (en) * 2019-09-25 2020-01-21 天津华来科技有限公司 Firmware upgrading method and system
CN113626060B (en) * 2021-08-06 2023-08-01 天津津航计算技术研究所 Online upgrade method based on separate storage under vxworks system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011095952A (en) * 2009-10-29 2011-05-12 Kyocera Mita Corp Method for updating firmware and electronic equipment

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090060774A (en) 2007-12-10 2009-06-15 한국전자통신연구원 Apparatus and method for mirroring firmware and data of the embedded system
KR20130075018A (en) 2011-12-27 2013-07-05 한국전자통신연구원 Data update apparatus for flash memory file system and method thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011095952A (en) * 2009-10-29 2011-05-12 Kyocera Mita Corp Method for updating firmware and electronic equipment

Also Published As

Publication number Publication date
KR20170037017A (en) 2017-04-04

Similar Documents

Publication Publication Date Title
US8370835B2 (en) Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
US9760461B2 (en) Electronic device and firmware recovery program that ensure recovery of firmware
JP5220747B2 (en) Nonvolatile storage device and nonvolatile storage system
KR101121641B1 (en) Apparatus and method for controlling operation of system
EP3518099B1 (en) Installation of operating system
US10592354B2 (en) Configurable recovery states
CN105739961B (en) Starting method and device of embedded system
US8370617B2 (en) Booting method and computer system using the booting method
US20080098381A1 (en) Systems and methods for firmware update in a data processing device
US20080270685A1 (en) Information processing apparatus and firmware updating method
JP6543122B2 (en) INFORMATION PROCESSING APPARATUS, METHOD OF INITIALIZING NONVOLATILE STORAGE DEVICE BY THE INFORMATION PROCESSING APPARATUS, AND PROGRAM
JP5951145B2 (en) Operating system recovery method, apparatus, and terminal device
US20180095693A1 (en) Information processing apparatus, information processing system, and method for controlling information processing apparatus
CN104866324A (en) Method for constructing portable operating system and portable memorizer
KR102429346B1 (en) Memory Upgrade System And Method
US20120144182A1 (en) Apparatus and method for fast booting based on virtualization technique
CN101604253A (en) Computer system and startup method
EP3769225B1 (en) Free space pass-through
CN111694580B (en) Method and device for upgrading and initializing storage device and electronic device
CN102298531A (en) Method for upgrading flash memory file system in embedded system
KR102571501B1 (en) The Apparatus For Memory
US20220066784A1 (en) Disabling software persistence
US20030237021A1 (en) Automatic restoration of software applications in a mobile computing device
JP2004295397A (en) Computer system, start method of computer system, and program of the same
JP5685070B2 (en) Information processing apparatus and program

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant