KR101666619B1 - Method and system for memory management in imbedded device environment - Google Patents

Method and system for memory management in imbedded device environment Download PDF

Info

Publication number
KR101666619B1
KR101666619B1 KR1020100094148A KR20100094148A KR101666619B1 KR 101666619 B1 KR101666619 B1 KR 101666619B1 KR 1020100094148 A KR1020100094148 A KR 1020100094148A KR 20100094148 A KR20100094148 A KR 20100094148A KR 101666619 B1 KR101666619 B1 KR 101666619B1
Authority
KR
South Korea
Prior art keywords
user application
embedded device
application image
image
initialization script
Prior art date
Application number
KR1020100094148A
Other languages
Korean (ko)
Other versions
KR20120032691A (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 KR1020100094148A priority Critical patent/KR101666619B1/en
Publication of KR20120032691A publication Critical patent/KR20120032691A/en
Application granted granted Critical
Publication of KR101666619B1 publication Critical patent/KR101666619B1/en

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

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 Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 임베디드 디바이스에서의 메모리 관리 방법에 관한 것이다. 좀 더 자세하게는 임베디드 디바이스에서 내용의 변경이 잦은 사용자 애플리케이션에 대한 메모리 관리를 효율적으로 수행하기 위한 것이다.
본 발명에서는, 임베디드 디바이스로서, 부트 로더 및 커널 이미지 및 초기화 스크립트를 저장하기 위한 플래시 메모리와; 디바이스 부팅시 외부로부터 사용자 애플리케이션을 다운로드 받아 저장하기 위한 RAM을 포함하고, 상기 임베디드 디바이스는, 부팅시 부트 로더에 의해 커널 이미지를 로드한 후 상기 초기화 스크립트를 호출하여 상기 초기화 스크립트에 설정된 바에 따라 외부의 서버로부터 사용자 애플리케이션을 다운로드받아 RAM에 저장하는 것을 특징으로 하는 임베디드 디바이스가 제시된다.
The present invention relates to a memory management method in an embedded device. More specifically, it is intended to efficiently perform memory management for user applications that frequently change contents in an embedded device.
According to the present invention, there is provided an embedded device comprising: a flash memory for storing a boot loader and a kernel image and an initialization script; And a RAM for downloading and storing a user application from the outside when the device is booted, wherein the embedded device loads the kernel image by the boot loader at boot time and then calls the initialization script, And the user application is downloaded from the server and stored in the RAM.

Description

임베디드 디바이스 환경에서의 메모리 관리 방법 및 그 시스템{Method and system for memory management in imbedded device environment}[0001] The present invention relates to a method and a system for managing memory in an embedded device environment,

본 발명은 임베디드 디바이스에서의 메모리 관리 방법 및 그 시스템에 관한 것이다. 좀 더 자세하게는 임베디드 디바이스에서 내용의 변경이 잦은 사용자 애플리케이션에 대한 메모리 관리를 효율적으로 수행하기 위한 것이다.The present invention relates to a method and system for managing memory in an embedded device. More specifically, it is intended to efficiently perform memory management for user applications that frequently change contents in an embedded device.

임베디드 시스템(Embedded System)이란 미리 정해진 특정 기능을 수행하기 위해 프로세서를 내장하여 장치를 조작하는 제어 시스템으로서, 각종 전자기기, 가전제품, 기계장치 등의 기능을 제어하는데 사용된다. 임베디드 시스템이 사용되는 가전 제품으로는 IP폰이 포함된다.An embedded system is a control system for operating a device with a built-in processor to perform predetermined functions, and is used to control functions of various electronic devices, household appliances, machinery, and the like. Consumer appliances in which embedded systems are used include IP phones.

시스템은 MCU(Main Control Unit)와 그 MCU를 구동하여 특정한 기능을 수행하도록 프로그램을 탑재함으로써 해당 장치의 용도에 맞는 기본적인 컴퓨팅 능력을 가지고 그 용도에 맞는 애플리케이션을 이용하여 제어 동작을 수행하게 된다.The system drives a main control unit (MCU) and its MCU and loads a program to perform a specific function. Thus, the system has a basic computing ability suited to the purpose of the device and performs a control operation using an application suitable for the application.

이에 임베디드 시스템은 크기가 작은 메모리를 사용함으로써, 단가를 낮추고 하드웨어의 크기를 최소화하면서 성능이 최적화되도록 구현하여야 한다.Therefore, an embedded system should be implemented by using a small-sized memory so that the performance is optimized while lowering the unit cost and minimizing the size of the hardware.

이러한 임베디드 시스템은 임베디드 리눅스를 OS(운영체제)로 하고, 운영체제와 프로그램을 저장하기 위해 대용량의 하드디스크를 쓰지 아니하고, 메모리 장치를 통해 프로그램과 리소스를 저장한다.Such an embedded system uses embedded Linux as an operating system (OS), and stores programs and resources through a memory device without using a large-capacity hard disk for storing an operating system and programs.

도 1은 기존의 IP 폰 단말의 플래시 메모리 맵 구조이다.1 is a structure of a flash memory map of an existing IP phone terminal.

플래시 메모리는 비휘발성이고, 상기 플래시 메모리를 하드 디스크와 같이 사용하기 위하여 MTD(Memory Technology Devices)를 사용하게 된다.The flash memory is nonvolatile and uses MTD (Memory Technology Devices) to use the flash memory as a hard disk.

MTD0 영역은 정상적인 상황에서 로드되는 루트 파일시스템 및 사용자 애플리케이션이 저장된 영역이고, MTD1 영역은 정상적인 상황에서 로드되는 리눅스 커널 이미지가 저장된 영역이고, MTD2 영역은 운영체제를 구동하기 위한 부트 로더가 저장된 영역이고, MTD3 영역은 부트 로더에 의해 사용되는 데이터가 저장되는 영역이고, MTD4 영역은 액티브 커널 이미지에 문제가 발생한 경우 로드되는 리눅스 커널 이미지가 저장된 영역이고, MTD5 영역은 MTD0 영역에 문제 발생시 로드되는 루트 파일시스템 및 사용자 애플리케이션이 저장된 영역이고, MTD6 영역은 디바이스 운용 중 발생하는 사용자 데이터 및 변경 가능한 구성 정보가 저장되는 영역을 나타낸다.The MTD0 area is an area in which a root file system and a user application loaded in a normal state are stored. An MTD1 area is an area in which a Linux kernel image loaded in a normal state is stored. An MTD2 area is an area in which a boot loader for operating an operating system is stored. MTD3 area is the area where data used by the boot loader is stored. MTD4 area is the area where the Linux kernel image is loaded when there is a problem in the active kernel image. MTD5 area is the area where MTD0 area is loaded when the trouble occurs. And an area where the user application is stored, and the MTD6 area indicates an area where user data generated during device operation and configurable configuration information are stored.

위와 같이 리눅스 기반의 임베디드 디바이스가 동작되기 위해서는 부트 로더 영역, 리눅스 커널 영역, 기능 수행에 필요한 공통 라이브러리 및 유틸리티, 파티션이 포함되어 있는 루트 파일 시스템 영역, 비즈니스 로직이 구현되어 있는 라이브러리와 애플리케이션이 포함된 사용자 애플리케이션 영역, 변경 가능한 구성 정보 및 디바이스 동작 중 발생하는 데이터를 저장하는 사용자 데이터 영역 등으로 메모리가 구성될 수 있는데, 이 중 사용자 애플리케이션 영역은 일반적으로 루트 파일시스템 영역에 포함되어 구성된다.In order for Linux-based embedded devices to operate, it is necessary to include a boot loader area, a Linux kernel area, a common library and utility necessary for performing functions, a root file system area including partitions, and libraries and applications in which business logic is implemented A memory may be configured with a user application area, a changeable configuration information, and a user data area that stores data generated during device operation. Of these, a user application area is generally included in a root file system area.

또한, 임베디드 디바이스에서는 S/W 업그레이드 오류와 같은 상황에 의해 해당 영역에 오류가 발생한 상황을 대비하기 위해서 리눅스 커널 영역, 루트 파일시스템 영역은 이중화되어있는 구조를 가지게 된다.In addition, in the embedded device, the Linux kernel area and the root file system area have a redundant structure in order to prepare for a situation where an error occurs in the corresponding area due to a situation such as an S / W upgrade error.

여기에서 문제의 소지가 발생하게 되는데, 이러한 루트 파일시스템 영역은 변경이 거의 발생하지 않는 공통 라이브러리, 유틸리티 등과 비교적 변경이 잦은 사용자 애플리케이션이 섞여 있어서 사용자 애플리케이션을 업그레이드하기 위해서는 변경이 발생하지 않은 부분을 포함한 전체 루트 파일시스템 영역을 다운로드 받아 플래시 메모리의 해당 영역에 쓰기 작업을 통해 업그레이드해야만 한다.This root file system area is where the root filesystem area contains a common library, utilities, etc. that rarely change, and a relatively modifiable user application, so that you can upgrade your application, The entire root file system area must be downloaded and upgraded by writing to the appropriate area of flash memory.

이러한 방식은 비교적 큰 이미지 사이즈 다운로드시에 발생하는 네트워크 에러, 플래시 영역 쓰기 작업 에러 등에 의한 여러 가지 운용 관리 측면 상의 문제점을 유발시키게 된다.This method causes various operational management problems due to a network error occurring when a relatively large image size is downloaded, an error in writing a flash area, and the like.

또한 제한적인 메모리 자원을 사용하는 임베디드 디바이스 환경에서 구현된 사용자 애플리케이션이 할당된 메모리 영역의 크기보다 커지게 되면 S/W적으로는 처리할 수 없는 문제를 방지하기 위해 변화가 잦은 사용자 애플리케이션 영역을 위해 필요 이상의 플래시 영역이 할당되어야 하는데, 특히 플래시 메모리 영역을 이중화한 구조에서는 이러한 플래시 메모리의 비효율적인 관리가 더욱 문제시된다.Also, if a user application implemented in an embedded device environment using limited memory resources becomes larger than the size of the allocated memory area, the application area for frequent user applications In particular, in a structure in which a flash memory area is duplicated, inefficient management of such a flash memory becomes more problematic.

본 발명은 상기한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 임베디드 디바이스에서 사용자 애플리케이션을 이용함에 있어 한정된 플래시 메모리 자원을 효율적으로 관리할 수 있는 방법을 제시함에 있다.It is an object of the present invention to provide a method for efficiently managing limited flash memory resources when a user application is used in an embedded device.

상기한 목적을 달성하기 위한 기술적 사상으로서, 본 발명에서는,As a technical concept to achieve the above object, in the present invention,

일 양태로서, 임베디드 디바이스로서, 부트 로더 및 커널 이미지 및 초기화 스크립트를 저장하기 위한 플래시 메모리와; 디바이스 부팅시 외부로부터 사용자 애플리케이션을 다운로드 받아 저장하기 위한 RAM을 포함하고, 상기 임베디드 디바이스는, 부팅시 부트 로더에 의해 커널 이미지를 로드한 후 상기 초기화 스크립트를 호출하여 상기 초기화 스크립트에 설정된 바에 따라 외부의 서버로부터 사용자 애플리케이션 이미지를 다운로드받아 RAM에 저장하는 것을 특징으로 하는 임베디드 디바이스가 제시된다.In one aspect, an embedded device includes: a flash memory for storing a boot loader and a kernel image and an initialization script; And a RAM for downloading and storing a user application from the outside when the device is booted, wherein the embedded device loads the kernel image by the boot loader at boot time and then calls the initialization script, And downloading the user application image from the server and storing the user application image in the RAM.

한편, 상기 임베디드 디바이스는, DHCP 서버에 TFTP 서버의 IP주소를 요청하고, 전송받은 IP 주소의 TFTP 서버에 사용자 애플리케이션 이미지를 요청하여 다운로드 받거나, 또는 설정된 IP 주소의 TFTP 서버로 사용자 애플리케이션 이미지를 요청한 후 다운로드 받는 것을 특징으로 한다.Meanwhile, the embedded device requests the IP address of the TFTP server to the DHCP server, requests the TFTP server of the IP address of the received IP address to download the user application image, or requests the user application image to the TFTP server of the set IP address And is downloaded.

한편, 상기 사용자 애플리케이션 이미지는, 상기 초기화 스크립트 호출 후 사용자 애플리케이션 이미지의 다운로드 전 사이에 마운트된 RAM disk에 저장되는 것을 특징으로 한다.Meanwhile, the user application image is stored in a RAM disk mounted before the download of the user application image after the initialization script call.

한편, 상기 임베디드 디바이스는 IP 폰인 것을 특징으로 한다Meanwhile, the embedded device is an IP phone

또한, 다른 양태로서, 부팅시 커널 이미지의 로드가 완료되면, 플래시 메모리에 저장된 초기화 스크립트를 호출하여 초기화 스크립트에 설정된 바에 따라 외부의 서버와 연동하여 사용자 애플리케이션 이미지를 다운로드 받아 RAM에 저장하는 임베디드 디바이스와; 상기 임베디드 디바이스로의 사용자 애플리케이션 이미지의 다운로드를 위해 연결된 외부의 서버와; 상기 임베디드 디바이스와 상기 외부의 서버를 연결하는 통신망을 포함하는 임베디드 디바이스를 위한 메모리 관리 시스템이 제시된다.According to another aspect of the present invention, there is provided an embedded device for loading an initialization script stored in a flash memory and downloading a user application image in cooperation with an external server, ; An external server connected to download the user application image to the embedded device; A memory management system for an embedded device including a communication network connecting the embedded device and the external server is disclosed.

한편, 상기 외부의 서버는, 상기 임베디드 디바이스의 요청에 따라 상기 임베디드 디바이스에 TFTP 서버의 IP 주소를 전송하는 DHCP 서버와; 상기 임베디드 디바이스의 요청에 따라 상기 임베디드 디바이스에 저장된 사용자 애플리케이션 이미지를 전송하는 TFTP 서버를 포함하고, 상기 임베디드 디바이스는 상기 DHCP 서버로부터 전송받은 IP 주소를 이용하여 상기 TFTP 서버로 사용자 애플리케이션 이미지의 전송을 요청하는 것을 특징으로 한다.The external server may include a DHCP server for transmitting an IP address of the TFTP server to the embedded device at the request of the embedded device; And a TFTP server for transmitting a user application image stored in the embedded device according to a request of the embedded device, wherein the embedded device transmits a request for transmission of a user application image to the TFTP server using the IP address transmitted from the DHCP server .

한편, 상기 외부의 서버는 상기 임베디드 디바이스의 요청에 따라 상기 임베디드 디바이스에 저장된 사용자 애플리케이션 이미지를 전송하는 TFTP 서버이고, 상기 임베디드 디바이스는 상기 초기화 스크립트에 설정된 IP 주소를 이용하여 상기 TFTP 서버에 상기 사용자 애플리케이션 이미지의 전송을 요청하는 것을 특징으로 한다.Meanwhile, the external server is a TFTP server that transmits a user application image stored in the embedded device at the request of the embedded device, and the embedded device transmits the user application to the TFTP server using the IP address set in the initialization script And requests transmission of the image.

한편, 상기 사용자 애플리케이션 이미지는, 상기 초기화 스크립트 호출 후 사용자 애플리케이션 이미지의 다운로드 전 사이에 마운트된 RAM disk에 저장되는 것을 특징으로 한다.Meanwhile, the user application image is stored in a RAM disk mounted before the download of the user application image after the initialization script call.

또한, 또 다른 양태로서, 부트 로더에 의해 커널 이미지가 로드되는 1 단계; 커널 이미지의 로드가 완료된 후 초기화 스크립트가 호출되는 2 단계; 초기화 스크립트에 설정된 바에 따라 외부의 서버로부터 사용자 애플리케이션 이미지를 다운로드 받아 RAM에 저장하는 3 단계; 저장된 사용자 애플리케이션 이미지에 대하여 경로가 마운트되는 4 단계를 포함하는 임베디드 디바이스에서의 메모리 관리 방법이 제시된다.According to still another aspect, there is provided a method for booting a system, comprising: a first step of loading a kernel image by a boot loader; The initialization script is called after the loading of the kernel image is completed; Downloading a user application image from an external server according to the initialization script and storing the user application image in the RAM; A method for managing memory in an embedded device is disclosed that includes four steps in which a path is mounted for a stored user application image.

한편, 상기 3 단계는, DHCP 서버로 TFTP 서버의 IP 주소를 요청하고, 전송받은 IP 주소의 TFTP 서버로 사용자 애플리케이션 이미지를 요청하고, 상기 사용자 애플리케이션 이미지를 다운로드 받거나, 설정되어 있는 IP 주소의 TFTP 서버로 사용자 애플리케이션 이미지를 요청하고, 상기 사용자 애플리케이션 이미지를 다운로드 받는 것을 특징으로 한다.In step 3, the IP address of the TFTP server is requested by the DHCP server, the user application image is requested to the TFTP server of the received IP address, the user application image is downloaded, or the TFTP server of the set IP address And the user application image is downloaded.

본 발명에 따르면, 임베디드 디바이스의 부팅시 사용자 애플리케이션을 다운로드받아 RAM에 저장하여 실행시키게 함으로써, 사용자 애플리케이션에 내용 변경이 발생할 경우 별도의 S/W 업그레이드 절차를 통해 사용자 애플리케이션 이미지가 포함된 전체 루트 파일시스템 이미지를 다운받아 플래시 메모리 영역에 쓰기 작업을 행하여야 하는 불편함을 해소할 수 있다.According to the present invention, when the embedded application is booted, the user application is downloaded and stored in the RAM to be executed. When a content change occurs in the user application, the entire root file system It is possible to solve the inconvenience of downloading the image and writing to the flash memory area.

또한, 변경이 발생한 사용자 애플리케이션 이미지가 RAM disk에 저장되기 때문에 플래시 메모리 쓰기 작업이 발생하지 않으므로 사용자 애플리케이션 이미지를 위한 플래시 메모리 영역의 이중화가 필요하지 않게 되므로 한정된 메모리 자원을 효율적으로 관리할 수 있다.In addition, since the user application image in which the change is made is stored in the RAM disk, the flash memory write operation does not occur, and redundancy of the flash memory area for the user application image becomes unnecessary, thereby enabling efficient management of limited memory resources.

도 1은 기존의 IP 폰 단말의 플래시 메모리 맵 구조이다.
도 2는 본 발명의 실시예에 따른 임베디드 디바이스에서의 메모리 관리를 위한 시스템 구성도이다.
도 3은 본 발명의 실시예에 따른 임베디드 디바이스에서의 메모리 관리 상태도이다.
도 4는 본 발명의 실시예에 따라 임베디드 디바이스에서 부팅시 사용자 애플리케이션 이미지를 메모리에 저장하는 흐름을 설명하기 위한 도면이다.
1 is a structure of a flash memory map of an existing IP phone terminal.
2 is a system configuration diagram for memory management in an embedded device according to an embodiment of the present invention.
3 is a memory management state diagram in an embedded device according to an embodiment of the present invention.
4 is a diagram illustrating a flow of storing a user application image in a memory at boot time in an embedded device according to an embodiment of the present invention.

이하에서는 첨부된 도면을 참조하면서 본 발명의 실시예에 대한 구성 및 작용에 대하여 상세하게 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 실시예에 따른 임베디드 디바이스에서의 메모리 관리를 위한 시스템 구성도이다.2 is a system configuration diagram for memory management in an embedded device according to an embodiment of the present invention.

도면에서 알 수 있듯이, 그 구성은 임베디드 디바이스(100)와, 임베디드 디바이스로 필요한 IP 주소를 전송할 DHCP 서버(200)와, 임베디드 디바이스로 필요한 사용자 애플리케이션 이미지를 다운로드해 주는 TFTP 서버(300)와, 상기 디바이스(100) 및 서버(200, 300)들을 연결하여 주는 통신망(400)을 포함한다.As shown in the drawing, the configuration includes an embedded device 100, a DHCP server 200 for transmitting an IP address required for the embedded device, a TFTP server 300 for downloading a user application image required for the embedded device, And a communication network 400 for connecting the device 100 and the servers 200 and 300.

상기 임베디드 디바이스(100)는 비휘발성 메모리인 플래시 메모리(110)와, 사용자 애플리케이션 이미지를 일시적으로 저장하기 위한 휘발성 RAM(120)을 포함하고 있다.The embedded device 100 includes a flash memory 110, which is a nonvolatile memory, and a volatile RAM 120, for temporarily storing a user application image.

상기 임베디드 디바이스(100)는 부팅시 상기 DHCP서버(200)로 상기 TFTP서버(300)의 IP주소를 요청하여 전송받고, 상기 TFTP서버(300)로 필요한 사용자 애플리케이션 이미지를 상기 휘발성 RAM(120)에 다운로드받아 사용자 애플리케이션을 실행하게 된다.The embedded device 100 requests the IP address of the TFTP server 300 from the DHCP server 200 at boot time and receives the user application image from the TFTP server 300 into the volatile RAM 120 Download and run the user application.

여기서, 도 3을 참조하면, 도 3은 본 발명의 실시예에 따른 임베디드 디바이스에서의 메모리 관리 상태도이다.Referring to FIG. 3, FIG. 3 is a memory management state diagram in an embedded device according to an embodiment of the present invention.

먼저, 플래시 메모리(110)에 대한 메모리 맵을 보면, MTD0 영역은 정상적인 상황에서 로드되는 리눅스 커널 이미지가 저장된 영역이고, MTD1 영역은 MTD0 영역에 이상 발생시 로드되는 리눅스 커널 이미지가 저장되는 영역이고, MTD2 영역은 부트 로더 영역으로 운영체제를 구동시키는 영역이고, MTD3 영역은 부트 로더에 의해 사용되는 데이터가 저장되는 영역이고, MTD4 영역은 공통 라이브러리 및 유틸리티(DHCP 클라이언트, TFTP 클라이언트 등)와 PXE(Preboot Execution Environment) 기능이 구현된 초기화 스크립트가 포함되어 있는 리눅스 루트 파일시스템이 저장되는 영역이고, MTD5 영역은 디바이스 운용 중 발생하는 사용자 데이터 및 변경 가능한 구성 정보가 저장되는 영역이다.First, in the memory map of the flash memory 110, the MTD0 area is a region in which a Linux kernel image loaded in a normal state is stored, the MTD1 area is a region in which a Linux kernel image loaded when an MTD0 area is abnormally stored, MTD4 area is the area where data used by the boot loader is stored. MTD4 area is the area where the common library and utility (DHCP client, TFTP client, etc.) and PXE (Preboot Execution Environment ) Function, and the MTD5 area is an area where user data generated during device operation and configurable configuration information are stored.

다음으로, 휘발성 RAM(120)은 상기 TFTP 서버로부터 다운로드 받은 사용자 애플리케이션 이미지를 일시 저장한다.Next, the volatile RAM 120 temporarily stores the user application image downloaded from the TFTP server.

상기 DHCP(Dynamic Host Configuration Protocol) 서버(200)는 상기 임베디드 디바이스(100)로부터 상기 TFTP 서버(300)의 IP 주소를 요청받아 해당 IP 주소를 전송한다.The DHCP (Dynamic Host Configuration Protocol) server 200 receives the IP address of the TFTP server 300 from the embedded device 100 and transmits the corresponding IP address.

상기 TFTP(Trivial File Transfer Protocol) 서버(300)는 상기 임베디드 디바이스에 사용되는 사용자 애플리케이션 이미지를 저장하고, 상기 임베디드 디바이스로 사용자 애플리케이션을 다운로드하여 준다.The TFTP (Trivial File Transfer Protocol) server 300 stores a user application image used in the embedded device and downloads the user application to the embedded device.

상기 통신망(400)은 상기 임베디드 디바이스, 상기 DHCP 서버, 상기 TFTP 서버를 상호 연결하여 주고, 이에는 TCP/IP 통신망이 포함된다.The communication network 400 interconnects the embedded device, the DHCP server, and the TFTP server, and includes a TCP / IP communication network.

도 4는 본 발명의 실시예에 따라 임베디드 디바이스에서 부팅시 사용자 애플리케이션 이미지를 메모리에 저장하는 흐름을 설명하기 위한 도면이다.4 is a diagram illustrating a flow of storing a user application image in a memory at boot time in an embedded device according to an embodiment of the present invention.

먼저, 부트 로더는 리눅스 커널 이미지를 로드하여 임베디드 디바이스를 구동시킨다(S410). 이때 MTD0 영역에 장애가 발생한 경우에는 MTD1 영역의 스탠바이 커널 이미지를 로드한다.First, the boot loader loads the Linux kernel image to start the embedded device (S410). At this time, if failure occurs in the MTD0 area, the standby kernel image of the MTD1 area is loaded.

커널 이미지 로드시 MTD4 영역의 루트 파일시스템이 마운트(mount)된다.When the kernel image is loaded, the root file system of the MTD4 area is mounted.

다음으로, 커널 이미지 로드가 완료되면 MTD4 영역의 초기화 스크립트가 호출된다(S420).Next, when the loading of the kernel image is completed, the initialization script of the MTD4 area is called (S420).

다음으로, 초기화 스크립트에 설정되어 있는 바에 따라 임베디드 디바이스에서 DHCP 서버로 사용자 애플리케이션 이미지를 저장하고 있는 TFTP 서버의 IP 주소를 요청하고, 해당 IP 주소를 전송받는다(S430, S440).Next, the embedded device requests the IP address of the TFTP server storing the user application image from the embedded server according to the setting in the initialization script, and receives the corresponding IP address (S430, S440).

다음으로, 초기화 스크립트에 설정되어 있는 바에 따른 IP주소 또는 상기 DHCP 서버로부터 전송받은 IP 주소를 갖는 TFTP 서버로 사용자 애플리케이션 이미지를 요청한다(S450).Next, a user application image is requested to a TFTP server having an IP address set in the initialization script or an IP address received from the DHCP server (S450).

다음으로, 상기 TFTP 서버로부터 사용자 애플리케이션을 다운로드받아 RAM disk에 저장한다(S460). 이때 RAM disk는 초기화 스크립트 호출 후 사용자 애플리케이션을 다운로드 받기 전에 마운트된다.Next, the user application is downloaded from the TFTP server and stored in the RAM disk (S460). At this time, the RAM disk is mounted before the user application is downloaded after the initialization script call.

다음으로, 사용자 애플리케이션 이미지를 MTD4 영역의 특정 경로(예컨대, /usr/local)에 마운트한다(S470). 마운트가 완료되면 임베디드 디바이스에서는 사용자 애플리케이션 및 라이브러리를 사용할 수 있게 된다.Next, the user application image is mounted on a specific path (e.g., / usr / local) of the MTD4 area (S470). Once the mount is complete, the user application and library will be available on the embedded device.

이와 같이 임베디드 디바이스의 부팅시 사용자 애플리케이션을 다운로드받아 RAM에 저장하여 실행시키게 함으로써, 사용자 애플리케이션에 내용 변경이 발생할 경우 별도의 S/W 업그레이드 절차를 통해 사용자 애플리케이션 이미지가 포함된 전체 루트 파일시스템 이미지를 다운받아 플래시 메모리 영역에 쓰기 작업을 행하는 대신 TFTP 서버의 사용자 애플리케이션 이미지를 교체한 후 임베디드 디바이스가 부팅하기만 하면 변경된 이미지가 적용될 수 있다.Thus, when the embedded application is booted, the user application is downloaded and stored in the RAM, so that when the content is changed in the user application, the entire root file system image including the user application image is downloaded Instead of writing to the flash memory area, the user application image of the TFTP server can be replaced, and the modified image can be applied only when the embedded device is booted.

또한, 변경이 발생한 사용자 애플리케이션 이미지가 RAM disk에 저장되기 때문에 플래시 메모리 쓰기 작업이 발생하지 않으므로 사용자 애플리케이션 이미지를 위한 플래시 메모리 영역의 이중화가 필요하지 않게 된다.In addition, since the user application image in which the change has occurred is stored in the RAM disk, the flash memory write operation does not occur, so that redundancy of the flash memory area for the user application image is not required.

이상에서는 본 발명의 실시예에 대하여 상세하게 설명하였다. 본 발명의 보호범위는 위 실시예에 한정되는 것은 아니며, 위 실시예를 바탕으로 통상의 기술자가 용이하게 변형할 수 있는 사항에도 미치고, 본 발명의 보호범위는 특허청구범위에 기재된 것에 의하여 정하여진다.The embodiments of the present invention have been described in detail above. The scope of protection of the present invention is not limited to the above embodiments but can be easily modified by those skilled in the art based on the above embodiments, and the scope of protection of the present invention is determined by what is described in the claims .

본 발명은 임베디드 디바이스에서 내용의 변경이 잦은 사용자 애플리케이션에 대한 메모리 관리를 효율적으로 수행하기 위한 것으로서, 임베디드 디바이스 관련 산업에 유용하게 이용될 수 있다.INDUSTRIAL APPLICABILITY The present invention is to efficiently perform memory management for a user application frequently changing contents in an embedded device, and can be usefully used in an industry related to an embedded device.

100 : 임베디드 디바이스 110 : 플래시 메모리
120 : RAM 200 : DHCP 서버
300 : TFTP 서버 400 : 통신망
100: embedded device 110: flash memory
120: RAM 200: DHCP server
300: TFTP server 400:

Claims (10)

임베디드 디바이스로서,
부트 로더 및 커널 이미지 및 초기화 스크립트를 저장하기 위한 플래시 메모리와;
디바이스 부팅시 외부로부터 사용자 애플리케이션을 다운로드 받아 저장하기 위한 RAM을 포함하고,
상기 임베디드 디바이스는, 부팅시 부트 로더에 의해 커널 이미지를 로드한 후 상기 초기화 스크립트를 호출하여 상기 초기화 스크립트에 설정된 바에 따라 외부의 서버로부터 사용자 애플리케이션 이미지를 다운로드받아 RAM에 저장하고,
상기 임베디드 디바이스는 IP 폰인 것을 특징으로 하는 임베디드 디바이스.
As an embedded device,
A flash memory for storing a boot loader and a kernel image and an initialization script;
And a RAM for downloading and storing a user application from the outside when the device is booted,
The embedded device loads the kernel image by the boot loader at boot time and then calls the initialization script to download the user application image from the external server according to the setting in the initialization script and stores the user application image in the RAM,
Wherein the embedded device is an IP phone.
임베디드 디바이스로서,
부트 로더 및 커널 이미지 및 초기화 스크립트를 저장하기 위한 플래시 메모리와;
디바이스 부팅시 외부로부터 사용자 애플리케이션을 다운로드 받아 저장하기 위한 RAM을 포함하고,
상기 임베디드 디바이스는, 부팅시 부트 로더에 의해 커널 이미지를 로드한 후 상기 초기화 스크립트를 호출하여 상기 초기화 스크립트에 설정된 바에 따라 외부의 서버로부터 사용자 애플리케이션 이미지를 다운로드받아 RAM에 저장하고,
상기 임베디드 디바이스는,
DHCP 서버에 TFTP 서버의 IP주소를 요청하고, 전송받은 IP 주소의 TFTP 서버에 사용자 애플리케이션 이미지의 전송을 요청하여 다운로드 받거나, 또는
설정된 IP 주소의 TFTP 서버로 사용자 애플리케이션 이미지를 요청한 후 다운로드 받는 것을 특징으로 하는 임베디드 디바이스.
As an embedded device,
A flash memory for storing a boot loader and a kernel image and an initialization script;
And a RAM for downloading and storing a user application from the outside when the device is booted,
The embedded device loads the kernel image by the boot loader at boot time and then calls the initialization script to download the user application image from the external server according to the setting in the initialization script and stores the user application image in the RAM,
The embedded device includes:
Request the IP address of the TFTP server to the DHCP server, request download of the user application image to the TFTP server of the received IP address and download
And requests downloading of the user application image to the TFTP server having the set IP address.
임베디드 디바이스로서,
부트 로더 및 커널 이미지 및 초기화 스크립트를 저장하기 위한 플래시 메모리와;
디바이스 부팅시 외부로부터 사용자 애플리케이션을 다운로드 받아 저장하기 위한 RAM을 포함하고,
상기 임베디드 디바이스는, 부팅시 부트 로더에 의해 커널 이미지를 로드한 후 상기 초기화 스크립트를 호출하여 상기 초기화 스크립트에 설정된 바에 따라 외부의 서버로부터 사용자 애플리케이션 이미지를 다운로드받아 RAM에 저장하고,
상기 사용자 애플리케이션 이미지는, 상기 초기화 스크립트 호출 후 사용자 애플리케이션 이미지의 다운로드 전 사이에 마운트된 RAM disk에 저장되는 것을 특징으로 하는 임베디드 디바이스.
As an embedded device,
A flash memory for storing a boot loader and a kernel image and an initialization script;
And a RAM for downloading and storing a user application from the outside when the device is booted,
The embedded device loads the kernel image by the boot loader at boot time and then calls the initialization script to download the user application image from the external server according to the setting in the initialization script and stores the user application image in the RAM,
Wherein the user application image is stored in a RAM disk mounted before the download of the user application image after the initialization script call.
청구항 2 또는 3에 있어서,
상기 임베디드 디바이스는 IP 폰인 것을 특징으로 하는 임베디드 디바이스.
The method according to claim 2 or 3,
Wherein the embedded device is an IP phone.
부팅시 커널 이미지의 로드가 완료되면, 플래시 메모리에 저장된 초기화 스크립트를 호출하여 초기화 스크립트에 설정된 바에 따라 외부의 서버와 연동하여 사용자 애플리케이션 이미지를 다운로드 받아 RAM에 저장하는 임베디드 디바이스와;
상기 임베디드 디바이스로의 사용자 애플리케이션 이미지의 다운로드를 위해 연결된 외부의 서버와;
상기 임베디드 디바이스와 상기 외부의 서버를 연결하는 통신망을 포함하고,
상기 외부의 서버는,
상기 임베디드 디바이스의 요청에 따라 상기 임베디드 디바이스에 TFTP 서버의 IP 주소를 전송하는 DHCP 서버와;
상기 임베디드 디바이스의 요청에 따라 상기 임베디드 디바이스에 저장된 사용자 애플리케이션 이미지를 전송하는 TFTP 서버를 포함하고,
상기 임베디드 디바이스는 상기 DHCP 서버로부터 전송받은 IP 주소를 이용하여 상기 TFTP 서버로 사용자 애플리케이션 이미지의 전송을 요청하는 것을 특징으로 하는 임베디드 디바이스를 위한 메모리 관리 시스템.
An embedded device for calling an initialization script stored in a flash memory and downloading a user application image in association with an external server according to the initialization script, and storing the user application image in a RAM when the kernel image is loaded at boot time;
An external server connected to download the user application image to the embedded device;
And a communication network connecting the embedded device and the external server,
Wherein the external server comprises:
A DHCP server for transmitting an IP address of a TFTP server to the embedded device at the request of the embedded device;
And a TFTP server for transmitting a user application image stored in the embedded device at the request of the embedded device,
Wherein the embedded device requests the transfer of the user application image to the TFTP server using the IP address received from the DHCP server.
삭제delete 청구항 5에 있어서,
상기 외부의 서버는 상기 임베디드 디바이스의 요청에 따라 상기 임베디드 디바이스에 저장된 사용자 애플리케이션 이미지를 전송하는 TFTP 서버이고,
상기 임베디드 디바이스는 상기 초기화 스크립트에 설정된 IP 주소를 이용하여 상기 TFTP 서버에 상기 사용자 애플리케이션 이미지의 전송을 요청하는 것을 특징으로 하는 임베디드 디바이스를 위한 메모리 관리 시스템.
The method of claim 5,
Wherein the external server is a TFTP server that transmits a user application image stored in the embedded device at the request of the embedded device,
Wherein the embedded device requests the transfer of the user application image to the TFTP server using the IP address set in the initialization script.
청구항 5에 있어서,
상기 사용자 애플리케이션 이미지는, 상기 초기화 스크립트 호출 후 사용자 애플리케이션 이미지의 다운로드 전 사이에 마운트된 RAM disk에 저장되는 것을 특징으로 하는 임베디드 디바이스를 위한 메모리 관리 시스템.
The method of claim 5,
Wherein the user application image is stored in a RAM disk mounted before the download of the user application image after the initialization script call.
임베디드 디바이스에 내장된 프로세서에서 수행하는 메모리 관리 방법에 있어서,
부트 로더를 실행하여 커널 이미지를 로드하는 1 단계;
상기 커널 이미지의 로드를 완료한 후 초기화 스크립트를 호출하는 2 단계;
상기 초기화 스크립트에 설정된 바에 따라 외부의 서버로부터 사용자 애플리케이션 이미지를 다운로드 받아 RAM에 저장하는 3 단계;
저장된 상기 사용자 애플리케이션 이미지를 플래시 메모리의 특정 영역의 경로에 마운트하는 4 단계를 포함하는 임베디드 디바이스에서의 메모리 관리 방법.
A memory management method performed by a processor embedded in an embedded device,
Step 1 to run the boot loader to load the kernel image;
A second step of calling an initialization script after completing the loading of the kernel image;
Downloading a user application image from an external server according to the initialization script and storing the user application image in the RAM;
And mounting the stored user application image in a path of a specific area of the flash memory.
청구항 9에 있어서,
상기 3 단계는,
DHCP 서버로 TFTP 서버의 IP 주소를 요청하고, 전송받은 IP 주소의 TFTP 서버로 사용자 애플리케이션 이미지를 요청하고, 상기 사용자 애플리케이션 이미지를 다운로드 받거나,
설정되어 있는 IP 주소의 TFTP 서버로 사용자 애플리케이션 이미지를 요청하고, 상기 사용자 애플리케이션 이미지를 다운로드 받는 것을 특징으로 하는 임베디드 디바이스에서의 메모리 관리 방법.
The method of claim 9,
In the third step,
Requesting the IP address of the TFTP server from the DHCP server, requesting the TFTP server of the received IP address for the user application image, downloading the user application image,
A user application image is requested to a TFTP server having a set IP address, and the user application image is downloaded.
KR1020100094148A 2010-09-29 2010-09-29 Method and system for memory management in imbedded device environment KR101666619B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100094148A KR101666619B1 (en) 2010-09-29 2010-09-29 Method and system for memory management in imbedded device environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100094148A KR101666619B1 (en) 2010-09-29 2010-09-29 Method and system for memory management in imbedded device environment

Publications (2)

Publication Number Publication Date
KR20120032691A KR20120032691A (en) 2012-04-06
KR101666619B1 true KR101666619B1 (en) 2016-10-14

Family

ID=46135641

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100094148A KR101666619B1 (en) 2010-09-29 2010-09-29 Method and system for memory management in imbedded device environment

Country Status (1)

Country Link
KR (1) KR101666619B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108519885B (en) * 2017-02-28 2021-07-23 武汉斗鱼网络科技有限公司 Public resource loading method and device based on Flash

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970068361A (en) * 1996-03-19 1997-10-13 유기범 Downloading method and apparatus for personal communication terminal
KR20040056682A (en) * 2002-12-24 2004-07-01 주식회사 어필텔레콤 Software error restore methode for downloading of wireless phone
KR100548430B1 (en) * 2004-05-21 2006-02-02 엘지전자 주식회사 A method and a apparatus of improvement data download for multi-processor
JP4711696B2 (en) * 2005-02-17 2011-06-29 株式会社エヌ・ティ・ティ・ドコモ Data communication management system, mobile terminal, and mobile terminal control program

Also Published As

Publication number Publication date
KR20120032691A (en) 2012-04-06

Similar Documents

Publication Publication Date Title
US10990411B2 (en) System and method to install firmware volumes from NVMe boot partition
JP5606633B2 (en) Method for provisioning firmware in an operating system (OS) absent service environment
US7996720B2 (en) Apparatus and method of mirroring firmware and data of embedded system
US7631173B2 (en) Method and system for performing pre-boot operations from an external memory including memory address and geometry
US9384094B2 (en) Method and system for instant restore of system volume from a backup image
US9507604B2 (en) Boot method and boot system
US7650490B2 (en) Embedded device for implementing a boot process on a host
US20060242395A1 (en) Operating system boot from network location
US20150178096A1 (en) Remote bios update in system having multiple computers
US20140195848A1 (en) Methods and systems for instant restore of system volume
US20190339986A1 (en) Uefi boot mode os provisioning system
US20040268113A1 (en) Virtual out-of-band management controller
US20120102159A1 (en) Resource conflict avoidance system and method
US20150363320A1 (en) Write back caching of boot disk in a uefi environment
US11922176B2 (en) Containerized firmware services
KR101666619B1 (en) Method and system for memory management in imbedded device environment
US20200364040A1 (en) System and Method for Restoring a Previously Functional Firmware Image on a Non-Volatile Dual Inline Memory Module
US10572166B1 (en) Firmware download for a solid state storage card
US11500995B1 (en) Secure boot runtime universal filesystem
KR20070083138A (en) Apparatus and method for system imbedded system and firmware updating method therein
US11341053B2 (en) Virtual media performance improvement
US11334342B1 (en) Updating firmware of unsupported devices
US11775648B2 (en) Containerized metadata with UEFI firmware file system
US11921582B2 (en) Out of band method to change boot firmware configuration
US20240028345A1 (en) Exposing bios settings to an operating system

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant