KR20060062939A - The software development and operation method for the embedded system and mobile terminal using the method - Google Patents

The software development and operation method for the embedded system and mobile terminal using the method Download PDF

Info

Publication number
KR20060062939A
KR20060062939A KR1020040101946A KR20040101946A KR20060062939A KR 20060062939 A KR20060062939 A KR 20060062939A KR 1020040101946 A KR1020040101946 A KR 1020040101946A KR 20040101946 A KR20040101946 A KR 20040101946A KR 20060062939 A KR20060062939 A KR 20060062939A
Authority
KR
South Korea
Prior art keywords
host computer
file
embedded system
flash memory
file system
Prior art date
Application number
KR1020040101946A
Other languages
Korean (ko)
Other versions
KR100658564B1 (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 KR1020040101946A priority Critical patent/KR100658564B1/en
Publication of KR20060062939A publication Critical patent/KR20060062939A/en
Application granted granted Critical
Publication of KR100658564B1 publication Critical patent/KR100658564B1/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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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

Landscapes

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

Abstract

본 발명은 임베디드 시스템의 소프트웨어 개발 및 실행 방법, 그리고 이를 이용한 이동 단말 장치에 관한 것이다. The present invention relates to a software development and execution method of an embedded system, and a mobile terminal device using the same.

본 발명에서는 소프트웨어 개발 단계에서 수정된 프로그램 바이너리 코드를 임베디드 시스템의 플래시 메모리에 기록하지 않고 분산 네트워크 파일 시스템을 이용하여 임베디드 시스템에서 실행시킨다. 즉, 수정된 프로그램 바이너리 코드를 호스트 컴퓨터의 분산 네트워크 파일 시스템에 직접 반영하고, 이후 로컬 네트워크를 통하여 호스트 컴퓨터에 접속되는 임베디드 시스템의 루트 파일 시스템의 서브 디렉토리에 마운트된 분산 네트워크 파일 시스템이 상기 프로그램 바이너리 코드를 읽어와서 실행시킨다. In the present invention, the program binary code modified at the software development stage is executed in the embedded system using a distributed network file system without writing the flash memory of the embedded system. That is, the modified program binary code is directly reflected on the distributed network file system of the host computer, and then the distributed program file is mounted on a subdirectory of the root file system of the embedded system connected to the host computer through a local network. Read the code and run it.

이러한 본 발명에 따르면 임베디드 시스템의 소프트웨어 개발 완료 단계에서 최적화된 프로그램 바이너리 코드만을 임베디드 시스템의 플래시 메모리에 기록할 수 있으므로, 불필요한 플래시 메모리로의 코드 기록 횟수를 감소시킬 수 있다.According to the present invention, since only the program binary code optimized at the software development completion stage of the embedded system can be written to the flash memory of the embedded system, the number of times of code writing to the flash memory can be reduced.

이동 단말 장치, 임베디드시스템, 분산네트워크파일 Mobile terminal device, embedded system, distributed network file

Description

임베디드 시스템의 소프트웨어 개발 및 실행 방법, 그리고 이를 이용한 이동 단말 장치{THE SOFTWARE DEVELOPMENT AND OPERATION METHOD FOR THE EMBEDDED SYSTEM AND MOBILE TERMINAL USING THE METHOD}SOFTWARE DEVELOPMENT AND OPERATION METHOD FOR THE EMBEDDED SYSTEM AND MOBILE TERMINAL USING THE METHOD}

도 1은 본 발명의 실시 예에 따른 임베디드 시스템의 소프트웨어 개발을 위한 장치들의 네트워크 연결도이다.1 is a network connection diagram of devices for software development of an embedded system according to an exemplary embodiment of the present invention.

도 2는 도 1에 도시된 각 장치들의 구조도이다. FIG. 2 is a structural diagram of each device shown in FIG. 1.

도 3은 본 발명의 실시 예에 따라 임베디드 이동 단말 장치의 소프트웨어 개발 환경을 구성하는데 있어서, 이동 단말 이미지 파일이 기록되어 있는 상태의 이동 단말 장치의 구조를 개념적으로 나타낸 도이다. 3 is a diagram conceptually illustrating a structure of a mobile terminal device in which a mobile terminal image file is recorded in configuring a software development environment of an embedded mobile terminal device according to an exemplary embodiment of the present invention.

도 4는 본 발명의 실시 예에 따른 이동 단말 장치의 이미지 파일 기록 과정을 나타낸 흐름도이다.4 is a flowchart illustrating an image file recording process of a mobile terminal device according to an exemplary embodiment of the present invention.

도 5는 본 발명의 실시 예에 따른 이동 단말 장치의 소프트웨어 개발 및 실행 과정을 나타낸 흐름도이다.5 is a flowchart illustrating a software development and execution process of a mobile terminal device according to an embodiment of the present invention.

본 발명은 임베디드(embedded) 시스템에 관한 것으로, 더욱 상세하게 말하자 면 임베디드 시스템의 소프트웨어 개발 및 실행 방법, 그리고 이를 이용한 이동 단말 장치에 관한 것이다.The present invention relates to an embedded system, and more particularly, to a method for developing and executing software of an embedded system, and a mobile terminal device using the same.

일반적으로, 임베디드 시스템(Embedded System)이란 미리 정해진 특정 기능을 수행하기 위해 컴퓨터의 하드웨어와 소프트웨어가 조합된 전자 제어 시스템을 말하며, 필요에 따라서는 일부 기계가 포함될 수 있다. 즉, 우리 생활에서 쓰이는 각종 전자 기기, 가전제품, 제어장치 등은 단순히 회로로만 구성된 것이 아니라 마이크로컨트롤러(또는 마이크로 프로세서)가 내장되어 있고, 이 마이크로컨트롤러를 구동하여 특정한 기능을 수행하도록 프로그램이 내장되어 있는 시스템을 가리킨다. 쉽게 주위에서 볼 수 있는 임베디드 시스템으로는 예를 들면, DVD 플레이어, 셋탑박스, 이동 단말 장치, MP3 플레이어, 캠코더, 디지털 카메라, 냉장고, 세탁기와 같은 가전기기가 있다. 뿐만 아니라, 승강기, 항공기, 의료기기, 자동차, 공장제어, 통신 장비(교환기, 라우터 등)도 임베디드 시스템이다. Generally, an embedded system refers to an electronic control system in which hardware and software of a computer are combined to perform a predetermined predetermined function, and some machines may be included as necessary. In other words, various electronic devices, home appliances, and control devices used in our lives are not simply composed of circuits, but microcontrollers (or microprocessors) are built in, and programs are built to drive the microcontrollers to perform specific functions. Point to a system. Embedded systems that can be easily seen around are, for example, home appliances such as DVD players, set-top boxes, mobile terminal devices, MP3 players, camcorders, digital cameras, refrigerators and washing machines. In addition, elevators, aircraft, medical devices, automobiles, factory control, and communication equipment (exchangers, routers, etc.) are embedded systems.

초기의 임베디드 시스템은 그 구성이 매우 단순하였으며, 4비트/8비트 컨트롤러에 제한된 동작을 하도록 하는 소프트웨어가 탑재된 시스템이 대부분이었다. 그러나, 요즘은 32비트 마이크로프로세서와 디지털 신호 처리기(DSP: Digital Signal Processor)가 일반적으로 사용됨에 따라 사용영역이 넓어지고 그에 따른 고성능의 소프트웨어도 함께 발달하게 되었다. Early embedded systems were very simple in configuration and most were equipped with software that allowed limited operation on a 4bit / 8bit controller. However, as 32-bit microprocessors and digital signal processors (DSPs) are commonly used these days, a wider range of applications and higher performance software have been developed.

이러한 임베디드 시스템의 응용 분야가 다양해지면서, 예전에는 단순했던 임베디드 소프트웨어가 점점 더 복잡하고 다양한 기능을 처리하게 되었으며, 임베디드 시스템 제조업자들은 임베디드 소프트웨어를 빨리 개발하여 프로젝트 기간을 단 축하는데 반드시 필요한 임베디드 소프트웨어 개발 환경을 강력히 원하고 있다.As the application fields of these embedded systems have diversified, embedded software, which was previously simple, has been dealing with more and more complex and diverse functions, and embedded system manufacturers have developed the embedded software necessary to quickly develop embedded software and shorten the project period. We strongly want the environment.

임베디드 시스템은 대개 한정된 자원을 갖고 있기 때문에 임베디드 소프트웨어 개발 환경은 대개 호스트와 타겟으로 구성되며, 타겟에는 최소한의 개발 도구만 있고, 대부분의 도구는 자원이 풍부한 호스트에 존재한다. 임베디드 소프트웨어 개발 환경은 자원이 한정된 타겟에서 실행될 프로그램을 편리하고 빨리 개발할 수 있게 해야 한다. Embedded systems usually have limited resources, so the embedded software development environment usually consists of hosts and targets, with only a minimal development tool on the target, and most tools on a resource-rich host. Embedded software development environments should allow for convenient and rapid development of programs to run on resource-constrained targets.

일반적으로, 임베디드 시스템의 소프트웨어 개발은 크로스 툴체인(cross tool chain)을 이용하여 생성된 프로그램 바이너리 코드를 해당 임베디드 시스템의 플래시 메모리에 기록한 다음, 이후 상기 코드를 메인 메모리에 로딩시켜 실행한다. In general, software development of an embedded system writes program binary code generated using a cross tool chain to a flash memory of the embedded system, and then loads and executes the code into main memory.

그런데 이러한 경우에 임베디드 시스템의 소프트웨어 개발 단계에서 빈번하게 프로그램 수정이 일어나면, 소프트웨어 개발 주기가 연장되고 플래시 메모리의 수명을 단축시키는 문제가 발생한다. 즉, 프로그램이 수정이 발생될 때마다 임베디드 시스템의 플래시 메모리에 수정된 정보를 기록하는 과정이 수행됨으로써, 빈번한 정보 기록에 의하여 플래시 메모리의 수명이 단축된다. However, in this case, if the program is frequently modified in the software development stage of the embedded system, there is a problem that the software development cycle is extended and the life of the flash memory is shortened. That is, each time a program is modified, a process of writing the modified information in the flash memory of the embedded system is performed, thereby reducing the life of the flash memory by frequent information writing.

그러므로 본 발명이 이루고자 하는 기술적 과제는 보다 편리하고 효율성 있는 임베디드 시스템의 소프트웨어 개발 환경을 구축하고자 하는데 있다.Therefore, the technical problem to be achieved by the present invention is to build a software development environment of a more convenient and efficient embedded system.

특히, 본 발명이 이루고자 하는 기술적 과제는 임베디드 시스템의 소프트웨어를 개발하는데 있어서 분산 네트워크 파일 시스템 기술을 이용하여, 임베디드 시 스템의 플래시 메모리로의 불필요한 정보 기록 동작을 가능한 감소시키고자 하는데 있다. In particular, the technical problem to be achieved by the present invention is to reduce the unnecessary information recording operation of the embedded system to the flash memory using the distributed network file system technology in developing the software of the embedded system.

이러한 기술적 과제를 달성하기 위한 본 발명의 특징에 따른 임베디드 시스템의 소프트웨어 개발 및 실행 방법은, 로컬 네트워크를 통하여 임베디드 시스템과 호스트 컴퓨터, 콘솔 장치, 그리고 개발자 장치가 연결되어 있고, 상기 임베디드 시스템의 소프트웨어를 개발하고 실행시키는 방법에서, a) 상기 호스트 컴퓨터로부터 부트로더 파일, 커널 파일, 루트 파일 시스템 이미지 파일을 제공받아, 상기 임베디드 시스템의 플래시 메모리에 저장하는 단계; b) 상기 임베디드 시스템의 플래시 메모리에 저장된 부트로더 파일 및 커널 파일의 실행에 따라 커널 자동 부팅이 수행되는 단계; c) 상기 커널 자동 부팅 수행에 따라 상기 플래시 메모리에 저장된 루트 파일 시스템이 임베디드 시스템의 루트에 마운트되는 단계; d) 상기 임베디드 시스템의 요청에 따라 상기 호스트 컴퓨터의 분산 네트워크 파일 시스템(이하, 제1 분산 네트워크 파일 시스템이라고 명명함)이 상기 루트 파일 시스템의 서브 디렉토리에 마운트되는 단계; e) 상기 임베디드 시스템에 마운트된 분산 네트워크 파일 시스템(이하, 제2 분산 네트워크 파일 시스템이라고 명명함)이 호스트 컴퓨터로부터 전달되는 바이너리 코드 실행 요청에 따라, 상기 호스트 컴퓨터에서 컴파일되어 상기 제1 분산 네트워크 파일 시스템에 저장되어 있는 프로그램의 바이너리 코드를 읽어오는 단계; 및 f) 상기 임베디드 시스템의 제2 분산 네트워크 파일 시스템이 상기 프로그램 바이너리 코드를 실행시키는 단계를 포함한다. According to an aspect of the present invention, there is provided a method for developing and executing software of an embedded system. The embedded system is connected to a host computer, a console device, and a developer device through a local network. A method of developing and executing a method comprising: a) receiving a boot loader file, a kernel file, and a root file system image file from the host computer and storing the same in a flash memory of the embedded system; b) automatically booting the kernel according to the execution of the boot loader file and the kernel file stored in the flash memory of the embedded system; c) mounting a root file system stored in the flash memory to a root of an embedded system according to the kernel autobooting; d) mounting a distributed network file system (hereinafter, referred to as a first distributed network file system) of the host computer in a subdirectory of the root file system at the request of the embedded system; e) a distributed network file system mounted on the embedded system (hereinafter referred to as a second distributed network file system) is compiled on the host computer in response to a binary code execution request transmitted from a host computer, and the first distributed network file Reading the binary code of a program stored in the system; And f) executing the program binary code by a second distributed network file system of the embedded system.

여기서, 상기 e) 단계는 상기 개발자 장치로부터 소정의 프로그램이 상기 호스트 컴퓨터로 제공되는 단계; 상기 호스트 컴퓨터가 상기 프로그램을 컴파일하고, 컴파일에 따라 생성된 프로그램 바이너리 코드를 제1 분산 네트워크 파일 시스템에 저장하는 단계; 상기 호스트 컴퓨터가 상기 임베디드 시스템으로 바이너리 코드 실행을 명령하는 단계; 상기 임베디드 시스템의 제2 분산 네트워크 파일 시스템이 상기 명령에 따라 상기 호스트 컴퓨터의 제1 분산 네트워크 파일 시스템에 저장된 바이너리 코드를 읽어오는 단계를 포함한다. Here, step e) may include providing a predetermined program from the developer device to the host computer; Compiling the program by the host computer, and storing the program binary code generated according to the compilation in a first distributed network file system; The host computer instructing binary code execution to the embedded system; And reading, by the second distributed network file system of the embedded system, the binary code stored in the first distributed network file system of the host computer according to the command.

또한 본 발명의 다른 특징에 따른 이동 단말 장치는, 로컬 네트워크를 통하여 호스트 컴퓨터, 콘솔 장치, 그리고 개발자 장치가 연결되어 있는 이동 단말 장치에서, 상기 호스트 컴퓨터와의 데이터 송수신을 수행하는 제1 인터페이스; 상기 콘솔 장치와의 데이터 송수신을 수행하는 제2 인터페이스; 상기 호스트 컴퓨터로부터 제공받은 부트로더 파일, 커널 파일, 루트 파일 시스템 이미지 파일이 저장되어 있는 플래시 메모리; 상기 플래시 메모리에 저장된 각 파일들이 로딩되어 구동되는 메인 메모리; 상기 부트로더 파일 및 커널 파일의 구동에 따라 자동 커널 부팅이 이루어지면, 상기 플래시 메모리에 저장된 루트 파일 시스템을 루트에 마운트시키고, 상기 호스트 컴퓨터로부터 분산 네트워크 파일 시스템을 제공받아 상기 루트 파일 시스템의 서브 디렉토리에 마운트시키는 중앙 처리 장치를 포함하고, 상기 호스트 컴퓨터로부터 전달되는 바이너리 코드 실행 요청에 따라 상기 서브 디렉토리에 마운트된 분산 네트워크 파일 시스템이, 컴파일되어 상기 호스트 컴퓨터의 분산 네트워크 파일 시스템에 저장되어 있는 프로그램의 바이너리 코드를 읽어와서 실행 시킨다. In addition, the mobile terminal device according to another aspect of the present invention, in the mobile terminal device connected to the host computer, the console device, and the developer device via a local network, a first interface for performing data transmission and reception with the host computer; A second interface for performing data transmission and reception with the console device; A flash memory in which a boot loader file, a kernel file, and a root file system image file provided from the host computer are stored; A main memory in which files stored in the flash memory are loaded and driven; When the automatic kernel booting is performed according to the boot loader file and the kernel file, a root file system stored in the flash memory is mounted at a root, and a distributed network file system is provided from the host computer to receive a subdirectory of the root file system. A distributed network file system mounted on the subdirectory in response to a binary code execution request transmitted from the host computer, the program being compiled and stored in the distributed network file system of the host computer; Read and execute the binary code.

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 가장 바람직한 실시 예를 첨부된 도면을 참조로 하여 상세히 설명한다. 이하의 실시 예는 임베디드 시스템으로 임베디드 이동 단말 장치를 예로 하여 본 발명에 따른 임베디드 소프트웨어 개발 방법을 설명하지만, 본 발명에 따른 임베디드 시스템은 이동 단말 장치에 한정되지 않는다. DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. The following embodiment describes an embedded software development method according to the present invention by taking an embedded mobile terminal as an embedded system as an example, but the embedded system according to the present invention is not limited to the mobile terminal.

본 발명의 실시 예에서는 소프트웨어 개발 단계에서 수정된 프로그램 바이너리 코드를 이동 단말 장치의 플래시 메모리에 기록하지 않고 분산 네트워크 파일 시스템을 이용하여 이동 단말 장치에서 실행시킨다. 즉, 수정된 프로그램 바이너리 코드를 분산 네트워크 파일 시스템에 직접 반영한 다음에, 로컬 네트워크에 접속되고 분산 네트워크 파일 시스템이 마운트된 이동 단말 장치에서 프로그램 바이너리 코드를 실행할 수 있도록 한다. 이에 따라 이동 단말 장치의 소프트웨어 개발 완료 단계에서 최적화된 프로그램 바이너리 코드만을 이동 단말 장치의 플래시 메모리에 기록할 수 있으므로, 불필요한 플래시 메모리로의 코드 기록 횟수를 감소시킬 수 있다.In the embodiment of the present invention, the program binary code modified in the software development step is executed in the mobile terminal apparatus using a distributed network file system without writing the flash memory of the mobile terminal apparatus. That is, the modified program binary code is directly reflected in the distributed network file system, and then the program binary code can be executed in the mobile terminal device connected to the local network and mounted with the distributed network file system. Accordingly, since only the program binary codes optimized at the software development completion stage of the mobile terminal device can be written to the flash memory of the mobile terminal device, the number of times of code writing to the flash memory can be reduced.

도 1은 본 발명의 실시 예에 따른 이동 단말 장치의 소프트웨어 개발을 위한 네트워크 구성을 나타낸 도이며, 도 2는 각 장치들의 구조도이다. 1 is a diagram illustrating a network configuration for software development of a mobile terminal device according to an embodiment of the present invention, and FIG. 2 is a structural diagram of each device.

첨부한 도 1에 도시되어 있듯이, 본 발명의 실시 예에서 임베디드 이동 단말 장치의 소프트웨어 개발을 위하여, 이동 단말 장치(100), 호스트 컴퓨터(200), 콘솔 장치(300), 이동 단말 소프트웨어 개발자 장치(400)가 로컬 네트워크로 연결된 다. 구체적으로, 이동 단말 장치(100)와 호스트 컴퓨터(200)는 JTAG(joint test action group) 통신 인터페이스를 통하여 피어-투-피어(peer-to-peer)로 연결되고, 이동 단말 장치(100)와 콘솔 장치(300)는 시리얼 통신 인터페이스(130)를 통하여 피어-투-피어로 연결된다.As shown in FIG. 1, in order to develop software of an embedded mobile terminal device according to an embodiment of the present invention, the mobile terminal device 100, the host computer 200, the console device 300, and the mobile terminal software developer device ( 400 is connected to the local network. In detail, the mobile terminal device 100 and the host computer 200 are connected to a peer-to-peer through a joint test action group (JTAG) communication interface, and the mobile terminal device 100 is connected to the mobile terminal device 100. Console device 300 is connected to peer-to-peer via serial communication interface 130.

여기서, 타겟 디바이스인 이동 단말 장치(100)는 도 2에 도시되어 있듯이, 중앙 처리 장치(110), 메인 메모리(120), 플래시 메모리(130), 시리얼 통신 인터페이스(140), JTAG 통신 인터페이스(150), 네트워크 통신 인터페이스(160), 사용자 인터페이스를 위한 입출력 장치 통신 인터페이스(170)를 포함하는 형태로 이루어진다. 플래시 메모리(130)는 부트로더 이미지, 커널 이미지, 루트 파일 시스템 이미지 저장을 위한 영역을 포함한다. As shown in FIG. 2, the mobile terminal device 100, which is a target device, includes a central processing unit 110, a main memory 120, a flash memory 130, a serial communication interface 140, and a JTAG communication interface 150. ), A network communication interface 160, and an input / output device communication interface 170 for a user interface. The flash memory 130 includes an area for storing a boot loader image, a kernel image, and a root file system image.

여기서 중앙 처리 장치(110)는 각 인터페이스를 통하여 호스트 컴퓨터(200) 및 콘솔 장치(300) 등과 통신하여, 개발자 장치(400)에서 개발되어 호스트 컴퓨터(200)에 저장되는 프로그램을 이동 단말 장치(100)에서 실행시키고, 그 결과를 콘솔 장치(300)를 통하여 개발자 장치(400)로 제공한다. Here, the central processing unit 110 communicates with the host computer 200, the console device 300, and the like through each interface, and the mobile terminal device 100 stores a program developed in the developer device 400 and stored in the host computer 200. ) And provide the result to the developer device 400 through the console device 300.

이러한 본 발명의 실시 예에 따른 이동 단말 장치(100)는 위에 기술된 구성 요소 이외에도 데이터 송수신 및 데이터 처리를 위한 다수의 수단을 더 포함할 수 있으며, 이러한 수단들은 이미 공지된 기술이므로 여기서는 상세한 설명을 생략한다. The mobile terminal device 100 according to the embodiment of the present invention may further include a plurality of means for data transmission and reception and data processing in addition to the components described above. Omit.

또한 도 2에 도시되어 있듯이, 호스트 컴퓨터(200)도 타겟 디바이스와 동일한 하드웨어 환경을 구비하여, 중앙 처리 장치(210), 메인 메모리(220), 플래시 메 모리(230), 하드디스크(240), 병렬 통신 인터페이스(250), 시리얼 통신 인터페이스(260), 네트워크 통신 인터페이스(270), 입출력 장치 통신 인터페이스(280)로 이루어진다. 호스트 컴퓨터(200)의 중앙 처리 장치(210)는 타겟 디바이스의 소프트웨어 개발을 진행하기 위한 크로스 컴파일 환경인 크로스 툴체인 컴파일러(211)를 포함한다. 크로스 툴체인 컴파일러(211)는 각종 소스들을 컴파일하고 빌드하여 실행 바이너리를 생성하는데 필요한 각종 유틸리티 및 라이브러리를 포함한다. 이동 단말 장치(100)는 JTAG 통신 인터페이스(150)를 통하여 호스트 컴퓨터(200)와 연결되어, 이동 단말 장치의 JTAG 통신 포트와 호스트 컴퓨터의 병렬 통신 포트가 JTAG 통신 인터페이스로 연결된다. In addition, as shown in FIG. 2, the host computer 200 also has the same hardware environment as the target device, such that the central processing unit 210, the main memory 220, the flash memory 230, the hard disk 240, It consists of a parallel communication interface 250, a serial communication interface 260, a network communication interface 270, and an input / output device communication interface 280. The central processing unit 210 of the host computer 200 includes a cross toolchain compiler 211 which is a cross compilation environment for software development of a target device. The cross toolchain compiler 211 includes various utilities and libraries necessary to compile and build various sources to generate an executable binary. The mobile terminal device 100 is connected to the host computer 200 through the JTAG communication interface 150, and the JTAG communication port of the mobile terminal device and the parallel communication port of the host computer are connected to the JTAG communication interface.

또한 콘솔 장치(300)도 중앙 처리 장치(310), 메인 메모리(320), 플래시 메모리(330), 하드디스크(340), 시리얼 통신 인터페이스(350), 네트워크 통신 인터페이스(360), 입출력 장치 통신 인터페이스(370)로 이루어진다.In addition, the console device 300 also includes a central processing unit 310, a main memory 320, a flash memory 330, a hard disk 340, a serial communication interface 350, a network communication interface 360, and an input / output device communication interface. 370.

다음에는 이러한 구조를 토대로 하여 본 발명의 실시 예에 따른 임베디드 이동 단말 장치의 소프트웨어 개발 환경을 구성하고 소프트웨어를 개발 및 실행시키는 방법에 대하여 설명한다. Next, a method of constructing a software development environment of an embedded mobile terminal device according to an embodiment of the present invention and developing and executing software will be described.

임베디드 이동 단말 장치의 소프트웨어 개발 환경을 구성하기 위하여, 먼저, 이동 단말 장치(100), 호스트 컴퓨터(200), 콘솔 장치(300)의 하드웨어를 도 1에 도시된 바와 같이 구성하고, 이동 단말 소프트웨어 개발자 장치(400)의 하드웨어를 더미 터미널 또는 호스트 컴퓨터 수준의 장치로 구성한다. In order to configure a software development environment of an embedded mobile terminal device, first, hardware of the mobile terminal device 100, the host computer 200, and the console device 300 are configured as shown in FIG. 1, and the mobile terminal software developer The hardware of device 400 is configured as a dummy terminal or host computer level device.

그리고, 이동 단말 장치(100)의 JTAG 통신 포트와 호스트 컴퓨터의 병렬 통 신 포트를 JTAG 통신 인터페이스로 연결한다. Then, the JTAG communication port of the mobile terminal device 100 and the parallel communication port of the host computer are connected to the JTAG communication interface.

이와 같이 각 장치간의 네트워크 연결이 이루어진 후에, 다음과 같이 호스트 컴퓨터(200)로부터 이동 단말 장치(100)로의 이미지 파일 기록 과정이 수행된다. After the network connection is established between the devices as described above, an image file recording process from the host computer 200 to the mobile terminal device 100 is performed as follows.

도 3에 본 발명의 실시 예에 따라 임베디드 이동 단말 장치의 소프트웨어 개발 환경을 구성하는데 있어서, 이동 단말 이미지 파일이 기록되어 있는 상태의 이동 단말 장치의 구조가 개념적으로 도시되어 있다.FIG. 3 conceptually illustrates a structure of a mobile terminal device in which a mobile terminal image file is recorded in configuring a software development environment of an embedded mobile terminal device according to an embodiment of the present invention.

이동 단말 장치의 실행 환경을 구성하기 위하여, 이동 단말 장치(100)의 플래시 메모리(130)에 부트로더 이미지, 커널 이미지, 루트 파일 시스템 이미지 저장을 위한 영역을 구성한다. 도 3에 도시되어 있듯이, 이후 호스트 컴퓨터(200)로부터 생성되는 부트로더 파일, 커널 파일, 루트 파일 시스템 파일이 이미지 형태로 이동 단말 장치(100)의 플래시 메모리(130)의 해당 영역에 저장된다. In order to configure an execution environment of the mobile terminal device, an area for storing a boot loader image, a kernel image, and a root file system image is configured in the flash memory 130 of the mobile terminal device 100. As illustrated in FIG. 3, a boot loader file, a kernel file, and a root file system file generated from the host computer 200 are stored in a corresponding area of the flash memory 130 of the mobile terminal device 100 in the form of an image.

도 4는 본 발명의 실시 예에 따른 이동 단말 장치의 이미지 파일 기록 과정을 나타낸 흐름도이다.4 is a flowchart illustrating an image file recording process of a mobile terminal device according to an exemplary embodiment of the present invention.

첨부한 도 4에 도시되어 있듯이, 호스트 컴퓨터(200)는 크로스 툴체인 컴파일러(201)를 통하여 부트로더 파일을 컴파일시키고, 컴파일된 부트로더 파일을 JTAG 통신 인터페이스(140)를 통하여 이동 단말 장치(100)로 전달한다(S100∼S120). 전달된 부트로더 파일은 이동 단말 장치(100)의 플래시 메모리(120)의 부트로더 이미지 영역에 이미지 형태로 기록된다. 이동 단말 장치(100)의 플래시 메모리(130)에 저장되는 부트로더 이미지(131)는 통신 인터페이스 초기화(시리얼 통신, 네트워크 통신) 기능과 부트로더 프롬프트 처리 기능으로 구성된 프로그램이다.As shown in FIG. 4, the host computer 200 compiles the boot loader file through the cross toolchain compiler 201, and the compiled boot loader file through the JTAG communication interface 140. Transfer to (S100-S120). The transferred boot loader file is recorded in the form of an image in the boot loader image area of the flash memory 120 of the mobile terminal device 100. The boot loader image 131 stored in the flash memory 130 of the mobile terminal device 100 is a program including a communication interface initialization (serial communication, network communication) function and a boot loader prompt processing function.

이러한 부트로더 파일이 이미지 형태로 기록된 다음, 이동 단말 장치(100)의 전원을 차단시킨 다음에 다시 재공급한다(S130). 이러한 전원 공급 차단 및 재공급 과정은 개발자에 의하여 수행되거나 호스트 컴퓨터(200)의 제어에 따라 이루어질 수도 있다. After the boot loader file is recorded in the form of an image, the mobile terminal apparatus 100 is cut off and then supplied again (S130). The power supply interruption and resupply process may be performed by a developer or under the control of the host computer 200.

이동 단말 장치(100)로 전원이 재공급되면 플래시 메모리(130)에 저장되어 있던 부트로더 이미지가 메인 메모리(120)로 로딩되면서 실행된다. 그리고 호스트 컴퓨터(200)의 크로스 툴체인 컴파일러(211)에 의해 커널 파일이 생성된다. When power is supplied to the mobile terminal device 100, the boot loader image stored in the flash memory 130 is loaded into the main memory 120 and executed. The kernel file is generated by the cross toolchain compiler 211 of the host computer 200.

이후 콘솔 장치(300)와의 통신 인터페이스 설정 경로를 통하여 콘솔 장치(300)로부터 부트로더 명령어 모드가 선택된다(S140). 이에 따라 이동 단말 장치(100)의 메인 메모리(120)에서 실행 중인 부트로더(131)에 의하여 콘솔 장치(300)의 화면에 부트로더 명령어 프롬프트가 출력되고(S150), 콘솔 장치(300)로부터 생성되고 커널 이미지 전송을 위한 부트로더 명령어가 통신 인터페이스를 통하여 이동 단말 장치(100)로 전달된다(S160). Thereafter, a boot loader command mode is selected from the console device 300 through a communication interface setting path with the console device 300 (S140). Accordingly, the boot loader command prompt is displayed on the screen of the console device 300 by the boot loader 131 running in the main memory 120 of the mobile terminal device 100 (S150), and generated from the console device 300. The boot loader command for transmitting the kernel image is transmitted to the mobile terminal device 100 through the communication interface (S160).

이동 단말 장치(100)의 부트로더(131)는 콘솔 장치(300)로부터 커널 이미지 전송을 위한 명령어가 전송되면, 로컬 네트워크 통신 인터페이스(160)를 통하여 호스트 컴퓨터(200)로 커널 이미지 전송을 요청한다(S170). 이에 따라, 호스트 컴퓨터(200)는 크로스 툴체인 컴파일러(211)에 의해 컴파일된 이동 단말 장치의 커널 파일을 로컬 네트워크(500)를 통하여 이동 단말 장치(100)로 전송한다(S180). 이동 단말 장치(100)는 커널 파일을 전송받아 플래시 메모리(130)의 커널 이미지영역(132)에 이미지 형태로 저장한다(S190).When a command for transmitting a kernel image is transmitted from the console device 300, the boot loader 131 of the mobile terminal device 100 requests the kernel image transmission to the host computer 200 through the local network communication interface 160. (S170). Accordingly, the host computer 200 transmits the kernel file of the mobile terminal device compiled by the cross toolchain compiler 211 to the mobile terminal device 100 through the local network 500 (S180). The mobile terminal device 100 receives the kernel file and stores the kernel file in the form of an image in the kernel image region 132 of the flash memory 130 (S190).

다음, 콘솔 장치(300)에 대해 부트로더 명령어 모드가 다시 선택되고(S200), 이동 단말 장치(100)의 메인 메모리(110)에서 실행 중인 부트로더(131)에 의하여 콘솔 장치(300)의 화면 상에 부트로더 명령어 프롬프트가 출력됨에 따라 입력되는 파일 시스템 이미지 전송을 위한 부트로더 명령어가 이동 단말 장치(100)로 전달된다(S210∼S220). 이 전달되는 부트로더 명령어에 따라 이동 단말 장치(100)의 부트로더(131)는 로컬 네트워크 통신 인터페이스(160)를 통하여 호스트 컴퓨터(200)로 루트 파일 시스템 이미지 전송을 요청한다(S230). 호스트 컴퓨터(200)는 크로스 툴체인 컴파일러(211)에 의해 생성된 각종 라이브러리 및 환경 파일들로 구성되는 루트 파일 시스템 파일(또는 호스트 컴퓨터(200)의 공개된 저널링(Journaling) 파일 시스템 제작 프로그램을 이용하여 루트 파일 시스템 파일을 생성할 수도 있다.)을 로컬 네트워크를 통하여 이동 단말 장치(100)로 전송한다(S240). 전송된 루트 파일 시스템 파일은 이동 단말 장치(100)의 플래시 메모리(130)의 루트 파일 시스템 이미지 영역(133)에 이미지 형태로 기록된다(S250). Next, the boot loader command mode is selected again for the console device 300 (S200), and the screen of the console device 300 is displayed by the boot loader 131 running in the main memory 110 of the mobile terminal device 100. As the boot loader command prompt is output on the boot loader command for transmitting the file system image input to the mobile terminal device 100 is transmitted (S210 to S220). The boot loader 131 of the mobile terminal device 100 requests the root file system image transmission to the host computer 200 through the local network communication interface 160 according to the transmitted boot loader command (S230). The host computer 200 uses a root file system file composed of various libraries and environment files generated by the cross toolchain compiler 211 (or an open journaling file system production program of the host computer 200). The root file system file may be generated) to the mobile terminal device 100 through the local network (S240). The transmitted root file system file is recorded in the form of an image in the root file system image area 133 of the flash memory 130 of the mobile terminal device 100 (S250).

위에 기술된 바와 같이, 호스트 컴퓨터(200)에 의하여 컴파일된 부트 로더 파일, 커널 파일, 루트 파일 시스템 파일이 이미지 형태로 이동 단말 장치(100)의 플래시 메모리(130)에 기록되면, 다음과 같이 이동 단말 장치(100)의 소프트웨어 개발 및 실행이 수행된다. As described above, when the boot loader file, the kernel file, and the root file system file compiled by the host computer 200 are recorded in the flash memory 130 of the mobile terminal device 100 in the form of an image, move as follows. Software development and execution of the terminal device 100 is performed.

도 5는 본 발명의 실시 예에 따른 이동 단말 장치의 소프트웨어 개발 및 실행 과정을 나타낸 흐름도이다.5 is a flowchart illustrating a software development and execution process of a mobile terminal device according to an embodiment of the present invention.

첨부한 도 5에 도시되어 있듯이, 이동 단말 장치(100)와 콘솔 장치(300)가 시리얼 통신 인터페이스를 통하여 연결되고(S300), 이동 단말 장치(100)와 호스트 컴퓨터(220) 및, 호스트 컴퓨터(200)와 이동 단말 소프트웨어 개발자 장치(400)가 로컬 네트워크로 각각 연결된 상태에서(S310), 이동 단말 장치(100)의 커널 부팅 및 파일 시스템 마운트 절차를 수행한다. As shown in FIG. 5, the mobile terminal device 100 and the console device 300 are connected through a serial communication interface (S300), the mobile terminal device 100 and the host computer 220, and a host computer ( 200 and the mobile terminal software developer apparatus 400 are connected to the local network (S310), and the kernel booting and file system mounting procedures of the mobile terminal apparatus 100 are performed.

이를 위하여, 이동 단말 장치(100)의 전원을 차단한 후 재공급 하여 이동 단말 장치(100)를 커널 자동 부팅 모드로 동작시킨다(S320∼S330). 즉, 플래시 메모리(130)에 저장되어 있던 부트로더 이미지가 메인 메모리(120)에 로딩되면서 실행되고, 부트로더가 이동 단말 장치의 하드웨어를 초기화시키고, 플래시 메모리(130)에 저장된 커널 이미지(132)를 메인 메모리(120)로 로딩시킨 다음, 실행 권한을 커널로 인계한다. 이후, 커널의 제어에 따라 호스트 컴퓨터(200)와 통신하여 bootp 클라이언트 절차 및 tftp 클라이언트 절차가 이루어진다. 그리고 커널(132)의 제어에 따라 플래시 메모리(130)에 저장되어 있던 파일 시스템(133)이 루트에 마운트된다(S340). To this end, the mobile terminal device 100 is powered off and then supplied again to operate the mobile terminal device 100 in the kernel automatic booting mode (S320 to S330). That is, the boot loader image stored in the flash memory 130 is executed while being loaded into the main memory 120, the boot loader initializes hardware of the mobile terminal device, and the kernel image 132 stored in the flash memory 130. Load into main memory 120, and then execute execution rights to the kernel. Subsequently, the bootp client procedure and the tftp client procedure are performed by communicating with the host computer 200 under the control of the kernel. Under the control of the kernel 132, the file system 133 stored in the flash memory 130 is mounted at the root (S340).

이러한 이동 단말 장치(100)의 커널 자동 부팅 과정 중에 호스트 컴퓨터(200)는 네트워크 파일 시스템이 이동 단말 장치(100)의 루트 파일 시스템(205)의 서브 디렉토리에 마운트되도록 파일 시스템 테이블 환경 파일을 구성한다. 이후 이동 단말 장치(100)로부터의 네트워크 파일 시스템 마운트 요청에 호스트 컴퓨터(200)가 응답하여, 이동 단말의 소프트웨어 개발 단계에서 빈번하게 변경이 이루어지는 파일들로 구성된 분산 네트워크 파일 시스템을 로컬 네트워크(500)를 통하여 이동 단말 장치(100)의 루트파일 시스템(133)의 서브 디렉토리에 마운트시킨다 (S350∼S360). During the kernel autobooting of the mobile terminal device 100, the host computer 200 configures the file system table environment file so that the network file system is mounted in a subdirectory of the root file system 205 of the mobile terminal device 100. . Thereafter, the host computer 200 responds to the network file system mount request from the mobile terminal device 100, so that the local network 500 distributes the distributed network file system including files that are frequently changed in the software development stage of the mobile terminal. In step S350 to S360, the terminal is mounted in a subdirectory of the root file system 133 of the mobile terminal apparatus 100 through the S-D360.

이후 개발자는 이동 단말 소프트웨어 개발자 장치(400)를 통하여 호스트 컴퓨터(200)에 원격으로 접속하여, 호스트 컴퓨터(200)에서 컴파일된 파일을 네트워크 파일 시스템(CNF1) 영역에 복사시켜, 상기 파일이 이동 단말 장치(100)의 네트워크 파일 시스템(CNF2)에 반영되도록 한다. Thereafter, the developer remotely accesses the host computer 200 through the mobile terminal software developer device 400, copies the file compiled in the host computer 200 to the network file system CNF1 area, and the file is transferred to the mobile terminal. It is reflected in the network file system CNF2 of the device 100.

보다 구체적으로, 이동 단말 소프트웨어 개발자 장치(400)에서 로컬 통신 네트워크 인터페이스를 통하여 호스트 컴퓨터(200)에 원격 접근하여, 개발된 이동 단말 프로그램을 호스트 컴퓨터(200)로 제공한다. 이동 단말 소프트웨어 개발자 장치(400)의 원격 제어에 따라 호스트 컴퓨터(200)는 크로스 툴체인 컴파일러(211)를 통하여 이동 단말 프로그램을 컴파일하고, 컴파일에 따라 생성된 바이너리 코드 파일을 네트워크 파일 시스템(CNF1) 영역에 복사한다(S370).More specifically, the mobile terminal software developer device 400 remotely accesses the host computer 200 through a local communication network interface, and provides the developed mobile terminal program to the host computer 200. According to the remote control of the mobile terminal software developer device 400, the host computer 200 compiles the mobile terminal program through the cross toolchain compiler 211, and stores the binary code file generated according to the network file system (CNF1) area. Copy to (S370).

다음 이동 단말 소프트웨어 개발자 장치(400)는 로컬 통신 네트워크 인터페이스(160)를 통하여 콘솔 장치(300)에 원격 접근하여 프로그램 바이너리 코드 실행을 요청한다(S380). 이에 따라 콘솔 장치(300)는 시리얼 통신 인터페이스(350)를 통하여 이동 단말 장치(100)에 프로그램 바이너리 코드 실행을 지시한다(S390). 콘솔 장치(300)로부터 제공되는 코드 실행 지시에 따라 이동 단말 장치(100)의 중앙 처리 장치(110)는 플래시 메모리(130)의 루트 파일 시스템의 서브 디렉토리에 마운트된 네트워크 파일 시스템(CNF2)을 메인 메모리(120)로 로딩시켜 실행시키고, 실행에 따라 네트워크 파일 시스템(CNF2)은 호스트 컴퓨터(200)의 네트워크 파일 시스템(CNF1)에 저장되어 있는 바이너리 코드 파일을 읽어와서 실행시킨다. Next, the mobile terminal software developer device 400 remotely accesses the console device 300 through the local communication network interface 160 and requests execution of the program binary code (S380). Accordingly, the console device 300 instructs the mobile terminal device 100 to execute the program binary code through the serial communication interface 350 (S390). According to a code execution instruction provided from the console device 300, the central processing unit 110 of the mobile terminal device 100 maintains the network file system CNF2 mounted in a subdirectory of the root file system of the flash memory 130. The network file system CNF2 reads and executes the binary code file stored in the network file system CNF1 of the host computer 200.

이후, 이동 단말 장치(100)의 중앙 처리 장치(110)는 상기 바이너리 코드 파일의 실행 결과를 콘솔 장치(300)로 전달하고(S400), 전달된 실행 결과는 콘솔 장치(300)의 네트워크 통신 인터페이스(360)를 통하여 이동 단말 소프트웨어 개발자 장치(400)로 전달된다. 따라서, 소프트웨어 개발자는 콘솔 장치(300)를 통하여 전달되는 실행 결과를 통하여 새로이 개발된 소프트웨어가 이동 단말 장치(100)에서 어떻게 수행되었는지를 확인하게 된다(S410). Thereafter, the central processing unit 110 of the mobile terminal device 100 transmits the execution result of the binary code file to the console device 300 (S400), and the transferred execution result is a network communication interface of the console device 300. The mobile terminal software developer 400 transmits the information to the mobile terminal software developer device 400 through 360. Therefore, the software developer may check how the newly developed software is performed in the mobile terminal device 100 through the execution result delivered through the console device 300 (S410).

위에 기술된 바와 같은 방법에 따라 개발자는 용이하게 개발된 소프트웨어를 이동 단말 장치(100)에서 실행시킨 결과를 확인할 수 있으며, 이후, 최종적으로 최적의 소프트웨어가 개발 완료되면, 콘솔 장치(300) 등을 통하여 해당 소프트웨어를 이동 단말 장치(100)의 플래시 메모리(130)에 저장하여 사용될 수 있다. According to the method as described above, the developer can check the result of running the easily developed software on the mobile terminal device 100. After the final development of the optimal software, the console device 300, etc. The corresponding software may be stored and used in the flash memory 130 of the mobile terminal device 100.

위에 기술된 방법은 컴퓨터가 읽을 수 있는 기록 매체에 저장되는 프로그램 형태로 구현될 수 있다. 기록 매체로는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치가 포함될 수 있으며, 예를 들어, CD-ROM, 자기 테이프, 플로피 디스크 등이 있으며, 또한 캐리어 웨이브(예컨대 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. The method described above may be implemented in the form of a program stored in a computer-readable recording medium. The recording medium may include any kind of recording device that stores data that can be read by a computer. For example, a CD-ROM, a magnetic tape, a floppy disk, and the like may be used. Included is implemented in the form of).

비록, 본 발명이 가장 실제적이며 바람직한 실시 예를 참조하여 설명되었지만, 본 발명은 상기 개시된 실시 예에 한정되지 않으며, 후술되는 특허청구범위 내에 속하는 다양한 변형 및 등가물들도 포함한다. Although the present invention has been described with reference to the most practical and preferred embodiments, the present invention is not limited to the above disclosed embodiments, but also includes various modifications and equivalents within the scope of the following claims.

이상 위에 기술된 바와 같은 본 발명에 따르면, 분산 네트워크 파일 시스템 기술을 이용하여 소프트웨어 개발 단계에서 수정된 프로그램 바이너리 코드를 이동 단말 즉, 임베디드 시스템의 플래시 메모리에 기록하지 않고 분산 네트워크 파일 시스템에 반영하여, 이후 로컬 네트워크를 통하여 접속된 임베디드 시스템에서 프로그램 바이너리 코드를 실행할 수 있도록 함으로써, 임베디드 시스템 소프트웨어 개발 완료 단계에서 최적화된 프로그램 바이너리 코드 파일만을 임베디드 시스템의 플래시 메모리에 기록할 수 있다. According to the present invention as described above, by using the distributed network file system technology, the program binary code modified in the software development step is reflected in the distributed network file system without writing to the flash memory of the mobile terminal, that is, embedded system, Since the program binary code can be executed in the embedded system connected through the local network, only the program binary code file optimized in the embedded system software development completion stage can be written to the flash memory of the embedded system.

그에 따라, 소프트웨어 개발시마다 임베디드 시스템의 플래시 메모리에 기록하는 횟수를 감소시킬 수 있다. 또한 플래시 메모리로의 불필요한 정보 기록 횟수의 감소에 따라 플래시 메모리의 수명을 보다 연장시킬 수 있다. Accordingly, the number of times of writing to the flash memory of the embedded system every time software development can be reduced. In addition, the life of the flash memory can be further extended by reducing the number of unnecessary information writes to the flash memory.

또한 변경된 이동 단말 장치의 소프트웨어를 플래시 메모리에 기록하지 않고도 즉각 분산 네트워크 파일시스템에 반영하여 임베디드 시스템에서 실행해 볼 수 있다. Also, without changing the software of the mobile terminal device into the flash memory, it can be immediately reflected in the distributed network file system and executed in the embedded system.

또한 네트워크를 통하여 임베디드 시스템의 소프트웨어를 보다 용이하게 공동으로 개발할 수 있다.The network also makes it easier to jointly develop software for embedded systems.

Claims (9)

로컬 네트워크를 통하여 임베디드 시스템, 호스트 컴퓨터, 콘솔 장치, 그리고 개발자 장치가 연결되어 있고, 상기 임베디드 시스템의 소프트웨어를 개발하고 실행시키는 방법에서,In a method of developing and executing software of the embedded system, the embedded system, host computer, console device, and developer device are connected through a local network. a) 상기 호스트 컴퓨터로부터 부트로더 파일, 커널 파일, 루트 파일 시스템 이미지 파일을 제공받아, 상기 임베디드 시스템의 플래시 메모리에 저장하는 단계;a) receiving a boot loader file, a kernel file, and a root file system image file from the host computer and storing the boot loader file in a flash memory of the embedded system; b) 상기 임베디드 시스템의 플래시 메모리에 저장된 부트로더 파일 및 커널 파일의 실행에 따라 커널 자동 부팅이 수행되는 단계;b) automatically booting the kernel according to the execution of the boot loader file and the kernel file stored in the flash memory of the embedded system; c) 상기 커널 자동 부팅 수행에 따라 상기 플래시 메모리에 저장된 루트 파일 시스템이 임베디드 시스템의 루트에 마운트되는 단계;c) mounting a root file system stored in the flash memory to a root of an embedded system according to the kernel autobooting; d) 상기 임베디드 시스템의 요청에 따라 상기 호스트 컴퓨터의 분산 네트워크 파일 시스템(이하, 제1 분산 네트워크 파일 시스템이라고 명명함)이 상기 루트 파일 시스템의 서브 디렉토리에 마운트되는 단계;d) mounting a distributed network file system (hereinafter, referred to as a first distributed network file system) of the host computer in a subdirectory of the root file system at the request of the embedded system; e) 상기 임베디드 시스템에 마운트된 분산 네트워크 파일 시스템(이하, 제2 분산 네트워크 파일 시스템이라고 명명함)이 호스트 컴퓨터로부터 전달되는 바이너리 코드 실행 요청에 따라, 상기 호스트 컴퓨터에서 컴파일되어 상기 제1 분산 네트워크 파일 시스템에 저장되어 있는 프로그램의 바이너리 코드를 읽어오는 단계; 및e) a distributed network file system mounted on the embedded system (hereinafter referred to as a second distributed network file system) is compiled on the host computer in response to a binary code execution request transmitted from a host computer, and the first distributed network file Reading the binary code of a program stored in the system; And f) 상기 임베디드 시스템의 제2 분산 네트워크 파일 시스템이 상기 프로그램 바이너리 코드를 실행시키는 단계f) executing the program binary code by a second distributed network file system of the embedded system 를 포함하는 임베디드 시스템의 소프트웨어 개발 및 실행 방법.Software development and execution method of the embedded system comprising a. 제1항에 있어서The method of claim 1 상기 a) 단계는 Step a) 상기 임베디드 시스템이 호스트 컴퓨터로부터 부트로더 파일을 제공받아 플래시 메모리에 이미지 형태로 기록하는 단계;Receiving, by the embedded system, a boot loader file from a host computer and writing the image to a flash memory in the form of an image; 상기 임베디드 시스템으로의 전원이 차단 및 재공급되어, 상기 플래시 메모리에 기록된 부트로더 이미지가 실행되는 단계;Powering off and resupplying the embedded system to execute a boot loader image recorded in the flash memory; 상기 콘솔 장치로부터 커널 이미지 전송 요청이 입력되면, 상기 임베디드 시스템이 상기 호스트 컴퓨터로 커널 이미지 전송을 요청하는 단계;Requesting a kernel image transfer to the host computer when the kernel image transfer request is input from the console device; 상기 요청에 따라 상기 호스트 컴퓨터로부터 제공되는 커널 파일을 상기 플래시 메모리에 이미지 형태로 기록하는 단계;Writing a kernel file provided from the host computer in the form of an image to the flash memory according to the request; 상기 콘솔 장치로부터 루트 파일 시스템 이미지 전송 요청이 입력되면, 상기 임베디스 시스템이 상기 호스트 컴퓨터로 루트 파일 시스템 이미지 전송을 요청하는 단계; 및When the root file system image transfer request is input from the console device, requesting the embedded system to transfer the root file system image to the host computer; And 상기 요청에 따라 상기 호스트 컴퓨터로부터 제공되는 루트 파일 시스템 파일을 상기 플래시 메모리에 이미지 형태로 기록하는 단계Writing a root file system file provided from the host computer in the form of an image to the flash memory according to the request; 를 포함하는 임베디드 시스템의 소프트웨어 개발 및 실행 방법.Software development and execution method of the embedded system comprising a. 제1항에 있어서The method of claim 1 상기 임베디드 시스템의 하드웨어를 메인 메모리, 플래시 메모리, 시리얼 통신 인터페이스, JTAG(joint test action group) 통신 인터페이스, 네트워크 통신 인터페이스, 입출력 장치 통신 인터페이스로 구성하는 단계;Configuring hardware of the embedded system into a main memory, a flash memory, a serial communication interface, a joint test action group (JTAG) communication interface, a network communication interface, and an input / output device communication interface; 상기 호스트 컴퓨터의 하드웨어를 메인 메모리, 플래시 메모리, 하드디스크, 네트워크 통신 인터페이스, 시리얼 통신 인터페이스, 병렬 통신 인터페이스, 입출력 장치 통신 인터페이스로 구성하는 단계; 및Configuring hardware of the host computer into a main memory, a flash memory, a hard disk, a network communication interface, a serial communication interface, a parallel communication interface, and an input / output device communication interface; And 상기 콘솔 장치의 하드웨어를 메인 메모리, 플래시 메모리, 하드디스크, 네트워크 통신 인터페이스, 시리얼 통신 인터페이스, 입출력 장치 통신 인터페이스로 구성하는 단계Configuring hardware of the console device into a main memory, a flash memory, a hard disk, a network communication interface, a serial communication interface, and an input / output device communication interface. 를 더 포함하는 임베디드 소프트웨어 개발 및 실행 방법.Embedded software development and execution method further comprising. 제1항에 있어서 The method of claim 1 상기 임베디드 시스템의 제2 분산 네트워크 파일 시스템이 프로그램 바이너리 코드 실행 결과를 상기 콘솔 장치를 통하여 개발자 장치로 전달하는 단계를 더 포함하는 임베디드 소프트웨어 개발 및 실행 방법.And transmitting, by the second distributed network file system of the embedded system, a program binary code execution result to a developer device through the console device. 제4항에 있어서The method of claim 4 상기 프로그램 바이너리 코드 실행 결과를 확인한 개발자에 의하여 최종 확정된 프로그램이 상기 콘솔 장치를 통하여 임베디드 시스템의 플래시 메모리에 저 장되는 단계를 더 포함하는 임베디드 시스템의 소프트웨어 개발 및 실행 방법.And storing the final program determined by the developer confirming the execution result of the program binary code in the flash memory of the embedded system through the console device. 제1항 내지 제4항 중 어느 한 항에 있어서The method according to any one of claims 1 to 4. 상기 e) 단계는 Step e) 상기 개발자 장치로부터 소정의 프로그램이 상기 호스트 컴퓨터로 제공되는 단계;Providing a program from the developer device to the host computer; 상기 호스트 컴퓨터가 상기 프로그램을 컴파일하고, 컴파일에 따라 생성된 프로그램 바이너리 코드를 제1 분산 네트워크 파일 시스템에 저장하는 단계;Compiling the program by the host computer, and storing the program binary code generated according to the compilation in a first distributed network file system; 상기 호스트 컴퓨터가 상기 임베디드 시스템으로 바이너리 코드 실행을 명령하는 단계; 및The host computer instructing binary code execution to the embedded system; And 상기 임베디드 시스템의 제2 분산 네트워크 파일 시스템이 상기 명령에 따라 상기 호스트 컴퓨터의 제1 분산 네트워크 파일 시스템에 저장된 바이너리 코드를 읽어오는 단계Reading, by the second distributed network file system of the embedded system, the binary code stored in the first distributed network file system of the host computer according to the command; 를 포함하는 임베디드 시스템의 소프트웨어 개발 및 실행 방법.Software development and execution method of the embedded system comprising a. 로컬 네트워크를 통하여 호스트 컴퓨터, 콘솔 장치, 그리고 개발자 장치가 연결되어 있는 이동 단말 장치에서, In a mobile terminal device to which a host computer, a console device, and a developer device are connected through a local network, 상기 호스트 컴퓨터와의 데이터 송수신을 수행하는 제1 인터페이스;A first interface for performing data transmission and reception with the host computer; 상기 콘솔 장치와With the console device 의 데이터 송수신을 수행하는 제2 인터페이스;A second interface for performing data transmission / reception; 상기 호스트 컴퓨터로부터 제공받은 부트로더 파일, 커널 파일, 루트 파일 시스템 이미지 파일이 저장되어 있는 플래시 메모리;A flash memory in which a boot loader file, a kernel file, and a root file system image file provided from the host computer are stored; 상기 플래시 메모리에 저장된 각 파일들이 로딩되어 구동되는 메인 메모리;A main memory in which files stored in the flash memory are loaded and driven; 상기 부트로더 파일 및 커널 파일의 구동에 따라 자동 커널 부팅이 이루어지면, 상기 플래시 메모리에 저장된 루트 파일 시스템을 루트에 마운트시키고, 상기 호스트 컴퓨터로부터 분산 네트워크 파일 시스템을 제공받아 상기 루트 파일 시스템의 서브 디렉토리에 마운트시키는 중앙 처리 장치When the automatic kernel booting is performed according to the boot loader file and the kernel file, a root file system stored in the flash memory is mounted at a root, and a distributed network file system is provided from the host computer to receive a subdirectory of the root file system. Central processing unit 를 포함하고,Including, 상기 호스트 컴퓨터로부터 전달되는 바이너리 코드 실행 요청에 따라 상기 서브 디렉토리에 마운트된 분산 네트워크 파일 시스템이, 컴파일되어 상기 호스트 컴퓨터의 분산 네트워크 파일 시스템에 저장되어 있는 프로그램의 바이너리 코드를 읽어와서 실행시키는 이동 단말 장치.A mobile terminal device configured to read and execute binary code of a program compiled and stored in a distributed network file system of the host computer according to a binary code execution request transmitted from the host computer. . 제7항에 있어서The method of claim 7, 상기 중앙 처리 장치는 상기 프로그램의 바이너리 코드 실행 결과를 상기 제2 인터페이스를 통하여 상기 콘솔 장치로 제공하는 이동 단말 장치.And the central processing unit provides the binary code execution result of the program to the console device through the second interface. 제7항 또는 제8항에 있어서The method according to claim 7 or 8 상기 제1 통신 인터페이스는 JTAG 통신 인터페이스이고, 상기 제2 통신 인터페이스는 시리얼 인터페이스이며, 상기 이동 단말 장치는 제1 및 제2 통신 인터페 이스를 통하여 상기 호스트 컴퓨터 및 콘솔 장치와 피어-투-피어(peer-to-peer)로 연결되는 이동 단말 장치.The first communication interface is a JTAG communication interface, the second communication interface is a serial interface, and the mobile terminal device is peer-to-peer with the host computer and console device through first and second communication interfaces. A mobile terminal device connected to a to-peer).
KR1020040101946A 2004-12-06 2004-12-06 The software development and operation method for the embedded system and mobile terminal using the method KR100658564B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040101946A KR100658564B1 (en) 2004-12-06 2004-12-06 The software development and operation method for the embedded system and mobile terminal using the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040101946A KR100658564B1 (en) 2004-12-06 2004-12-06 The software development and operation method for the embedded system and mobile terminal using the method

Publications (2)

Publication Number Publication Date
KR20060062939A true KR20060062939A (en) 2006-06-12
KR100658564B1 KR100658564B1 (en) 2006-12-15

Family

ID=37159013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040101946A KR100658564B1 (en) 2004-12-06 2004-12-06 The software development and operation method for the embedded system and mobile terminal using the method

Country Status (1)

Country Link
KR (1) KR100658564B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100853941B1 (en) * 2006-12-27 2008-08-25 (주)아이디스 Multimedia storage device and data recovering method of the device
US7840843B2 (en) 2007-11-20 2010-11-23 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. System and method for testing an embedded system
CN111414308A (en) * 2020-03-26 2020-07-14 北京字节跳动网络技术有限公司 Application package processing method and application program running method and device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05224976A (en) * 1992-02-10 1993-09-03 Nintendo Co Ltd Program development back-up device
JPH08286948A (en) * 1995-04-18 1996-11-01 Omron Corp Device and method for supporting software development
JPH10312307A (en) 1997-05-13 1998-11-24 Toshiba Corp Emulator for computer system
JP2000010872A (en) 1998-06-26 2000-01-14 Matsushita Electric Ind Co Ltd Microcomputer with flash memory mixedly mounted, and its debugging method
US20030225567A1 (en) 2002-03-09 2003-12-04 Koch Stefan Marco System and method for emulating an embedded non-volatile memory
JP2004013370A (en) 2002-06-05 2004-01-15 Nec Access Technica Ltd Flash rom program writing method, and program developing tool
KR100463838B1 (en) * 2002-12-12 2004-12-29 한국전자통신연구원 Method for downloading and supporting nfs for uia boot loader

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100853941B1 (en) * 2006-12-27 2008-08-25 (주)아이디스 Multimedia storage device and data recovering method of the device
US7840843B2 (en) 2007-11-20 2010-11-23 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. System and method for testing an embedded system
CN111414308A (en) * 2020-03-26 2020-07-14 北京字节跳动网络技术有限公司 Application package processing method and application program running method and device
CN111414308B (en) * 2020-03-26 2023-08-22 抖音视界有限公司 Application package processing method and application running method and device

Also Published As

Publication number Publication date
KR100658564B1 (en) 2006-12-15

Similar Documents

Publication Publication Date Title
US7146512B2 (en) Method of activating management mode through a network for monitoring a hardware entity and transmitting the monitored information through the network
CN100555218C (en) Be used to improve the apparatus and method of the simulation velocity of the middle-and-high-ranking language of analogue system on the sheet
US7669186B2 (en) Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
US9111033B2 (en) Compiling source code for debugging with user preferred snapshot locations
US7797526B2 (en) Service processor host flash update over LPC
US9720703B2 (en) Data driven hardware chips initialization via hardware procedure framework
US9146713B2 (en) Tool composition for supporting openCL application software development for embedded system and method thereof
US6308326B1 (en) Run-time modules for dynamically adjusting computer operation
US10789192B2 (en) System and method for programming data transfer within a microcontroller
CN103336701B (en) Intelligent guiding upgrade method
TW201721412A (en) Selecting and loading firmware volumes
KR100658564B1 (en) The software development and operation method for the embedded system and mobile terminal using the method
KR102130166B1 (en) Apparatus for embedded software development of multi target and method for the same
KR100615450B1 (en) Tool-chain configuration and operation method for the embedded system
KR100665134B1 (en) The root file system configuration and operation method for the embedded system, and mobile terminal using the method
JP2005182812A (en) System and method for storing image file in computer system
US20060080636A1 (en) Method of building intelligent platform management interface firmware architecture
KR100656928B1 (en) Tool-chain operation method for the embedded system
CN111858359B (en) Method and device for acquiring engineering code position of executable file
CN113157329A (en) Method, system, server and storage medium for starting application
CN113961232A (en) Terminal, method and platform server for providing integrated development environment
JP6571423B2 (en) Information processing system, device information acquisition method, and program therefor
CN112286562B (en) Debugging updating method and system for trusted operating system
US7103687B2 (en) System and method for providing an image file in a computer system
CN113286090B (en) Multi-drive dynamic configuration method, loading method and related device for camera

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee