KR20110108143A - Embeded system based on script programming language and operation method thereof - Google Patents

Embeded system based on script programming language and operation method thereof Download PDF

Info

Publication number
KR20110108143A
KR20110108143A KR1020100027479A KR20100027479A KR20110108143A KR 20110108143 A KR20110108143 A KR 20110108143A KR 1020100027479 A KR1020100027479 A KR 1020100027479A KR 20100027479 A KR20100027479 A KR 20100027479A KR 20110108143 A KR20110108143 A KR 20110108143A
Authority
KR
South Korea
Prior art keywords
programming language
embedded system
embedded
application module
script
Prior art date
Application number
KR1020100027479A
Other languages
Korean (ko)
Inventor
양정하
Original Assignee
(주)이지위드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)이지위드 filed Critical (주)이지위드
Priority to KR1020100027479A priority Critical patent/KR20110108143A/en
Publication of KR20110108143A publication Critical patent/KR20110108143A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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
    • 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
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders

Abstract

임베디드 시스템이 개시된다. 상기 임베디드 시스템은 시스템 프로그래밍 언어를 이용하여, 다수의 로우 레벨 디바이스 리소스들을 정의하고 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 하드웨어 관련 어플리케이션 모듈 및 스크립트 프로그래밍 언어를 이용하여, 상기 하드웨어 관련 어플리케이션 모듈과 연동하며 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 사용자용 임베디드 어플리케이션 모듈을 포함할 수 있다.An embedded system is disclosed. The embedded system uses a system programming language to define a plurality of low level device resources and provides a hardware related application module and a script programming language to provide a handling service to the plurality of low level device resources. And an embedded application module for a user interworking with and controlling the plurality of low level device resources.

Description

스크립트 프로그래밍 언어 기반의 임베디드 시스템 및 그 구동 방법{EMBEDED SYSTEM BASED ON SCRIPT PROGRAMMING LANGUAGE AND OPERATION METHOD THEREOF}Embedded system based on script programming language and its driving method {EMBEDED SYSTEM BASED ON SCRIPT PROGRAMMING LANGUAGE AND OPERATION METHOD THEREOF}

본 발명은 임베디드 시스템(Embeded System) 관련 기술에 관한 것으로, 보다 상세하게는 스크립트 프로그래밍 언어(Script Programming Language) 기반의 어플리케이션과 시스템 프로그래밍 언어(System Programming Language) 기반의 어플리케이션을 모두 포함하며, 이들 어플리케이션들 간의 연동 인터페이스를 제공함으로써 프로세스 간의 통신을 원할하게 할 수 있는 임베디드 시스템 및 그 구동 방법에 관한 것이다.The present invention relates to an embedded system related technology, and more particularly, includes both a script programming language based application and a system programming language based application. The present invention relates to an embedded system and a driving method thereof capable of smoothing communication between processes by providing an interworking interface therebetween.

현재의 임베디드 시스템은 하드웨어적이나 소프트웨어적으로 점점 더 복잡해지고 있다. 이는 임베디드 시스템의 형태가 다양한 서비스를 포괄하는 복합형 단말기 형태로 변화되고 있는 때문인데, 이 때문에 다양한 라이브러리와 컴포넌트 사용 및 컴포넌트간 상호작용이 증가하고 있다.Today's embedded systems are becoming increasingly complex in hardware and software. This is because the form of the embedded system is changing to the form of a complex terminal covering a variety of services. As a result, the use of various libraries and components and the interaction between components are increasing.

임베디드 시스템 개발 측면에서 대부분의 임베디드 어플리케이션이 시스템 프로그래밍 언어(예컨대, C/C++ 언어)를 기반으로 개발되고 있다. 이러한 시스템 프로그래밍 언어는 하드웨어 관련 어플리케이션을 개발하는 용도에는 적합하지만 현재의 복잡한 단말 요구사항을 수용한 단순 소프트웨어적인 특성을 가지고 있는 사용자용 어플리케이션을 개발하는 데는 적합하지 않다.In terms of embedded system development, most embedded applications are based on system programming languages (eg, C / C ++ languages). Although such a system programming language is suitable for developing hardware-related applications, it is not suitable for developing a user application having a simple software characteristic that accommodates current complex terminal requirements.

예컨대, 시스템 프로그래밍 언어를 이용하여 사용자용 어플리케이션을 개발하는 데에는 많은 개발 인력, 시간, 비용이 소요되며, 결과물의 복잡성에 의한 버그 발생 가능성 또한 높다는 문제점이 있다.For example, developing a user application using a system programming language requires a lot of development manpower, time and cost, and also has a high possibility of a bug due to the complexity of the result.

또한, C/C++같은 경우 소스를 작성하고 그 결과를 컴파일한 이후 생성된 실행화일과 라이브러리 파일들을 임베디드 시스템에 다시 적재하여 그 결과에 대한 확인을 시행하게 되므로 실제 개발에 들어가는 시간이 외에 컴파일 및 단말에 적재하는 준비 과정상의 시간을 필요로 하게 되어 개발 외의 시간을 필요로 하게 한다.In addition, in case of C / C ++, after compiling the source and compiling the result, the generated executable files and library files are loaded back into the embedded system and the result is checked to check the result. It takes time for the preparation process to load in, which requires time outside of development.

대부분의 임베디드 시스템의 개발 과정에서 주요부품인 CPU 벤더에 의해 제공되는 BSP나 자체 보유한 임베디드 시스템용 OS 패키지와 해당 플랫폼 크로스 컴파일러를 이용하여 소스 코드를 컴파일하여 라이브러리 및 실행 파일을 작성하고, 그 결과를 임베디드 시스템에 적재시켜 동작 및 결과를 테스트하게 된다.In the development process of most embedded systems, source code is compiled by using BSP provided by CPU vendor, which is a major component, or owned OS package for embedded system, and the corresponding platform cross compiler. It is loaded into an embedded system to test its operation and results.

즉, 임베디드 시스템 개발에 필요한 모든 프로세스는 해당 BSP나 OS 패키지에 귀속되게 되므로 개발들은 일반 업무 및 개발 업무에 필요한 장비를 별도로 구비하게 하거나 가상 OS 에뮬레이터(예:vmware)를 별도로 구입할 수밖에 없다.In other words, all processes necessary for embedded system development belong to the corresponding BSP or OS package, so that developments have to have separate equipments for general and development tasks or purchase virtual OS emulators (eg, vmware) separately.

또한, 이로 인해 임베디드 분야가 아닌 개발자나 갓 사회로 취업하게된 개발자들은 임베디드 시스템 개발을 시작하기 이전에 시스템 개발 환경을 설정하거나 준비하는 과정부터 어려움을 겪게 되고 해당 BSP 및 개발 환경에 대한 별도의 교육 받아야만 하는 실정이다.As a result, developers who are not working in the embedded field or newly-developed society have difficulty in setting up or preparing a system development environment before starting to develop embedded systems, and have separate training on the relevant BSP and development environment. It must be received.

따라서 본 발명이 이루고자 하는 기술적인 과제는 임베디드 시스템을 개발하는 과정에서 강력한 이식성과 빠른 적용과 확인 및 디버깅을 가능토록 하는 임베디드 시스템 및 그 구동 방법을 제공하는 것이며, 보다 상세하게는, 하드웨어 관련 어플리케이션에서는 시스템 프로그래밍 언어를 활용하고 사용자용 임베디드 어플리케이션에서는 스크립트 프로그래밍 언러를 활요하며 이들 어플리케이션들 간의 연동 인터페이스를 제공하는 임베디드 시스템 및 그 구동 방법을 제공하는 것이다.Accordingly, the technical problem to be achieved by the present invention is to provide an embedded system and a method of driving the same, which enable powerful portability, rapid application, verification, and debugging in the process of developing an embedded system. It provides an embedded system that utilizes the system programming language, requires a script programming language in the user's embedded application, and provides an interworking interface between these applications and its driving method.

상기 기술적 과제를 해결하기 위한 임베디드 시스템은 하드웨어 관련 어플리케이션 및 사용자용 임베디드 어플리케이션을 포함할 수 있다. 상기 하드웨어 관련 어플리게이션 모듈은 시스템 프로그래밍 언어를 이용하여, 다수의 로우 레벨 디바이스 리소스들을 정의하고 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공할 수 있다. 상기 사용자용 임베디드 어플리케이션 모듈은 스크립트 프로그래밍 언어를 이용하여, 상기 하드웨어 관련 어플리케이션 모듈과 연동하며 상기 다수의 로우 레벨 디바이스 리소스들을 제어할 수 있다.The embedded system for solving the technical problem may include a hardware related application and a user embedded application. The hardware related application module may use a system programming language to define a plurality of low level device resources and provide a handling service for the plurality of low level device resources. The embedded application module for the user may use the script programming language to interwork with the hardware related application module and control the plurality of low level device resources.

상기 사용자용 임베디드 어플리케이션 모듈은 스크립트 인터프리터 및 바인딩 인터페이스를 포함할 수 있다. 상기 스크립트 인터프리터는 다수의 스크립트 언어 기반의 모듈들에 대응하는 소스 코드를 실행할 수 있다. 상기 바인딩 인터페이스는 상기 하드웨어 관련 어플리케이션 모듈과 상기 사용자용 임베디드 어플리케이션 모듈을 바인딩할 수 있다. 상기 다수의 스크립트 언어 기반의 모듈들은 스크립트 언어 기반의 코어 모듈 및 다수의 스크립트 언어 기반의 확장 모듈들을 포함할 수 있다.The embedded application module for a user may include a script interpreter and a binding interface. The script interpreter may execute source code corresponding to a plurality of script language based modules. The binding interface may bind the hardware related application module and the user embedded application module. The plurality of script language based modules may include a script language based core module and a plurality of script language based extension modules.

상기 바인딩 인터페이스는 상기 하드웨어 관련 어플리케이션 모듈에서 상기 사용자용 임베디드 어플리케이션 모듈의 데이터와 함수를 사용할 수 있게 하며 상기 사용자용 임베디드 어플리케이션 모듈에서 상기 하드웨어 관련 어플리케이션 모듈의 프로그래밍 언어 기반의 어플리케이션 모듈을 사용할 수 있도록 할 수 있다. 상기 프로그래밍 언어 기반의 어플리케이션 모듈은 원격 절차 호출(RPC: Remote Procedure Call) 기반으로 상기 사용자용 임베디드 어플리케이션 모듈과 연동되는 라이브러리들을 포함할 수 있다.The binding interface may enable the hardware related application module to use data and functions of the user embedded application module and enable the user embedded application module to use an application module based on a programming language of the hardware related application module. have. The programming language based application module may include libraries linked to the embedded application module for the user based on a remote procedure call (RPC).

상기 스크립트 프로그래밍 언어는 LUA일 수 있으며, 상기 시스템 프로그래밍 언어는 C 또는 C++일 수 있다.The script programming language may be LUA and the system programming language may be C or C ++.

상기 임베디드 시스템은 미리 정해진 통신 프로토콜에 기초하여 수신되는 소스 코드를 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 신규 펌웨어 등록할 수 있고, 미리 정해진 통신 프로토콜에 기초하여 수신되는 업데이트하고자 하는 소스 코드 부분을 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 펌웨어를 업데이트할 수 있다.The embedded system may register new firmware by storing source code received based on a predetermined communication protocol in a memory of the embedded system and executing the stored source code, and update received based on a predetermined communication protocol. Firmware may be updated by storing a source code portion in a memory of the embedded system and executing the stored source code.

상기 기술적 과제를 해결하기 위한 임베디드 시스템 구동 방법은 시스템 프로그래밍 언어를 이용하여, 다수의 로우 레벨 디바이스 리소스들을 정의하고 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 단계 및 스크립트 프로그래밍 언어를 이용하여, 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 단계와 연동하여 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 단계를 포함할 수 있다.The method for driving an embedded system for solving the technical problem may include using a system programming language to define a plurality of low level device resources and providing a handling service to the plurality of low level device resources, and using a script programming language. And controlling the plurality of low level device resources in association with providing the handling service to the plurality of low level device resources.

상기 스크립트 프로그래밍 언어를 이용하여 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 단계는 다수의 스크립트 언어 기반의 모듈들에 대응하는 소스 코드를 실행하는 단계 및 상기 시스템 프로그래밍 언어를 이용하여 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 단계와 상기 스크립트 프로그래밍 언어를 이용하여 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 단계를 바인딩하는 단계를 포함할 수 있다.Controlling the plurality of low level device resources using the script programming language comprises executing source code corresponding to a plurality of script language based modules and using the system programming language. Binding a step of providing resources with a handling service and controlling the plurality of low level device resources using the script programming language.

상기 바인딩하는 단계는 시스템 프로그래밍 언어 기반의 모듈에서 스크립트 프로그래밍 언어 기반의 모듈의 데이터와 함수를 사용할 수 있게 하며, 상기 스크립트 프로그래밍 언어 기반의 모듈에서 상기 시스템 프로그래밍 언어 기반의 모듈을 사용할 수 있도록 하는 단계를 포함할 수 있다. 상기 시스템 프로그래밍 언어 기반의 어플리케이션 모듈은 원격 절차 호출(RPC: Remote Procedure Call) 기반으로 상기 스크립트 프로그래밍 언어 기반의 모듈과 연동되는 라이브러리들을 포함할 수 있다.The step of binding enables the system programming language-based module to use the data and functions of the script programming language-based module, and to enable the script programming language-based module to use the system programming language-based module. It may include. The system programming language based application module may include libraries linked to the script programming language based module on a remote procedure call (RPC) basis.

상기 임베디드 시스템 구동 방법은 미리 정해진 통신 프로토콜에 기초하여 수신되는 소스 코드를 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 신규 펌웨어를 등록하는 단계를 더 포함할 수 있다. 상기 임베디드 시스템 구동 방법은 미리 정해진 통신 프로토콜에 기초하여 수신되는 업데이트하고자 하는 소스 코드 부분을 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 펌웨어를 업데이트하는 단계를 더 포함할 수 있다.The embedded system driving method may further include registering new firmware by storing the received source code in a memory of the embedded system based on a predetermined communication protocol and executing the stored source code. The embedded system driving method may further include updating firmware by storing a portion of a source code to be received based on a predetermined communication protocol in a memory of the embedded system and executing the stored source code.

본 발명의 실시예에 따른 임베디드 시스템 구동 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장된 상기 컴퓨터 시스템의 부팅 방법을 실행하기 위한 컴퓨터 프로그램을 실행함으로써 구현될 수 있다.The embedded system driving method according to an embodiment of the present invention may be implemented by executing a computer program for executing the booting method of the computer system stored in a computer-readable recording medium.

상술한 바와 같이 본 발명에 따른 임베디드 시스템 및 그 구동 방법은 스크립트 프로그래밍 언어 활용하므로 임베디드 시스템의 개발 측면에 있어서는 개발 비용 절감, 개발 기간 단축, 개발 과정에서의 버그 감소, 디버깅 효율성 증가 효과를 제공하며, 임베디드 시스템의 관리 측면에 있어서는 펌웨어 등록 및 업데이트 시간의 단축 및 에러 감소 효과를 제공할 수 있는 효과가 있다.As described above, since the embedded system and its driving method utilize a script programming language, in terms of the development of the embedded system, development costs are reduced, development period is shortened, bugs are reduced during development, and debugging efficiency is increased. In terms of the management of the embedded system, there is an effect that can reduce the firmware registration and update time and reduce the error.

도 1은 본 발명의 실시예에 따른 임베디드 시스템의 블락도이다.
도 2는 C 연동 인터페이스와 LUA PRC 연동 인터페이스를 비교하기 위한 도면이다.
도 3은 종래의 임베디드 시스템 개발 공정을 나타내는 흐름도이다.
도 4는 본 발명의 실시예에 따른 임베디드 시스템의 개발 공정을 나타내는 흐름도이다.
도 5는 종래의 임베디드 시스템의 펌웨어 업데이트 과정을 나타내는 흐름도이다.
도 6은 본 발명의 실시예에 따른 임베디드 시스템의 펌웨어 업데이트 과정을 나타내는 흐름도이다.
도 7은 다수의 시스템 프로그래밍 언어들과 다수의 스크립트 프로그래밍 언어들의 속도를 나타낸다.
1 is a block diagram of an embedded system according to an embodiment of the present invention.
2 is a view for comparing the C interworking interface and the LUA PRC interworking interface.
3 is a flowchart illustrating a conventional embedded system development process.
4 is a flowchart illustrating a process of developing an embedded system according to an exemplary embodiment of the present invention.
5 is a flowchart illustrating a firmware update process of a conventional embedded system.
6 is a flowchart illustrating a firmware update process of an embedded system according to an exemplary embodiment of the present invention.
7 illustrates the speed of multiple system programming languages and multiple script programming languages.

본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.Specific structural and functional descriptions of embodiments according to the concepts of the present invention disclosed in this specification or application are merely illustrative for the purpose of illustrating embodiments in accordance with the concepts of the present invention, The examples may be embodied in various forms and should not be construed as limited to the embodiments set forth herein or in the application.

본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Embodiments in accordance with the concepts of the present invention can make various changes and have various forms, so that specific embodiments are illustrated in the drawings and described in detail in this specification or application. However, this is not intended to limit the embodiments in accordance with the concept of the present invention to a particular disclosed form, it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is said to be "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that another component may exist in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between. Other expressions describing the relationship between components, such as "between" and "immediately between," or "neighboring to," and "directly neighboring to" should be interpreted as well.

제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Terms such as first and / or second may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another, for example, without departing from the scope of rights in accordance with the inventive concept, and the first component may be called a second component and similarly The second component may also be referred to as the first component.

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

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 실시예에 따른 임베디드 시스템(100)의 블락도이다. 상기 임베디드 시스템(100)은 하드웨어 관련 어플리케이션에서는 시스템 프로그래밍 언어를 활용하면서 하드웨어 관련이 없는 사용자용 임베디드 어플리케이션에서는 개발이 상대적으로 간단한 스크립트 프로그래밍 언어를 사용한다. 즉, 상기 임베디드 시스템(100)은 스크립트 프로그래밍 언어 기반의 어플리케이션과 시스템 프로그래밍 언어 기반의 어플리케이션이 공존하는 형태로 구성되어 있으며, 어플리케이션 간의 연동 인터페이스를 제공함으로써 프로세스간 통신이 쉽게 수행되도록 할 수 있다.1 is a block diagram of an embedded system 100 in accordance with an embodiment of the present invention. The embedded system 100 utilizes a system programming language in hardware-related applications while using a script programming language that is relatively simple to develop in an embedded application for non-hardware related users. That is, the embedded system 100 is configured in such a way that an application based on a script programming language and an application based on a system programming language coexist, and the inter-process communication can be easily performed by providing an interworking interface between the applications.

여기서, 임베디드 시스템은 인터넷 폰, 비디오 폰, 홈 게이트웨이, IPTV 셋톱박스, 모바일 폰, 네비게이션, PMP, MP3 플레이어 중 하나일 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다. 본 명세서에서는 스크립트 프로그래밍 언어 중 LUA를 사용하고, 시스템 프로그래밍 언어 중 C 언어를 사용하는 임베디드 시스템(100)을 실시예로 들어 본 발명의 기술적 설명하고자 한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.Here, the embedded system may be one of an Internet phone, a video phone, a home gateway, an IPTV set-top box, a mobile phone, a navigation, a PMP, and an MP3 player. However, the scope of the present invention is not limited thereto. In the present specification, the embedded system 100 using LUA in the script programming language and the C language in the system programming language will be described as an embodiment of the present invention. However, the scope of the present invention is not limited thereto.

도 1을 참조하면, 상기 임베디드 시스템(100)은 사용자용 임베디드 어플리케이션 모듈(110) 및 하드웨어 관련 어플리케이션 모듈(120)을 포함한다.Referring to FIG. 1, the embedded system 100 may include a user embedded application module 110 and a hardware related application module 120.

상기 하드웨어 관련 어플리케이션 모듈(120)은 시스템 프로그래밍 언어(예컨대, C 언어)를 이용하여, 상기 임베디드 시스템(100)에 포함된 다수의 로우 레벨 디바이스 리소스들을 정의하고 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공할 수 있다. 도 1에 도시되지는 않았으나, 상기 다수의 로우 레벨 디바이스 리소스들에는 중앙 처리 장치, 메모리, 그래픽 카드, 사운드 카드, 스피커, 마이크 등이 포함될 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.The hardware related application module 120 defines a plurality of low level device resources included in the embedded system 100 and handles the plurality of low level device resources using a system programming language (eg, C language). Can be provided. Although not shown in FIG. 1, the plurality of low level device resources may include a central processing unit, a memory, a graphics card, a sound card, a speaker, a microphone, and the like. However, the scope of the present invention is not limited thereto.

상기 사용자용 임베디드 어플리케이션 모듈(110)은 스크립트 프로그래밍 언어(예컨대, LUA)를 이용하여, 상기 하드웨어 관련 어플리케이션 모듈(120)과 연동하며 상기 다수의 로우 레벨 디바이스 리소스들을 제어할 수 있다.The embedded application module 110 for the user may use a script programming language (eg, LUA) to interwork with the hardware related application module 120 and control the plurality of low level device resources.

상기 임베디드 시스템(100)은 미리 정해진 통신 프로토콜에 기초하여 수신되는 소스 코드를 상기 임베디드 시스템의 메모리(미도시)에 저장하고 상기 저장된 소스 코드를 실행함으로써 신규 펌웨어를 등록할 수 있다. 여기서, 미리 정해진 통신 프로토콜에는 FTP, HTTP, SAMBA 등의 통신 프로토콜이 포함될 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.The embedded system 100 may register new firmware by storing the received source code in a memory (not shown) of the embedded system based on a predetermined communication protocol and executing the stored source code. Here, the predetermined communication protocol may include a communication protocol such as FTP, HTTP, SAMBA. However, the scope of the present invention is not limited thereto.

상기 임베디드 시스템(100)은 상기 미리 정해진 통신 프로토콜에 기초하여 수신되는 업데이트하고자 하는 소스 코드 부분을 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 펌웨어를 업데이트할 수도 있다.The embedded system 100 may update the firmware by storing a portion of source code to be received based on the predetermined communication protocol in a memory of the embedded system and executing the stored source code.

상기 사용자용 임베디드 어플리케이션 모듈(110)은 루아 코어 모듈(112), 루아 확장 모듈(114), 루아 인터프리터(116), 및 바인딩 인터페이스(118)을 포함한다.The user embedded application module 110 includes a Lua core module 112, a Lua extension module 114, a Lua interpreter 116, and a binding interface 118.

상기 루아 인터프리터(116)은 상기 루아 코어 모듈(112) 및 상기 루아 확장 모듈(114)을 포함하는 다수의 루아 기반의 모듈들을 구동시키기 위한 소스 코드를 실행할 수 있다. 상기 루아 확장 모듈(114)에는 루아 소켓 모듈, 루아 SSL 모듈, 루아 HTTP 모듈, 루아 SNMP 모듈, 루아 XML 모듈 등이 포함될 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.The lua interpreter 116 may execute source code for driving a plurality of lua based modules including the lua core module 112 and the lua extension module 114. The Lua extension module 114 may include a Lua socket module, a Lua SSL module, a Lua HTTP module, a Lua SNMP module, a Lua XML module, and the like. However, the scope of the present invention is not limited thereto.

상기 바인딩 인터페이스(118)는 상기 하드웨어 관련 어플리케이션 모듈(120)과 상기 사용자용 임베디드 어플리케이션 모듈(110)을 바인딩할 수 있다. 여기서, 바인딩이라 함은 상기 하드웨어 관련 어플리케이션 모듈(120)에서 상기 사용자용 임베디드 어플리케이션 모듈(110)의 데이터와 함수를 사용할 수 있게 하며 상기 사용자용 임베디드 어플리케이션 모듈(110)에서 서 상기 하드웨어 관련 어플리케이션 모듈(120)의 프로그래밍 언어 기반의 어플리케이션 모듈을 사용할 수 있도록 하는 것을 의미한다.The binding interface 118 may bind the hardware related application module 120 and the user embedded application module 110. Here, the binding means that the data and functions of the embedded application module 110 for the user can be used in the hardware-related application module 120 and the hardware-related application module (in the embedded application module 110 for the user) 120 means that the application module based on the programming language can be used.

그러나 도 1에 도시된 바와 같이, 상기 사용자용 임베디드 어플리케이션 모듈(110)과 상기 하드웨어 관련 어플리케이션 모듈(120)은 상기 바인딩 인터페이스(118)를 통하지 않고서도 직접 서로 억세스(Direct Access)할 수도 있다.However, as illustrated in FIG. 1, the user embedded application module 110 and the hardware related application module 120 may directly access each other without going through the binding interface 118.

상기 하드웨어 관련 어플리케이션 모듈(120)은 C 어플리케이션 모듈(122), C 언어 기반의 리눅스 커넬(Linux Kernel, 124), 시스템 콜 모듈(126), 네트워크 프로토콜 모듈(128), 및 디바이스 드라이버 모듈(130)을 포함할 수 있다.The hardware related application module 120 may include a C application module 122, a C language-based Linux kernel 124, a system call module 126, a network protocol module 128, and a device driver module 130. It may include.

도 2는 C 연동 인터페이스와 본 발명의 실시예에 따른 임베디드 시스템(100)에서의 LUA PRC 연동 인터페이스를 비교하기 위한 도면이다.2 is a view for comparing the C interworking interface and the LUA PRC interworking interface in the embedded system 100 according to an embodiment of the present invention.

도 2를 참조하면, 일반적인 C 연동 인터페이스 방식에서 C 기반의 코어, SNMP 에이전트, 및 웹 서버 각각은 C 어플리케이션 모듈에 직접적으로 억세스할 수 있음을 알 수 있다. 상기 C 어플리케이션 모듈에는 도 2에 도시된 바와 같이 VoIP 어플리케이션, Voice 어플리케이션, 및 DSP 인터페이스에 상응하는 라이브러리가 포함될 수 있다.Referring to FIG. 2, in the general C interworking interface method, each of the C-based core, the SNMP agent, and the web server may directly access the C application module. As illustrated in FIG. 2, the C application module may include a library corresponding to a VoIP application, a voice application, and a DSP interface.

그러나 본 발명의 실시예에 따른 임베디드 시스템(100)에서의 루아 RPC(Remote Procedure Call, 원격 절차 호출) 인터페이스 방식에서는 루아 기반의 코어, SNMP 에이전트, 및 웹 서버가 RPC 기반으로, 즉, C 어플리케이션 모듈(122)에 포함된 내부 RPC 인터페이스를 통하여 VoIP 어플리케이션, Voice 어플리케이션, 및 DSP 인터페이스에 상응하는 라이브러리에 억세스할 수 있음을 알 수 있다.However, in the Lua Remote Procedure Call (RPC) interface scheme in the embedded system 100 according to an embodiment of the present invention, a Lua-based core, an SNMP agent, and a web server are based on RPC, that is, a C application module. It can be seen that the library corresponding to the VoIP application, the voice application, and the DSP interface can be accessed through the internal RPC interface included in 122.

여기서, RPC란 네트워크에 대한 상세 내용을 알 필요업이, 특정 프로세스에서 네트워크 상의 다른 프로세스에 서비스, 함수, 또는 서브루틴 호출를 요청하는데 사용되는 프로토콜을 의미한다.Here, RPC refers to a protocol used to request details of a network and to request a service, function, or subroutine call from another process on the network in a specific process.

한편, 본 발명의 실시예에 다른 임베디드 시스템(100)의 구성 요소들 각각은 본 발명의 기술적 사상을 수행하기 위한 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 결합에 의하여 구현될 수 있다.Meanwhile, each of the components of the embedded system 100 according to the embodiment of the present invention may be implemented by software, hardware, or a combination of software and hardware for carrying out the technical spirit of the present invention.

또한, 본 발명의 실시예에 따른 임베디드 시스템(100)의 각 구성요소들 또는 그들의 조합은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명의 실시예에 따른 임베디드 시스템(100)의 각 구성요소들 또는 그들의 조합은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.In addition, each component of the embedded system 100 or a combination thereof according to an embodiment of the present invention may be mounted using various types of packages. For example, each component of the embedded system 100 or a combination thereof according to an embodiment of the present invention may be a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carriers. (PLCC), Plastic Dual In-Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer It can be implemented using packages such as -level Fabricated Package (WFP), Wafer-Level Processed Stack Package (WSP), and the like.

이하에서는 도 3 및 도 4를 참조하여, 종래의 임베디드 시스템 개발 공정과 본 발명의 실시예에 따른 임베디드 시스템(100) 개발 공정의 차이점을 살펴본다.3 and 4, the difference between the conventional embedded system development process and the embedded system 100 development process according to an embodiment of the present invention will be described.

도 3은 종래의 임베디드 시스템 개발 공정을 나타내는 흐름도이다. 도 3을 참조하면, 종래의 시스템 프로그래밍 언어 기반의 임베디드 시스템 개발 공정은 소스 코드 작성 단계(S30), 전체 또는 일부 소스 코드를 컴파일하는 단계(S31), 임베디드 시스템에 적재 가능한 펌웨어를 생성하는 단계(S32), 생성된 펌웨어를 임베디드 시스템에 적재하는 단계(S33), 및 펌웨어를 적재한 임베디드 시스템을 부팅시켜서 적재된 펌웨어의 동작을 확인하고 디버깅하는 단계(S34)를 포함하며, 상기 S30 내지 S34단계가 반복적으로 수행됨을 알 수 있다.3 is a flowchart illustrating a conventional embedded system development process. Referring to FIG. 3, in the embedded system development process based on a conventional system programming language, a step of creating source code (S30), a step of compiling all or a part of source code (S31), and generating a firmware loadable to an embedded system ( S32), loading the generated firmware into the embedded system (S33), and booting the embedded system loaded with the firmware to check and debug the operation of the loaded firmware (S34), wherein the steps S30 to S34 It can be seen that is performed repeatedly.

이상에서 살펴본 과정들 중에서 전반적으로 소스 코드 작성 단계(S30)는 본 발명의 실시예에 따른 임베디드 시스템(100) 소스 코드 작성 단계와 유사하다. 그러나 그 이후의 S31 내지 S34 단계는 본 발명의 실시예에 따른 임베디드 시스템(100) 개발 단계와는 다르다.Among the processes described above, the overall source code creation step S30 is similar to the embedded system 100 source code creation step according to the embodiment of the present invention. However, subsequent steps S31 to S34 are different from the steps for developing the embedded system 100 according to the embodiment of the present invention.

인터넷 공유기 및 인터넷 전화기 단말기를 예로 들면, 소스 코드 컴파일 단계(S31)에는 단말기의 기능에 따라 차이가 있으나 약 6분에서 8분 정도의 시간이 소요되며, 펌웨어 생성 단계(S32)에는 약 2분 정도의 시간이 소요되며, 펌웨어 적재 단계(S33)는 약 1분 정도의 시간이 소요된다. 즉, 소스 코드를 수정하고 해당 소스 코드의 결과물을 동작시키는데에는 약 10분 정도의 시간이 소요된다. 이는 소스 코드 작성에 있어 한 줄이 바뀌었거나 여러 개의 파일이 바뀌는 경우에도 동일하다.For example, an internet router and an internet phone terminal, the source code compilation step (S31) is different depending on the function of the terminal, but takes about 6 to 8 minutes, and the firmware generation step (S32) is about 2 minutes It takes time, and the firmware loading step (S33) takes about 1 minute. That is, it takes about 10 minutes to modify the source code and to operate the output of the source code. This is true even if a line is changed or several files are changed in writing source code.

그러나 스크립트 프로그래밍 언어 기반의 본 발명의 실시예에 따른 임베디드 시스템(100)의 개발 공정은 종래의 임베디드 시스템 개발 공정에 비하여 공정이 간단하며, 소요되는 시간도 더 짧다. 도 4는 본 발명의 실시예에 따른 임베디드 시스템(100)의 개발 공정을 나타내는 흐름도이다.However, the development process of the embedded system 100 according to the embodiment of the present invention based on the script programming language is simpler than the conventional embedded system development process, and the time required is shorter. 4 is a flowchart illustrating a development process of an embedded system 100 according to an exemplary embodiment of the present invention.

도 4를 참조하면, 본 발명의 실시예에 따른 임베디드 시스템(100) 개발 공정은 소스 코드를 작성하는 단계(S40), 소스 코드를 임베디드 시스템(100)에 적재하는 단계(S41), 및 적재된 소스 코드를 바로 실행하여 그 결과를 확인하고 디버깅하는 단계(S42)를 포함한다.Referring to FIG. 4, in the process of developing an embedded system 100 according to an embodiment of the present invention, a process of creating source code (S40), loading source code into the embedded system 100 (S41), and loaded Immediately executing the source code, and checking and debugging the result (S42).

본 발명의 실시예에 따른 임베디드 시스템(100)의 개발 공정이 도 3을 참조하여 설명한 종래의 임베디드 시스템 개발 공정과 다른 점은 소스 코드를 컴파일하여 펌웨어를 생성하는 단계를 필요로 하지 않고, 적재된 펌웨어를 반영하기 위해 임베디드 시스템(100)을 리부팅할 필요가 없음을 알 수 있다. 이는 스크립트 프로그래밍 언어 기반으로 작성되어 임베디드 시스템(100)에 적재된 소스 코드는 LUA 인터프리터(116)에 의해서 별다른 과정없이 바로 실행될 수 있기 때문이다.The development process of the embedded system 100 according to an embodiment of the present invention is different from the conventional embedded system development process described with reference to FIG. 3 without requiring the step of compiling the source code to generate the firmware. It can be seen that there is no need to reboot the embedded system 100 to reflect the firmware. This is because the source code written based on the script programming language and loaded into the embedded system 100 may be directly executed by the LUA interpreter 116 without any special process.

다음으로 도 4 및 도 5를 참조하여, 종래의 임베디드 시스템의 펌웨어 관리 방법과 본 발명의 실시예에 따른 임베디드 시스템(100)의 펌웨어 관리 방법의 차이점을 살펴본다.4 and 5, the difference between the firmware management method of the conventional embedded system and the firmware management method of the embedded system 100 according to the embodiment of the present invention will be described.

도 5는 종래의 임베디드 시스템의 펌웨어 업데이트 과정을 나타내는 흐름도이다. 기존 임베디드 시스템에서 펌웨어 일부에 변경이 필요한 경우에도 전체 펌웨어를 업데이트해야 하는 문제점이 있습니다. 이하 도 5를 참조하여 그 과정을 상세하게 살펴본다.5 is a flowchart illustrating a firmware update process of a conventional embedded system. Even if some firmware needs to be changed on an existing embedded system, there is a problem that requires updating the entire firmware. Hereinafter, the process will be described in detail with reference to FIG. 5.

펌웨어 업데이트가 필요한 경우, 서비스 공급자 또는 임베디드 시스템 제소사는 신규 펌웨어를 단말 버전 관리 서버에 등록하고 펌웨어를 파일 배포 서버에 등록한다(S50). 업그레이드 이벤트가 발생하면(S51), 임베디드 시스템은 신규 펌웨어가 상기 단말 버전 관리 서버 또는 파일 배포 서버에 존재하는지를 확인한다(S52). If a firmware update is required, the service provider or embedded system petitioner registers the new firmware on the terminal version management server and registers the firmware on the file distribution server (S50). When an upgrade event occurs (S51), the embedded system checks whether new firmware exists in the terminal version management server or file distribution server (S52).

여기서, 업그레이트 이벤트라 함은 임베디드 시스템이 일정 주기로 단말 버전 서버 등에 접근하여 신규 펌웨어 존재를 확인하거나, 단말 버전 관리 서버 등에서 임베디드 시스템에게 신규 펌웨어 존재 확인을 명하는 방법이 있다. 하나의 단말 버전 서버 등에 다수의 임베디드 시스템들이 접속된다. 그러므로 일반적으로 신규 업그레이드 이벤트 방식은 전자를 사용하며, 후자는 주로 문제 발생 단말에 대한 조치를 위하여 사용된다.Here, the upgrade event may be a method in which the embedded system approaches the terminal version server at regular intervals to check for new firmware, or the terminal version management server may order the embedded system to check for new firmware. Multiple embedded systems are connected to one terminal version server or the like. Therefore, the new upgrade event method generally uses the former, and the latter is mainly used for the action on the problem-producing terminal.

단말 버전 관리 서버 등에 신규 펌웨어가 존재하지 않으면, 임베디드 시스템은 정상 동작을 수행한다(S53). 그러나 단말 버전 관리 서버 등에 신규 펌웨어가 존재함이 확인되면, 임베디드 시스템은 해당 펌웨어를 단말 버전 관리 서버 등으로부터 다운을 받고(S54), 다운된 펌웨어의 무결성 검사를 수행한다(S55).If the new firmware does not exist in the terminal version management server or the like, the embedded system performs a normal operation (S53). However, when it is confirmed that the new firmware exists in the terminal version management server, the embedded system downloads the corresponding firmware from the terminal version management server, etc. (S54), and performs integrity check of the downloaded firmware (S55).

요즘에는 임베디드 시스템의 사용자 인터페이스가 복잡해지고 및 다양한 편의 기능들이 임베디드 시스템에 탑재되는 추세이므로 임베디드 시스템에 적재되는 펌웨어의 용량 및 단말 버전 서버 등이 담당하는 임베디드 시스템의 수도 비약적으로 증가하고 있다. 이에 따라 서비스 공급자가 전체 임베디드 시스템의 펌웨어를 업그레이드하는데 걸리는 시간 역시 비약적으로 증가하고 있다.Recently, since the user interface of the embedded system is complicated and various convenience functions are mounted on the embedded system, the number of embedded systems that are in charge of the capacity of the firmware loaded on the embedded system and the terminal version server is increasing dramatically. As a result, the time it takes for service providers to upgrade the firmware of the entire embedded system is also increasing dramatically.

예컨대, 현재 국내에 보급된 약 500만 대의 인터넷 전화의 펌웨어를 업그레이드가 필요한 경우, 네트워크 밴드와 전 가입자의 인터넷 전화 단말기의 펌웨어를 업그레이드를 완료하는데 걸리는 시간은 측정하기가 어려울 정도이다.For example, if it is necessary to upgrade the firmware of about 5 million Internet phones currently distributed in Korea, the time taken to complete the upgrade of the network bands and the Internet phone terminals of all subscribers is difficult to measure.

또한, 단말 버전 관리 서버 등으로부터 다운받은 펌웨어를 임베디드 시스템에 적용하기 전에 그 펌웨어가 단말 버전 관리 서버 등에 등록되어 있는 펌웨어와 동일하지 않으면 다운받은 펌웨어는 폐기되어야 한다.In addition, if the firmware downloaded from the terminal version management server or the like is not the same as the firmware registered in the terminal version management server, etc., the downloaded firmware must be discarded.

다운받은 펌웨어에 문제가 없다면 임베디드 시스템은 펌웨어를 메모리에 저장하고(S56), 리부팅을 하여 새로운 펌웨어로 동작하게 된다(S57). 보통 이러한 단계를 통한 신규 펌웨어를 다운 및 설치 적용에 걸리는 시간은 임베디드 시스템당 약 4~6분 정도 소요되며, 이 중간에 정전이라던가 네트워크 서비스 장애와 같은 비정상적인 경우가 발생할 경우 임베디드 시스템은 이전 펌웨어로 복귀를 하게 되고 이전 펌웨어로의 복귀 실패 시에는 사용자는 에프터 서비스를 통하여 임베디드 시스템을 수리받아야 한다.If there is no problem with the downloaded firmware, the embedded system stores the firmware in memory (S56) and reboots to operate as new firmware (S57). Usually, the time required to download and install new firmware through these steps is about 4-6 minutes per embedded system. In the meantime, if an abnormal event such as a power failure or network service failure occurs, the embedded system returns to the previous firmware. In case of failing to return to the previous firmware, the user should repair the embedded system through the after service.

도 6은 본 발명의 실시예에 따른 임베디드 시스템의 펌웨어 업데이트 과정을 나타내는 흐름도이다. 이하 도 6을 참조하여 그 과정을 상세하게 살펴본다.6 is a flowchart illustrating a firmware update process of an embedded system according to an exemplary embodiment of the present invention. Hereinafter, the process will be described in detail with reference to FIG. 6.

본 발명의 실시예에 따른 임베디드 시스템(100)의 펌웨어 업데이트가 필요한 경우, 신규 펌웨어 등록 단계(S60) 및 업그레이드 이벤트 발생 단계(S61)는 기존의 임베디드 시스템에서 단계와 차이가 없다.When the firmware update of the embedded system 100 according to the embodiment of the present invention is required, the new firmware registration step S60 and the upgrade event generation step S61 are not different from those of the existing embedded system.

그러나 종래의 방법과 달리, 본 발명의 실시예에 따른 임베디드 시스템(100)은 신규 소스 코드가 단말 버전 관리 서버 등에 존재하면(S62), 업그레이드가 필요한 해당 코드만을 다운 받아서 저장하며(S64, S65), 종래의 방법에서의 펌웨어 적재 및 임베디드 시스템 리부팅 과정을 거치지 않고 바로 소스 코드를 실행할 수 있다.However, unlike the conventional method, the embedded system 100 according to an embodiment of the present invention, if the new source code is present in the terminal version control server (S62), and only download the corresponding code that needs to be upgraded (S64, S65) In this case, the source code can be directly executed without the firmware loading and the embedded system rebooting in the conventional method.

즉, 본 발명의 실시예에 따른 임베디드 시스템(100)의 일부 펌웨어 업그레이드 시에는 전체 펌웨어를 교체하지 않아도 되기 때문에 기존 임베디드 단말의 펌웨어 교체방식에 비해 신규 소스 코드의 크기가 매우 작고, 그 전송 시간이 짧다. 그러므로 본 발명의 실시예에 따른 임베디드 시스템(100) 펌웨어 업그레이드 방법은 종래의 방법에 비하여 다수의 임베디드 시스템들에 대한 매우 효율적이고 빠른 실행 코드를 업그레이드를 수행할 수 있는 장점을 가진다.That is, when upgrading some firmware of the embedded system 100 according to an embodiment of the present invention, the entire firmware does not need to be replaced, and thus the size of the new source code is very small compared to the firmware replacement method of the existing embedded terminal. short. Therefore, the firmware upgrade method of the embedded system 100 according to the exemplary embodiment of the present invention has an advantage of performing upgrade of a very efficient and fast executable code for a plurality of embedded systems as compared with the conventional method.

이상에서 살펴본 본 발명의 실시예에 따른 임베디드 시스템(100) 펌웨어 업그레이드 방법을 포함하는 임베디드 시스템(100) 구동 방법은 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터가 읽을 수 있는 코드를 실행함으로써 구현될 수 있다. 본 발명의 실시예에 따른 임베디드 시스템(100) 구동 방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장된 상기 임베디드 시스템(100) 구동 방법을 실행하기 위한 컴퓨터 프로그램을 실행함으로써 구현될 수 있다.The embedded system 100 driving method including the embedded system 100 firmware upgrade method according to an embodiment of the present invention described above may be implemented by executing computer readable codes stored in a computer readable recording medium. have. The method for driving the embedded system 100 according to the embodiment of the present invention may be implemented by executing a computer program for executing the method for driving the embedded system 100 stored in a computer-readable recording medium.

컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 예컨대, 컴퓨터가 읽을 수 있는 기록매체에는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. For example, computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like.

또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명의 실시예에 따른 임베디드 시스템(100) 구동 방법을 구현하기 위한 기능적인 (functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. In addition, functional programs, codes, and code segments for implementing the embedded system 100 driving method may be easily inferred by programmers in the art to which the present invention pertains.

이하에서는 본 발명의 실시예에 따른 임베디드 시스템(100)에 활용될 수 있는 시스템 프로그래밍 언어들 및 스크립트 프로그래밍 언어들의 특성에 대하여 간략하게 살펴본다.Hereinafter, the characteristics of system programming languages and script programming languages that may be utilized in the embedded system 100 according to an exemplary embodiment of the present invention will be described.

도 7은 다수의 시스템 프로그래밍 언어들과 다수의 스크립트 프로그래밍 언어들의 데이터 처리 속도를 나타낸다. 표 1은 대표적인 시스템 프로그래밍 언어인 C와 자바, 대표적인 스크립트 프로그래밍 언어인 루아와 파이톤(Python)의 특징을 나타낸다.7 illustrates the data processing speed of multiple system programming languages and multiple script programming languages. Table 1 shows the characteristics of C and Java, the representative system programming languages, and Lua and Python, the major script programming languages.

Figure pat00001
Figure pat00001

도 7 및 표 1을 참조하면, 이상에서 본 발명의 실시예에 따른 임베디드 시스템(100)에 활용된 스크립트 프로그래밍 언어인 루아는 복잡도가 낮아 소스 코드 구현 용이도가 높고, 데이터 처리 속도는 C 언어에 비해서는 약 30배 정도 느리나 자바 스크립트나 PHP에 비해서는 빠르며, 확장 모듈이 다른 언어들에 비하여 부족하며, 리소스 사용은 중간 정도임을 알 수 있다.Referring to FIG. 7 and Table 1, Lua, which is a script programming language used in the embedded system 100 according to an embodiment of the present invention, has a low complexity, high source code ease of implementation, and a data processing speed in the C language. It's about 30 times slower than Java or PHP, slow in extension modules compared to other languages, and moderate resource usage.

본 발명의 실시예에 따른 임베디드 시스템(100)에서는 루아 기반의 사용자용 임베디드 어플리케이션 모듈(110)을 C 언어 기반의 하드웨어 관련 어플리케이션 모듈(120)에 연동시킴으로써 루아 기반의 임베디드 시스템의 단점인 확장 모듈 부족을 보완하였다.In the embedded system 100 according to an exemplary embodiment of the present invention, the Lua-based embedded application module 110 for the user is linked to the C language-based hardware-related application module 120, thereby shortening the extension module, which is a disadvantage of the Lua-based embedded system. Supplemented.

발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

100: 임베디드 시스템 110: 사용자용 임베디드 어플리케이션 모듈
120: 하드웨어 관련 어플리케이션 모듈 112: 루아 코어 모듈
114: 루아 확장 모듈 116: 루아 인터프리터
118: 바인딩 인터페이스 122: C 어플리케이션 모듈
124: 리눅스 커넬 126: 시스템 폴 모듈
128: 네트워크 프로토콜 모듈 130: 디바이스 드라이버 모듈
100: embedded system 110: embedded application module for the user
120: hardware related application module 112: Lua core module
114: Lua extension module 116: Lua interpreter
118: binding interface 122: C application module
124: Linux kernel 126: System poll module
128: network protocol module 130: device driver module

Claims (17)

시스템 프로그래밍 언어를 이용하여, 다수의 로우 레벨 디바이스 리소스들을 정의하고 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 하드웨어 관련 어플리케이션 모듈; 및
스크립트 프로그래밍 언어를 이용하여, 상기 하드웨어 관련 어플리케이션 모듈과 연동하며 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 사용자용 임베디드 어플리케이션 모듈을 포함하며,
상기 사용자용 임베디드 어플리케이션 모듈은
다수의 스크립트 언어 기반의 모듈들에 대응하는 소스 코드를 실행하는 스크립트 인터프리터; 및
상기 하드웨어 관련 어플리케이션 모듈과 상기 사용자용 임베디드 어플리케이션 모듈을 바인딩하는 바인딩 인터페이스를 포함하는 임베디드 시스템.
A hardware related application module for defining a plurality of low level device resources and providing a handling service for the plurality of low level device resources using a system programming language; And
A user-programmed embedded application module for interoperating with the hardware related application module and controlling the plurality of low level device resources using a script programming language,
The user embedded application module
A script interpreter for executing source code corresponding to a plurality of script language based modules; And
Embedded system comprising a binding interface for binding the hardware-related application module and the user embedded application module.
제1항에 있어서, 상기 다수의 스크립트 언어 기반의 모듈들은
스크립트 언어 기반의 코어 모듈; 및
다수의 스크립트 언어 기반의 확장 모듈들을 포함하는 것을 특징으로 하는 임베디드 시스템.
The method of claim 1, wherein the plurality of scripting language based modules
Script language based core modules; And
Embedded system comprising a plurality of scripting language based extension modules.
제1항에 있어서, 상기 바인딩 인터페이스는
상기 하드웨어 관련 어플리케이션 모듈에서 상기 사용자용 임베디드 어플리케이션 모듈의 데이터와 함수를 사용할 수 있게 하며 상기 사용자용 임베디드 어플리케이션 모듈에서 상기 하드웨어 관련 어플리케이션 모듈의 프로그래밍 언어 기반의 어플리케이션 모듈을 사용할 수 있도록 하는 임베디드 시스템.
The method of claim 1, wherein the binding interface
An embedded system that allows the hardware-related application module to use data and functions of the user-specific embedded application module and to use the programming language-based application module of the hardware-related application module in the user-embedded application module.
제3항에 있어서, 상기 프로그래밍 언어 기반의 어플리케이션 모듈은
원격 절차 호출(RPC: Remote Procedure Call) 기반으로 상기 사용자용 임베디드 어플리케이션 모듈과 연동되는 라이브러리들을 포함하는 임베디드 시스템.
The method of claim 3, wherein the programming language-based application module
Embedded system including libraries that are linked with the embedded application module for the user based on Remote Procedure Call (RPC).
제1항에 있어서, 상기 스크립트 프로그래밍 언어는
LUA인 것을 특징으로 하는 임베디드 시스템.
The method of claim 1, wherein the script programming language is
Embedded system characterized in that the LUA.
제1항에 있어서, 상기 시스템 프로그래밍 언어는
C 또는 C++인 것을 특징으로 하는 임베디드 시스템.
The system of claim 1, wherein the system programming language is
Embedded system characterized in that it is C or C ++.
제1항에 있어서, 상기 임베디드 시스템은
미리 정해진 통신 프로토콜에 기초하여 수신되는 소스 코드를 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 신규 펌웨어 등록하는 것을 특징으로 하는 임베디드 시스템.
The system of claim 1, wherein the embedded system is
And storing the received source code in a memory of the embedded system based on a predetermined communication protocol and registering the new firmware by executing the stored source code.
제1항에 있어서, 상기 임베디드 시스템은
미리 정해진 통신 프로토콜에 기초하여 수신되는 업데이트하고자 하는 소스 코드 부분을 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 펌웨어를 업데이트하는 것을 특징으로 하는 임베디드 시스템.
The system of claim 1, wherein the embedded system is
And storing the source code portion to be received based on a predetermined communication protocol in a memory of the embedded system and updating the firmware by executing the stored source code.
시스템 프로그래밍 언어를 이용하여, 다수의 로우 레벨 디바이스 리소스들을 정의하고 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 단계; 및
스크립트 프로그래밍 언어를 이용하여, 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 단계와 연동하여 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 단계를 포함하며,
상기 스크립트 프로그래밍 언어를 이용하여 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 단계는
다수의 스크립트 언어 기반의 모듈들에 대응하는 소스 코드를 실행하는 단계; 및
상기 시스템 프로그래밍 언어를 이용하여 상기 다수의 로우 레벨 디바이스 리소스들을 핸들링 서비스를 제공하는 단계와 상기 스크립트 프로그래밍 언어를 이용하여 상기 다수의 로우 레벨 디바이스 리소스들을 제어하는 단계를 바인딩하는 단계를 포함하는 임베디드 시스템 구동 방법.
Defining a plurality of low level device resources and providing a handling service to the plurality of low level device resources using a system programming language; And
Using a script programming language to control the plurality of low level device resources in conjunction with providing the handling service of the plurality of low level device resources,
Controlling the plurality of low level device resources using the script programming language
Executing source code corresponding to a plurality of script language based modules; And
Binding a step of providing a handling service for the plurality of low level device resources using the system programming language and controlling the plurality of low level device resources using the script programming language. Way.
제9항에 있어서, 상기 다수의 스크립트 언어 기반의 모듈들은
스크립트 언어 기반의 코어 모듈; 및
다수의 스크립트 언어 기반의 확장 모듈들을 포함하는 것을 특징으로 하는 임베디드 시스템 구동 방법.
10. The method of claim 9, wherein the plurality of scripting language based modules
Script language based core modules; And
An embedded system driving method comprising a plurality of scripting language based extension modules.
제9항에 있어서, 상기 바인딩하는 단계는
시스템 프로그래밍 언어 기반의 모듈에서 스크립트 프로그래밍 언어 기반의 모듈의 데이터와 함수를 사용할 수 있게 하며, 상기 스크립트 프로그래밍 언어 기반의 모듈에서 상기 시스템 프로그래밍 언어 기반의 모듈을 사용할 수 있도록 하는 단계를 포함하는 임베디드 시스템 구동 방법.
The method of claim 9, wherein the binding step
Enabling the system programming language-based module to use data and functions of the script programming language-based module, and enabling the script programming language-based module to use the system programming language-based module. Way.
제11항에 있어서, 상기 시스템 프로그래밍 언어 기반의 어플리케이션 모듈은
원격 절차 호출(RPC: Remote Procedure Call) 기반으로 상기 스크립트 프로그래밍 언어 기반의 모듈과 연동되는 라이브러리들을 포함하는 것을 특징으로 하는 임베디드 시스템 구동 방법.
12. The system of claim 11, wherein the system programming language based application module
And a library interoperating with the script programming language based module based on a remote procedure call (RPC).
제9항에 있어서, 상기 스크립트 프로그래밍 언어는
LUA인 것을 특징으로 하는 임베디드 시스템 구동 방법.
10. The system of claim 9, wherein the script programming language is
Embedded system drive method characterized in that the LUA.
제9항에 있어서, 상기 시스템 프로그래밍 언어는
C 또는 C++인 것을 특징으로 하는 임베디드 시스템 구동 방법.
10. The system of claim 9, wherein the system programming language is
Method of driving an embedded system, characterized in that the C or C ++.
제9항에 있어서, 상기 임베디드 시스템 구동 방법은
미리 정해진 통신 프로토콜에 기초하여 수신되는 소스 코드를 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 신규 펌웨어를 등록하는 단계를 더 포함하는 임베디드 시스템 구동 방법.
The method of claim 9, wherein the embedded system driving method is
And registering new firmware by storing the received source code in a memory of the embedded system based on a predetermined communication protocol and executing the stored source code.
제9항에 있어서, 상기 임베디드 시스템 구동 방법은
미리 정해진 통신 프로토콜에 기초하여 수신되는 업데이트하고자 하는 소스 코드 부분을 상기 임베디드 시스템의 메모리에 저장하고 상기 저장된 소스 코드를 실행함으로써 펌웨어를 업데이트하는 단계를 더 포함하는 임베디드 시스템 구동 방법
The method of claim 9, wherein the embedded system driving method is
Storing the source code portion to be received based on a predetermined communication protocol in a memory of the embedded system and updating the firmware by executing the stored source code.
제9항 내지 제17항 중 어느 하나의 항에 기재된 임베디드 시스템 구동 방법을 실행하기 위한 코드를 저장하는 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium storing code for executing the embedded system driving method according to any one of claims 9 to 17.
KR1020100027479A 2010-03-26 2010-03-26 Embeded system based on script programming language and operation method thereof KR20110108143A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100027479A KR20110108143A (en) 2010-03-26 2010-03-26 Embeded system based on script programming language and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100027479A KR20110108143A (en) 2010-03-26 2010-03-26 Embeded system based on script programming language and operation method thereof

Publications (1)

Publication Number Publication Date
KR20110108143A true KR20110108143A (en) 2011-10-05

Family

ID=45316241

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100027479A KR20110108143A (en) 2010-03-26 2010-03-26 Embeded system based on script programming language and operation method thereof

Country Status (1)

Country Link
KR (1) KR20110108143A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092732A (en) * 2013-01-23 2013-05-08 加弘科技咨询(上海)有限公司 System used for dynamically monitoring device by scripts
CN109189663A (en) * 2018-07-12 2019-01-11 武汉精测电子集团股份有限公司 A kind of plug-in unit adjustment method, test method and microkernel architecture system
CN112860283A (en) * 2019-11-12 2021-05-28 深圳怡化电脑股份有限公司 Self-identification upgrading method and device of SP (service provider) upgrading package and computer equipment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092732A (en) * 2013-01-23 2013-05-08 加弘科技咨询(上海)有限公司 System used for dynamically monitoring device by scripts
CN103092732B (en) * 2013-01-23 2016-08-17 加弘科技咨询(上海)有限公司 Utilize the system of the dynamic monitoring device of script
CN109189663A (en) * 2018-07-12 2019-01-11 武汉精测电子集团股份有限公司 A kind of plug-in unit adjustment method, test method and microkernel architecture system
CN112860283A (en) * 2019-11-12 2021-05-28 深圳怡化电脑股份有限公司 Self-identification upgrading method and device of SP (service provider) upgrading package and computer equipment
CN112860283B (en) * 2019-11-12 2024-04-02 深圳怡化电脑股份有限公司 SP upgrade package self-identification upgrade method and device and computer equipment

Similar Documents

Publication Publication Date Title
Novac et al. Comparative study of Google Android, Apple iOS and Microsoft Windows phone mobile operating systems
WO2017185606A1 (en) Overlay mechanism-based apk development method and system
JP5415557B2 (en) User script code conversion for debugging
US20140189679A1 (en) Methods and systems for producing, evaluating and simulating executable applications
US9158521B2 (en) Automatic provisioning of a software platform to a device ecosystem
CN103530156A (en) Method and device for dynamically loading and calling program
CN104375849A (en) Core loading method and device
JP2017146966A (en) Method and system for extending function to package file
CN107220074B (en) Method and device for accessing and upgrading supporting layer software function
JPWO2006009287A1 (en) Automatic conversion program and program conversion server
WO2012142798A1 (en) Method and apparatus for loading application program
JP2015503812A (en) Installation engine and package format for parallelizable and reliable installation
KR20110108143A (en) Embeded system based on script programming language and operation method thereof
CN111290740B (en) Application program development method and device, computer equipment and storage medium
WO2020077487A1 (en) Method and related apparatus for optimizing and running android application
US10552135B1 (en) Reducing a size of an application package
CN112988175A (en) Cross-platform application installation package generation method, device, medium and electronic equipment
CN112313620A (en) Android system starting method, device, equipment and storage medium
CN110851168A (en) Data processing method and device and computer readable storage medium
CN113641389B (en) Software upgrading method, device and equipment based on OpenCPU
US20120102473A1 (en) Abstract method removal for reduced memory footprint with optimizer tool
WO2019157891A1 (en) Application installation method and application installer generating method
Lawall et al. Tarantula: Killing driver bugs before they hatch
CN113778451A (en) File loading method and device, computer system and computer readable storage medium
CN113672238B (en) Operation method, device and equipment based on real-time operating system modularized management

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application