KR100722233B1 - Method and Apparatus for Linking Separate Execution Files for Embedded System - Google Patents
Method and Apparatus for Linking Separate Execution Files for Embedded System Download PDFInfo
- Publication number
- KR100722233B1 KR100722233B1 KR1020050095929A KR20050095929A KR100722233B1 KR 100722233 B1 KR100722233 B1 KR 100722233B1 KR 1020050095929 A KR1020050095929 A KR 1020050095929A KR 20050095929 A KR20050095929 A KR 20050095929A KR 100722233 B1 KR100722233 B1 KR 100722233B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- program
- application program
- application
- system program
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 임베디드 시스템에서 분리된 실행 파일의 링크 방법 및 장치에 관한 것으로서, 상기 실행 파일의 링크 방법에서는, 응용 다운로드 프로그램 형태의 콘트롤러가 시스템 프로그램이 로드되어 있는 메모리로부터 링크 정보를 받아 해당 응용 프로그램을 상기 시스템 프로그램과 링크된 프로그램으로 변경하고 ROM에 다운로드될 형식으로 코드화한다. The present invention relates to a method and an apparatus for linking an executable file separated in an embedded system. In the method for linking an executable file, a controller in the form of an application download program receives link information from a memory in which a system program is loaded, and executes the application program. Change to a program linked with the system program and code it in a format to be downloaded to a ROM.
실행 파일, 응용 프로그램, 실행 프로그램, 링크, 다운로드 Executable, application, launcher, link, download
Description
도 1은 일반적인 컴퓨터 시스템에서 실행을 위하여 응용 프로그램과 시스템 프로그램이 메인 메모리에 다운로드되는 과정을 설명하기 위한 도면이다.1 is a diagram illustrating a process of downloading an application program and a system program to a main memory for execution in a general computer system.
도 2는 일반적인 임베디드 시스템의 메모리를 설명하기 위한 도면이다.2 is a diagram illustrating a memory of a general embedded system.
도 3은 본 발명의 일실시예에 따른 임베디드 시스템의 실행 파일 링크 장치를 나타내는 도면이다. 3 is a diagram illustrating an executable file linking apparatus of an embedded system according to an exemplary embodiment of the present invention.
도 4는 도 3의 실행 파일 링크 장치의 동작 설명을 위한 흐름도이다. 4 is a flowchart illustrating an operation of an executable file linking apparatus of FIG. 3.
도 5는 응용 프로그램이 시스템 프로그램을 참조하는 부분을 링크하는 과정을 설명하기 위한 도면이다.5 is a diagram for explaining a process of linking a part of an application program referring to a system program.
도 6은 시스템 프로그램이 응용 프로그램을 참조하는 부분을 링크하는 과정을 설명하기 위한 도면이다.6 is a diagram for describing a process of linking a part of a system program referring to an application program.
<도면의 주요 부분에 대한 부호의 설명> <Explanation of symbols for the main parts of the drawings>
310: 응용 프로그램310: application
320: 임베디드 시스템 메모리320: embedded system memory
330: 콘트롤러330: controller
본 발명은 임베디드(embedded) 시스템에서 실행 파일을 메모리에 다운로드하는 장치 및 방법에 관한 것으로서, 더욱 상세하게는 실행 파일을 시스템 프로그램과 응용 프로그램으로 분리하여 메모리에 다운로드시킬 수 있는 임베디드 시스템의 실행 파일 링크 장치 및 방법에 관한 것이다. The present invention relates to an apparatus and method for downloading an executable file to a memory in an embedded system, and more particularly, to an executable file link of an embedded system that can be downloaded into a memory by separating the executable file into a system program and an application program. An apparatus and method are provided.
도 1은 일반적인 컴퓨터 시스템(100)에서 실행을 위하여 응용 프로그램(110)과 시스템 프로그램(130)이 메인 메모리(main memory)에 다운로드되는 과정을 설명하기 위한 도면이다. PC(Personal Computer)나 수퍼 컴퓨터 등과 같은 일반적인 컴퓨터에서는, 응용 프로그램(110)의 실행을 위하여 시스템 프로그램(130)이 로드(load)되 있는 RAM(Random Access Memory) 형태의 메인 메모리에 해당 목적 프로그램(120)을 다운로드한다. 메인 메모리에 다운로드된 해당 목적 프로그램(120)은 시스템 프로그램(130) 중의 소정 링커들(linker)에 의하여 시스템 프로그램(140)과 다이내믹(dynamic)하게 링크된 새로운 파일로 변경된다. 응용 프로그램(110)의 해당 목적 프로그램(120)과 시스템 프로그램(140)의 링크를 위하여 심볼 테이블(130)이 이용된다. 심볼 테이블(130)에는 응용 프로그램(110)이 참조할 시스템 프로그램(140)의 심볼들에 대한 주소 정보가 기록되어 있다. FIG. 1 is a diagram for describing a process of downloading an
이와 같이 일반적인 컴퓨터 시스템(100)에서 다이내믹 링크가 가능한 것은 응용 프로그램(110)과 시스템 프로그램(140)이 서로 분리된 독립성을 가지고 동작하기 때문이다. 예를 들어, 응용 프로그램(110)이 시스템 프로그램(140)을 참조하 여 동작하는 경우에, call (a)와 같이 서브루틴(subroutine) 형태의 시스템 파일을 읽어 실행하기만 하면, 시스템 프로그램(140)은 그 결과를 응용 프로그램(110)으로 리턴한다. 또한, 시스템 프로그램(140)이 응용 프로그램(110)을 참조하여 동작하는 경우에도, 시스템 프로그램(140)은 해당 응용 프로그램의 파일을 읽어 실행한 후 그 결과를 응용 프로그램(110)으로 리턴한다. The dynamic link is possible in the
이와 같은 일반적인 컴퓨터 시스템(100)에서는, 응용 프로그램(110)과 시스템 프로그램(140)이 서로 독립적으로 동작되도록 하기 위하여, 응용 프로그램(110) 또는 시스템 프로그램(140)의 파일 구조에 불필요하게 중복되는 코드들을 가지게 되는 문제점이 있다. In such a
반면, 휴대폰, 디지털 카메라, 로봇(robot) 등과 같은 소형의 임베디드 시스템에서는, 도 2와 같은 ROM(Read Only Memory) 형태의 메모리(200)에 다운로드된 응용 프로그램(210)과 시스템 프로그램(220)이 서로 복잡하게 참조하고 독립성이 없는 하나의 실행 프로그램으로서 동작한다. 따라서, 종래의 임베디드 시스템에서는 응용 프로그램(210)과 시스템 프로그램(220)이 도 1에서 설명된 일반적인 컴퓨터 시스템(100)에서의 파일 구조보다 비교적 간단하다 하더라도, 상기 ROM 형태의 메모리(200)에 다운로드될 하나의 실행 프로그램에 대하여, 컴파일링(compiling), 어셈블링(assembling), 디버깅(debugging) 및 링크 작업이 모두 수행되어야만 최종 실행 가능한 파일로서 상기 메모리(200)에 다운로드될 수 있다. On the other hand, in a small embedded system such as a mobile phone, a digital camera, a robot, etc., the
그러나, 임베디드 시스템에서 사용되는 실행 파일은 상당히 클 수 있다. 이러한 경우에, 하나의 큰 실행 파일에 대하여 컴파일링, 어셈블링, 디버깅 및 링크 작업을 순환하며 작업하는 개발자에게 큰 부담을 주는 문제점이 있다. 또한, 한번만 기록할 수 있는 ROM의 특성 때문에, 임베디드 시스템에서 시용되는 실행 파일을 서로 복잡하게 의존적으로 참조하고 있는 응용 프로그램(210)과 시스템 프로그램(220)으로 분리하여 도 1에서 설명된 다이내믹 링크 방식과 같이 다운로드 할 수 없다는 문제점이 있다. 이에, 실행 파일을 ROM에 다운로드 하는 단계에서 서로 참조하는 함수나 변수들을 링크시킬 새로운 대안이 요구된다. However, the executable used in embedded systems can be quite large. In this case, there is a problem that burdens the developer who cycles through the compilation, assembling, debugging, and linking operations for one large executable file. In addition, because of the characteristics of the ROM that can be written only once, the dynamic link method described in FIG. 1 is separated into an
따라서, 본 발명은 상술한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은, 임베디드 시스템을 동작시키기 위한 실행 파일을 응용 프로그램과 시스템 프로그램으로 분리시켜 다운로드 시에 서로 링크시키는 방법을 제공하는 데 있다.Accordingly, an object of the present invention is to provide a method of separating an executable file for operating an embedded system into an application program and a system program and linking each other at the time of download.
본 발명의 다른 목적은, 임베디드 시스템에서 ROM 형태의 메인 메모리에 로드될 실행 파일을 응용 프로그램과 시스템 프로그램으로 분리시켜 다운로드하기 위한 링크 장치를 제공하는 데 있다. Another object of the present invention is to provide a link device for downloading an executable file to be loaded into a main memory in a ROM form in an embedded system into an application program and a system program.
상기와 같은 본 발명의 목적을 달성하기 위한 본 발명에 따른 임베디드 시스템을 위한 실행 파일의 링크 방법은, 시스템 프로그램을 메모리에 다운로드하는 단계; 상기 메모리로부터 링크 정보를 수신하는 단계; 상기 링크 정보를 이용하여 응용 프로그램을 상기 시스템 프로그램과 링크된 프로그램으로 변경하는 단계; 및 상기 시스템 프로그램과 링크된 응용 프로그램을 상기 메모리에 다운로드하는 단계를 포함한다. In order to achieve the above object of the present invention, a method of linking an executable file for an embedded system according to the present invention includes: downloading a system program to a memory; Receiving link information from the memory; Changing an application program to a program linked with the system program using the link information; And downloading the application program linked with the system program to the memory.
상기 메모리는 ROM 형태이고, 상기 링크 정보는 상기 응용 프로그램이 다운로드될 상기 메모리 상의 시작 주소와 상기 응용 프로그램 내의 심볼들에 대한 심볼 주소들을 포함하는 것을 특징으로 한다. The memory is in ROM form, and the link information includes a start address on the memory to which the application program is to be downloaded and symbol addresses for symbols in the application program.
상기 임베디드 시스템을 위한 실행 파일의 링크 방법은, 상기 시스템 프로그램을 상기 메모리에 다운로드할 때, 상기 시작 주소와 상기 심볼 주소들을 상기 메모리에 저장시키는 단계; 상기 응용 프로그램 내의 상기 시스템 프로그램을 참조하는 심볼들에 대하여 상기 심볼 주소들에 따라 코드화하는 단계; 및 상기 시스템 프로그램 내의 상기 응용 프로그램을 참조하는 심볼들에 대하여 상기 심볼 주소들에 따라 코드화하는 단계를 포함할 수 있다. The method of linking an executable file for the embedded system includes: storing the start address and the symbol addresses in the memory when the system program is downloaded to the memory; Encoding symbols according to the symbol addresses for symbols that refer to the system program in the application program; And encoding the symbols referring to the application program in the system program according to the symbol addresses.
상기 메모리는 제1 메모리 및 제2 메모리로 이루어질 수 있고, 상기 제1 메모리에 상기 시스템 프로그램을 다운로드하고, 상기 제2 메모리에 상기 응용 프로그램을 다운로드할 수 있다. The memory may include a first memory and a second memory, and the system program may be downloaded to the first memory, and the application program may be downloaded to the second memory.
상기와 같은 본 발명의 다른 목적을 달성하기 위한 본 발명에 따른 임베디드 시스템을 위한 실행 파일의 링크 장치는, 메모리; 및 실행 파일을 응용 프로그램과 시스템 프로그램으로 분리하여 상기 메모리에 다운로드시키는 콘트롤러를 포함하고, 상기 콘트롤러는 상기 시스템 프로그램이 먼저 로드되어 있는 상기 메모리로부터 받는 링크 정보에 따라 상기 응용 프로그램을 상기 시스템 프로그램과 링크된 프로그램으로 변경하여 상기 변경된 응용 프로그램을 상기 메모리에 다운로드시키는 것을 특징으로 한다. Link device of the executable file for the embedded system according to the present invention for achieving another object of the present invention as described above, the memory; And a controller that separates an executable file into an application program and a system program, and downloads it to the memory, wherein the controller links the application program with the system program according to link information received from the memory in which the system program is loaded first. And change the downloaded program to download the changed application program to the memory.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바 람직한 실시예를 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings and the contents described in the accompanying drawings, but the present invention is not limited or limited to the embodiments. Like reference numerals in the drawings denote like elements.
도 3은 본 발명의 일실시예에 따른 임베디드 시스템의 실행 파일 링크 장치(300)를 나타내는 도면이다. 도 3을 참조하면, 상기 실행 파일 링크 장치(300)는 메모리(320) 및 콘트롤러(330)를 포함한다. 3 is a diagram illustrating an executable
상기 실행 파일 링크 장치(300)는 일정 실행 파일을 응용 프로그램(310)과 시스템 프로그램(323)으로 분리시켜 상기 메모리(320)에 다운로드한다. EPROM, EEPROM 등 ROM 형태의 상기 메모리(320)는 휴대폰, 디지털 카메라, 로봇(robot) 등과 같은 임베디드 시스템에서 실행 파일에 따라 펌웨어(firmware) 등의 형태로 동작하여, 임베디드 시스템의 전반적인 제어를 담당할 수 있다. 또한, 감시 카메라와 연동하는 각종 시스템, 자동 현금 입출금기와 같은 금융용 시스템, 원격 제어 시스템, 자동 생산 시스템, 지능형 교통 시스템, 프린터, 스캐너, 팩스, 그리고 복사기와 이들의 기능을 하나로 모은 복합기, 기타 의료용 DNA 분석기, 게임기 등 산업 전반에 걸친 임베디드 시스템의 동작 제어를 위하여 상기 ROM 형태의 메모리(320)가 이용될 수 있다. The executable
상기 ROM 형태의 메모리(320)에는 일반적인 컴퓨터에서와 같이 실행 파일을 다이내믹 링크 방식으로 다운로드 할 수 없었으나, 본 발명에서는 실행 파일을 응용 프로그램(310)과 시스템 프로그램(323)으로 분리시켜 다운로드할 수 있도록 하기 위하여 상호간에 참조하는 함수나 변수들과 같은 심볼들을 링크시키는 방법을 제안한다. 개발자는 하나의 큰 실행 파일을 상기 메모리(320)에 다운로드하기 위하여, 해당 파일 전체를 한번에 컴파일링, 어셈블링, 및 디버깅 등의 작업을 순환하며 작업할 필요 없이, 상기 응용 프로그램(310)과 상기 시스템 프로그램(323)으로 분리된 작은 파일들에 대하여 각각 다운로드 이전 과정을 진행할 수 있어서 개발에 드는 오버헤드(overhead)가 줄어든다. In the
이를 위하여, 상기 실행 파일 링크 장치(300)에서는 상기 콘트롤러(330)를 이용하여 응용 프로그램(310)과 시스템 프로그램(323)으로 분리된 실행 파일을 상기 메모리(320)에 다운로드시킨다. 상기 콘트롤러(330)는 응용 다운로드 프로그램 형태의 소프트웨어일 수 있고, 또는 상기 응용 다운로드 프로그램의 지원을 받는 일정 콘트롤 장치일 수 있다. 상기 콘트롤러(330)는 컴퓨터에 탑재될 수 있다. 또는, 상기 콘트롤러(330)는 컴퓨터의 지원을 받는 에뮬레이터(emulator)의 일정 마이크로 프로세서에 탑재될 수 있다. To this end, the executable
상기 콘트롤러(330)는 일정 다운로드 요청을 받으면, 상기 시스템 프로그램(323)이 먼저 로드되어 있는 상기 메모리(320)로부터 받는 링크 정보에 따라 상기 응용 프로그램(310)을 상기 시스템 프로그램(323)에 링크된 프로그램으로 변경하여 상기 변경된 응용 프로그램(321)을 상기 메모리(320)에 다운로드시키게 된다. 상기 응용 프로그램(310)은 시스템 프로그램(323)을 참조하는 심볼들(311)을 가질 뿐만 아니라, 시스템 프로그램(323)이 참조할 심볼들(312)을 가진다. 이외에도, 본 발명의 일실시예에 따른 링크를 수행하기 위한 심볼 테이블(313)을 가질 수 있다. When the
상기 콘트롤러(330)가 받는 상기 링크 정보는 상기 응용 프로그램(310)이 다 운로드될 상기 메모리(320) 상의 시작 주소를 포함한다. 또한, 상기 링크 정보에는 상기 응용 프로그램(310) 내의 함수나 변수와 같은 심볼들에 대한 심볼 주소들이 포함된다. 상기 응용 프로그램(310)에서 상기 시스템 프로그램(323)을 참조하는 심볼들(311) 및 상기 시스템 프로그램(323)에서 상기 응용 프로그램(310)을 참조하는 심볼들(312)에 대한 심볼 주소들은 상기 시스템 프로그램(323)에 포함되는 심볼 테이블(322)에 저장되어 있고, 링크 시 상기 콘트롤러(330)로 전송될 수 있다. The link information received by the
상기 응용 프로그램(310)과 상기 시스템 프로그램(323)은 서로 분리된 서로 다른 ROM 형태의 메모리(320)에 저장될 수도 있다. 예를 들어, 상기 메모리(320)가 두 개로 분리된 제1 메모리 및 제2 메모리로 이루어질 수 있고, 이때 상기 콘트롤러(330)가 상기 제1 메모리에 상기 시스템 프로그램(323)을 다운로드하고, 상기 제2 메모리에 상기 응용 프로그램(310)을 다운로드할 수 있다. The
이하, 도 4의 흐름도를 참조하여 도 3의 실행 파일 링크 장치(300)의 동작을 좀더 자세히 설명한다. Hereinafter, the operation of the executable
먼저, 메모리(320)에 응용 프로그램(310)을 다운로드하기 전에, 콘트롤러(330)는 시스템 프로그램(323)을 먼저 상기 메모리(320)에 다운로드한다. 이외에도, 상기 시스템 프로그램(323)은 상기 콘트롤러(330)에 의하지 않고 다른 방법이나 장치에 의하여 상기 메모리(320)에 다운로드될 수도 있다. 다만, 상기 시스템 프로그램(323)이 상기 메모리(320)에 다운로드될 때에는, 상기 응용 프로그램(310)이 다운로드될 상기 메모리(320) 상의 시작 주소와 상기 응용 프로그램(310) 내의 심볼들, 즉, 상기 응용 프로그램(310)에서 상기 시스템 프로그램(323)을 참조하는 부분(311) 및 상기 시스템 프로그램(323)에서 상기 응용 프로그램(310)을 참조하는 부분(312)에 대한 심볼 주소들이 상기 메모리(320)의 심볼 테이블(322)에 저장된다. First, before downloading the
예를 들어, 상기 콘트롤러(330)는 상기 시스템 프로그램(323)의 각 심볼들이 상기 메모리(320)에 저장된 주소를 계산하여, 도 5와 같이 상기 응용 프로그램(310)에서 상기 시스템 프로그램(323)을 참조하는 부분(311), 즉, 함수나 변수들에 대한 해당 주소(예를 들어, 도 5에서 함수 (a)에 대한0xffaa)를 상기 메모리(320)의 심볼 테이블(322)에 저장할 수 있다. 마찬가지로, 상기 콘트롤러(330)는 도 6과 같이 상기 시작 주소에 기초하여 상기 시스템 프로그램(323)에서 상기 응용 프로그램(310)을 참조하는 부분(312), 즉, 함수나 변수들 각각에 대한 해당 주소(예를 들어, 도 6에서 함수 (b)에 대한0xffbb)를 계산하여 상기 메모리(320)의 심볼 테이블(322)에 저장할 수 있다.For example, the
이와 같이, 상기 시스템 프로그램(323)이 상기 메모리(320)에 먼저 다운로드 되었다는 가정하에, 응용 다운로드 프로그램이나 장치 형태의 상기 콘트롤러(330)는 상기 응용 프로그램(310)을 상기 메모리(320)에 다운로드시키기 위한 일정 요청을 수신한다(S410). 상기 일정 요청을 위하여 상기 콘트롤러(330)가 탑재된 컴퓨터 또는 마이크로 프로세서의 사용자 인터페이스가 이용될 수 있다. As such, assuming that the
상기 콘트롤러(330)는 일정 다운로드 요청을 받으면, 상기 시스템 프로그램(323)이 먼저 로드되어 있는 상기 메모리(320)로부터 링크 정보, 즉, 상기 응용 프 로그램(310)이 다운로드될 상기 메모리(320) 상의 시작 주소와 상기 심볼 테이블(322)에 저장된 상기 심볼 주소들을 수신한다(S420). 상기 콘트롤러(330)가 상기 메모리(320)로부터 받는 상기 심볼 주소들은 상기 응용 프로그램(310)의 일부인 심볼 테이블(313)에 임시 저장될 수 있다.When the
이에 따라 상기 콘트롤러(330)는 상기 응용 프로그램(310) 내의 상기 시스템 프로그램(323)을 참조하는 심볼들(311)에 대하여 상기 메모리(320)의 심볼 테이블(322)로부터 받는 심볼 주소들에 따라 ROM에 기록될 형태로 코드화한다(S430). Accordingly, the
예를 들어, 도 5와 같이, 상기 응용 프로그램(310) 내의 상기 시스템 프로그램(323)을 참조하는 심볼 call (a)에 대하여, 함수 (a)가 상기 시스템 프로그램(323) 내의 주소 0xffaa에서 시작하는 경우에, 상기 심볼 call (a)는 jump 0xffaa와 같이 일정 규칙(예를 들어, 16진법)에 따라 상기 메모리(320)에 기록되도록 코드화될 수 있다. 위에서 기술한 바와 같이, 상기 콘트롤러(330)에 의하여 계산된 상기 시스템 프로그램(323) 내의 각 심볼들에 대한 주소(예를 들어, 0xffaa)는 상기 메모리(320)의 심볼 테이블(322)에 저장되어 있고, 이는 상기 응용 프로그램(310) 내의 상기 시스템 프로그램(323)을 참조하는 심볼(311)에 대한 링크를 위한 코드 변경 시에 상기 콘트롤러(330)로 전송되어 상기 심볼 테이블(313)에 임시 저장되어 이용될 수 있다.For example, for symbol call (a) referring to the
이와 같은 링크 시의 코드 변경 방법에 따라 상기 응용 프로그램(310)을 변경하면서, 상기 시스템 프로그램(323)에서 상기 응용 프로그램(310)을 참조하는 심볼들(312)이 나타나면(S440), 상기 콘트롤러(330)는 상기 응용 프로그램(310)을 참 조하는 심볼들(312)에 대하여 상기 메모리(320)의 심볼 테이블(322)로부터 받는 심볼 주소들에 따라 ROM에 기록될 형태로 코드화한다(S450). If the
예를 들어, 도 6과 같이, 상기 응용 프로그램(310)을 참조하는 심볼 call (b)에 대하여, 상기 응용 프로그램(310) 내의 함수 (b)가 상기 메모리(320) 상의 주소 0xffbb에서 시작하여 기록되도록 16진법 등에 따라 코드화될 수 있다. 위에서 기술한 바와 같이, 상기 시작 주소에 기초하여 상기 콘트롤러(330)에 의하여 계산된 상기 시스템 프로그램(323)에서 상기 응용 프로그램(310)을 참조하는 심볼들에 대한 주소(예를 들어, 0xffbb)는 상기 메모리(320)의 심볼 테이블(322)에 저장되어 있고, 이는 상기 응용 프로그램(310) 내의 상기 시스템 프로그램(323)을 참조하는 심볼(312)에 대한 링크를 위한 코드 변경 시에 상기 콘트롤러(330)로 전송되어 상기 심볼 테이블(313)에 임시 저장되어 이용될 수 있다.For example, as shown in FIG. 6, for the symbol call (b) referring to the
상기 응용 프로그램(310)이 상기 시스템 프로그램(323)에 링크된 프로그램으로 완성될 때까지(S460), 상기 콘트롤러(330)는 위와 같은 방법을 반복적으로 수행하여(S430~S460), 상기 응용 프로그램(310)의 모든 코드를 ROM형태의 상기 메모리(320)에 기록될 형태로 모두 코드 변경한다. 이에 따라, 상기 콘트롤러(330)는 상기 시스템 프로그램(323)에 링크된 응용 프로그램(310)을 상기 메모리(320)에 다운로드하여 상기 메모리(320)의 일정 영역에 기록되도록 한다(S470).Until the
위에서 기술한 바와 같이, 본 발명의 일실시예에 따른 임베디드 시스템을 위한 실행 파일의 링크 장치(300)에서는, 응용 다운로드 프로그램 형태의 콘트롤러(330)가 시스템 프로그램(323)이 이미 로드되어 있는 메모리(320)로부터 링크 정보 를 받아 해당 응용 프로그램(310)을 상기 시스템 프로그램(323)과 링크된 프로그램(321)으로 변경하고 ROM에 다운로드될 형식으로 코드화한다. As described above, in the
본 명세서에서 개시된 방법 및 장치에서 사용되는 기능은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. The functions used in the methods and apparatus disclosed herein can be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). do. 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.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다. As described above, although the present invention has been described with reference to limited embodiments and drawings, the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
상술한 바와 같이 본 발명에 따른 임베디드 시스템을 위한 실행 파일의 링크 방법 및 장치에서는, 실행 파일을 응용 프로그램과 시스템 프로그램으로 분리시켜 다운로드시키기 위하여, 시스템 프로그램으로부터의 링크 정보에 따라 응용 프로그 램을 링크된 파일로 변경시키므로, 시스템 프로그램이 응용 프로그램을 참조하는 경우까지도 해당 응용 프로그램을 용이하고 정확하게 링크시켜 ROM에 다운로드 할 수 있는 효과가 있다. As described above, in the method and apparatus for linking an executable file for an embedded system according to the present invention, in order to download the executable file separately from an application program and a system program, the application program is linked according to link information from the system program. Since it is changed to a file, even if a system program refers to an application, the application can be easily and accurately linked and downloaded to the ROM.
이와 같은 본 발명의 특징은 임베디드 시스템을 동작시킬 큰 실행 파일의 개발 시에, 응용 프로그램과 시스템 프로그램을 따로 분리하여 컴파일링, 어셈블링, 및 디버깅 등이 가능하게 하여 개발자의 오버헤드(overhead)를 줄여줄 수 있는 효과가 있다. Such a feature of the present invention enables developers to separately compile, assemble, and debug application programs and system programs when developing a large executable file to operate an embedded system, thereby reducing developer overhead. There is an effect that can be reduced.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050095929A KR100722233B1 (en) | 2005-10-12 | 2005-10-12 | Method and Apparatus for Linking Separate Execution Files for Embedded System |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050095929A KR100722233B1 (en) | 2005-10-12 | 2005-10-12 | Method and Apparatus for Linking Separate Execution Files for Embedded System |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070040508A KR20070040508A (en) | 2007-04-17 |
KR100722233B1 true KR100722233B1 (en) | 2007-05-29 |
Family
ID=38176206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050095929A KR100722233B1 (en) | 2005-10-12 | 2005-10-12 | Method and Apparatus for Linking Separate Execution Files for Embedded System |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100722233B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010011952A (en) * | 1999-07-31 | 2001-02-15 | 구자홍 | Apparatus of Update for Classifying Module and Method Thereof |
KR20030089044A (en) * | 2002-05-15 | 2003-11-21 | 송경섭 | Compile system for selecting source code modules and providing web environces and method thereof |
KR20050007906A (en) * | 2003-07-12 | 2005-01-21 | 삼성전자주식회사 | Shared library system and method for constructing the system |
KR20050010640A (en) * | 2003-07-22 | 2005-01-28 | 재단법인서울대학교산학협력재단 | Dynamic Linking Method for Application Program |
-
2005
- 2005-10-12 KR KR1020050095929A patent/KR100722233B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010011952A (en) * | 1999-07-31 | 2001-02-15 | 구자홍 | Apparatus of Update for Classifying Module and Method Thereof |
KR20030089044A (en) * | 2002-05-15 | 2003-11-21 | 송경섭 | Compile system for selecting source code modules and providing web environces and method thereof |
KR20050007906A (en) * | 2003-07-12 | 2005-01-21 | 삼성전자주식회사 | Shared library system and method for constructing the system |
KR20050010640A (en) * | 2003-07-22 | 2005-01-28 | 재단법인서울대학교산학협력재단 | Dynamic Linking Method for Application Program |
Also Published As
Publication number | Publication date |
---|---|
KR20070040508A (en) | 2007-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6003095A (en) | Apparatus and method for demand loading a dynamic link library | |
US5920721A (en) | Compiler generating functionally-alike code sequences in an executable program intended for execution in different run-time environments | |
AU658413B2 (en) | System and method for transforming procedure calls in a cross-debugging environment | |
CN110825386B (en) | Code compiling method and device and storage medium | |
US8806436B2 (en) | Systems and methods for debugging applications using dual code generation | |
US20100281463A1 (en) | XML based scripting framework, and methods of providing automated interactions with remote systems | |
JP2007529063A (en) | Method and apparatus for performing native binding | |
US5764947A (en) | System and method for automatically interfacing call conventions between two dissimilar program units | |
JP2007529063A5 (en) | ||
WO1997012508B1 (en) | Transforming and manipulating program object code | |
JP2009505275A (en) | System, method, and computer program for inspecting safety of execution application program in module | |
JP2007304840A (en) | Compilation method, debugging method, compilation program, and debugging program | |
US5615369A (en) | Automated detection and correction of uninitialized variables | |
CN105159732A (en) | Method for installing or updating application program in mobile terminal and mobile terminal | |
CN102364433B (en) | Method for realizing Wine construction tool transplanting on ARM (Advanced RISC Machines) processor | |
US10452364B2 (en) | Method and system for preparing code to be executed by programmable control devices | |
JPH10507016A (en) | System, method and compiler preprocessor for conditionally compiling software compilation units | |
CN110032425A (en) | A kind of dynamic link library file virtual method, system and storage medium | |
KR100722233B1 (en) | Method and Apparatus for Linking Separate Execution Files for Embedded System | |
US9063723B2 (en) | Function-based software comparison method | |
CN112306539B (en) | Development method, system, terminal and medium for SCM application layer | |
CN115658140A (en) | SDK packaging method, device, terminal and storage medium | |
CN113641389B (en) | Software upgrading method, device and equipment based on OpenCPU | |
CN118069142B (en) | Compilation optimization method, device, electronic equipment and storage medium | |
Navas et al. | A component-based run-time evolution infrastructure for resource-constrained embedded systems |
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: 20130522 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20140516 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20150521 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20160517 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |