KR100334903B1 - Target server apparatus in remote development environments for embedded real - time software and controlling method thereof - Google Patents

Target server apparatus in remote development environments for embedded real - time software and controlling method thereof Download PDF

Info

Publication number
KR100334903B1
KR100334903B1 KR1019990046545A KR19990046545A KR100334903B1 KR 100334903 B1 KR100334903 B1 KR 100334903B1 KR 1019990046545 A KR1019990046545 A KR 1019990046545A KR 19990046545 A KR19990046545 A KR 19990046545A KR 100334903 B1 KR100334903 B1 KR 100334903B1
Authority
KR
South Korea
Prior art keywords
target
target server
host system
tool
server
Prior art date
Application number
KR1019990046545A
Other languages
Korean (ko)
Other versions
KR20010038541A (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 KR1019990046545A priority Critical patent/KR100334903B1/en
Publication of KR20010038541A publication Critical patent/KR20010038541A/en
Application granted granted Critical
Publication of KR100334903B1 publication Critical patent/KR100334903B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

Abstract

본 발명은 내장형 실시간 소프트웨어를 호스트 상의 여러 개발 도구를 이용하여 원격 개발할 수 있도록 해 주는 타겟 서버 장치 및 그 제어 방법을 제공하는데 그 목적이 있다.An object of the present invention is to provide a target server device and a control method thereof, which enable remote development of embedded real-time software using various development tools on a host.

본 발명에 따르면, 기 설정한 플래그(Flag)를 반영하여 그 특성에 맞게 상기 타겟 서버를 구동시키고, 상기 호스트 시스템 상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 기능을 수행하는 타겟 서버 컨트롤기와; 상기 타겟 서버 컨트롤기에 의하여 호출된 서비스에 따라, 상기 타겟 시스템의 시스템 심볼 테이블과 상기 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리하는 기능을 수행하는 심볼 테이블 관리기와; 상기 호스트 시스템에 있는 실행 파일을 타겟 시스템에 로딩/언로딩하는 기능, 로딩된 모듈 리스트를 상기 호스트 시스템 상에서 관리하는 기능을 수행하는 실행 모듈 관리기와; 타겟 서버 구동시 상기 호스트 시스템 상의 도구들과 상기 타겟 시스템이 통신할 수 있도록 하는 통신 벡엔드 관리기를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 제어 장치가 제공된다.According to the present invention, a target for driving the target server according to its characteristics by reflecting a flag set in advance, interpreting a function requested by a tool on the host system, and calling a service according to the target A server controller; A symbol table manager that manages information about a system symbol table of the target system and subroutines, variables, and module ids of all execution modules loaded in the target system according to a service called by the target server controller. Wow; An execution module manager configured to load / unload an executable file in the host system to a target system and to manage the loaded module list on the host system; Provided is a target server control device comprising a communication backend manager for allowing the target system to communicate with the tools on the host system when the target server is running.

Description

내장형 실시간 소프트웨어의 원격 개발을 위한 타겟 서버 장치 및 그 제어 방법 {Target server apparatus in remote development environments for embedded real - time software and controlling method thereof}Target server apparatus in remote development environments for embedded real-time software and controlling method

본 발명은 내장형 실시간 소프트웨어를 호스트 상의 여러 개발 도구를 이용하여 원격 개발할 수 있도록 해 주는 타겟 서버 장치 및 그 제어 방법에 관한 것으로, 특히, 호스트 시스템 상에 여러 도구를 사용하여 원격 개발을 할 수 있는 환경에서 타겟 시스템에 접근하기 위하여 하나의 창구를 통해 모든 개발 행위가 수행될 수 있도록 지원하는 도구 중개자의 역할을 수행하는 타겟 서버 장치 및 그 제어 방법에 관한 것이다.The present invention relates to a target server device that enables remote development of embedded real-time software using various development tools on a host, and a control method thereof. In particular, an environment in which remote development can be performed using various tools on a host system The present invention relates to a target server device which performs a role of a tool intermediary for supporting all development activities through a window to access a target system, and a control method thereof.

정보 가전에 탑재할 내장 시스템은 작은 컴퓨터라고 볼 수 있지만, 우리가 보통 사용하는 개인용 컴퓨터와는 비교가 안될 정도로 작은 규모이다. 그래서 디버거와 같이 리소스를 많이 필요로 하는 대형 소프트웨어를 내장 시스템에 탑재하여 응용 프로그램을 개발하기는 상당히 어렵다. 그래서, 타겟 시스템과 시리얼 혹은 이더넷으로 연결하여 원격 컴퓨터(이하 호스트 시스템이라 칭함)에서 내장 시스템에 탑재할 응용을 개발하려는 시도가 있어 왔다.The built-in system for information appliances is a small computer, but it's small compared to the personal computers we usually use. That's why it's very difficult to develop an application with a large resource-intensive software such as a debugger built into an embedded system. Thus, there have been attempts to develop applications for embedded systems in remote computers (hereinafter referred to as host systems) by connecting to target systems via serial or Ethernet.

종래에는 호스트 상에 디버거 클라이언트를 두고 타겟에 디버거 서버를 두는 GDB(Gnu DeBugger)와 같은 디버거 하나 만으로 응용을 개발하는 게 대부분의 내장형 소프트웨어의 개발 환경이었으나, 최근 다양한 응용을 지원하고, 응용 개발의 효율을 기하기 위해 디버거 외에도 원격 쉘, 타겟 자원 모니터 등 다양한 도구를 호스트 상에 둘 필요성이 제기되었다.In the past, developing applications with only one debugger, such as GDB (Gnu DeBugger), which has a debugger client on a host and a debugger server on a target, has been the development environment of most embedded software. In addition to the debugger, a variety of tools, such as remote shells and target resource monitors, have been raised on the host.

내장형 프로세서인 32 비트 마이크로 프로세서가 값이 싸지고, 특정 응용 전용인 내장형 마이크로 프로세서의 출현으로 말미암아 통신 단말기 및 디지털 TV와 같은 정보 가전 제품에 탑재할 내장형 실시간 응용의 수요가 급증하고 있다. 더구나 내장형 응용이 멀티미디어와 같은 대형 데이터를 처리해야 하는 등 점점 복잡해지고 있으며, 이를 위한 개발 환경은 타겟 시스템(Target System)의 자원이 매우 제한적이라서, 호스트 시스템(Host System)과 타겟 시스템 간의 통신 부담이 크다는 문제점이 있다.Embedded 32-bit microprocessors are inexpensive, and the advent of embedded microprocessors dedicated to specific applications is driving the demand for embedded real-time applications for information consumer products such as communication terminals and digital TVs. In addition, embedded applications are becoming more complex, such as processing large data such as multimedia, and the development environment for this is that the resources of the target system are very limited, so that the communication burden between the host system and the target system is increased. There is a problem that large.

내장형 소프트웨어를 원격지의 호스트 시스템 상에서 개발하기 위해서 종래에는 호스트 시스템 상에 디버거 클라이언트(Debugger Client)를 두고 타겟 시스템에 디버거 서버(Debugger Server)를 둔 GDB와 같은 원격 디버거를 사용하였으나, 내장형 소프트웨어가 점점 복잡해지고, 원격 개발 환경이 타겟 시스템에 독립적이며 다양한 개발 도구를 사용하면서 실시간으로 타겟 시스템의 상황을 파악할 필요성이 제기되었다. 이러한 필요성을 만족시키기 위해서 호스트 시스템 상에 여러 도구를 두고 타겟 시스템에 연결하여 내장형 소프트웨어 개발하는 환경을 구축하기 시작했다.In order to develop embedded software on a remote host system, in the past, a remote debugger such as GDB having a debugger client on a host system and a debugger server on a target system is used, but the embedded software is increasingly complicated. Therefore, the necessity of understanding the situation of the target system in real time is raised while the remote development environment is independent of the target system and using various development tools. To meet this need, he began to build an environment for developing embedded software by connecting to a target system with several tools on the host system.

도 1은 종래 기술에 따른 내장형 소프트웨어의 원격 개발 도구와 타겟 시스템의 연결 구조도로서, 이를 상세히 설명하면 다음과 같다.1 is a connection structure diagram of a remote development tool and a target system of embedded software according to the prior art, which will be described in detail as follows.

도 1에 나타난 바와 같이 개발자 도구가 여러 개 있을 경우, 두 가지 경우를 고려할 수 있다. 기존의 서로 다른 공급자(Vendor)의 상용화 도구를 사용하여 개발 환경을 꾸밀 경우, 가능한 호스트 시스템과 타겟 시스템 간의 연결 구조는 도 1의 110과 같다. 그러나, 도 1의 110 구조는 각각의 도구가 타겟 시스템과 연결하여 타겟 시스템의 자원에 접근하는데, 이 경우는 각 도구가 동시에 접근할 경우, 타겟 시스템의 통신 부담이 매우 커진다. 그리고, 도구를 사용하는 응용 개발자가 타겟 시스템에 심각한 오류를 발생시켰을 경우에, 다른 도구를 사용하는 개발자도 타겟 시스템을 사용할 수 없게 된다. 서로 다른 도구일지라도 타겟 시스템의 심볼 테이블(Symbol Table)과 같이 중복된 데이터를 각 도구가 가지고 있어야 하고, 경우에 따라서는 중복 데이터에 대한 일관성도 문제가 될 수 있다. 또한, 호스트 시스템 상에 새로운 도구를 추가할 경우에도 통신 방식, 타겟 시스템에 대해 상세히 파악해야 하므로 도구 개발자에게 큰 부담을 줄 수 있다는 문제점이 있다.As shown in FIG. 1, when there are several developer tools, two cases may be considered. When decorating a development environment using commercialization tools of different vendors (Vendor), the connection structure between the host system and the target system is as shown in 110 of FIG. However, in the structure 110 of FIG. 1, each tool is connected to the target system to access resources of the target system. In this case, when each tool is accessed at the same time, the communication load of the target system becomes very large. In addition, when an application developer using a tool causes a serious error in the target system, the developer using another tool cannot use the target system. Even with different tools, each tool must have duplicate data, such as a symbol table of a target system, and in some cases, consistency of duplicate data can be a problem. In addition, even when adding a new tool on the host system, there is a problem that it can be a big burden on the tool developer because it needs to know in detail about the communication method and the target system.

'이은향 외 2인'이 등록받은 선행 특허 '교차 디버깅 서버에서 프로세스 실행 제어 서비스 실현 방법'(등록 번호 : 1997-069487)은, 타겟 시스템에서 동작하는 교차 디버깅 서버에서 프로세스 실행 제어 서비스 실현 방법에 관한 것이다.The prior patent 'Method of realizing process execution control service in cross debugging server' (Registration No .: 1997-069487), registered by Lee Eun Hyang and 2 others, is a method of realizing process execution control service in a cross debugging server operating on a target system. It is about.

상기 선행 특허에서 제공하는 교차 디버깅 서버에서 프로세스 실행 제어 서비스를 실현하는 방법은 호스트 시스템에 있는 교차 디버깅 클라이언트로부터 프로세스 실행 제어 서비스 요청을 수락하여 그 서비스가 어떠한 형태의 서비스 요청인가를 판단하는 제 1 단계, 상기 제 1 단계에서 요청받은 프로세스 실행 제어 서비스의 종류에 따라 해당 서비스를 수행하는 제 2 단계, 상기 제 2 단계의 수행 결과를 호스트 시스템에 있는 교차 디버깅 클라이언트에게 제공하는 제 3 단계 등 세 단계로 구성된다.A method of realizing a process execution control service in a cross debugging server provided by the above patent includes a first step of accepting a process execution control service request from a cross debugging client in a host system and determining what type of service request the service is. A third step of performing a corresponding service according to the type of process execution control service requested in the first step; and a third step of providing a result of performing the second step to a cross-debugging client in a host system. It is composed.

상기 프로세스 실행 제어 서비스를 제공하기 위한 실시간 운영 체제의 교차 디버깅 서버는 하나 이상의 서비스 데몬, 디버깅 서버 엔진 및 원격 통신 처리부로 이루어져 있다. 상기 서비스 데몬은 교차 디버깅 클라이언트로부터 실행 제어 서비스를 요청받아 디버깅 서비스 엔진을 이용하여 사용자 프로그램 내의 임의의 프로세스를 실행 중단 / 재개하는 등의 프로세스 실행을 제어하여 그 결과를 원격 통신 처리부를 통하여 교차 디버깅 클라이언트에게 전달하는 역할을 한다. 프로세스 실행 중단 요청을 받으면, 해당 프로세스를 찾아 프로세스의 현재 상태를 저장하고, 실행 재개할 때의 프로세스의 상태를 정의한다.The cross-debugging server of a real-time operating system for providing the process execution control service includes one or more service daemons, a debugging server engine, and a remote communication processing unit. The service daemon receives the execution control service from the cross debugging client and controls the execution of the process such as stopping / resume any process in the user program using the debugging service engine, and sends the result to the cross debugging client through the remote communication processing unit. To communicate with When it receives a request to stop running a process, it finds the process, stores the current state of the process, and defines the state of the process when it resumes running.

만약 실행 중단시킬 프로세스가 어떠한 사건이 일어나기를 기다리는 대기 상태가 아니면 프로세스 컨텍스트(Context) 스위치에 필요한 정보를 프로세스 실행 제어 블록에 저장하고, 프로세스 스케쥴링 준비 큐에서 제외한다.If the process to be stopped is not waiting for any event, the process context switch stores the information needed in the process execution control block and excludes it from the process scheduling ready queue.

만약 해당 프로세스가 대기 상태이면, 대기 상태로 만든 시스템 콜의 시작 지점을 프로세스 스택을 찾아가며 찾아서, 프로그램 카운터가 그 시작 지점을 가리키도록 조정하고, 스택 포인터와 프레임 포인터가 시스템 콜의 시작 지점에 해당하는 스택 프레임을 가리키도록 조정한다. 마지막으로 상기 시스템 콜이 사용한 입력 파라미터들을 스택 프레임에서 찾아 파라미터 전달용 레지스터에 재로딩하여 놓고 나머지 부분은 대기 상태가 아닌 경우의 처리를 수행한다. 이렇게 함으로써, 시스템 실행이 중단되는 상황의 발생이 없이 실행 중인 프로세스만을 실행 중단시키고, 실행 재개시키는 과정을 제공하여 실행 중인 프로세스를 디버깅함에 있어서 프로세스의 실행 제어를 쉽게 할 수 있을 뿐만 아니라, 디버깅에 따르는 일련의 과정을 단축할 수 있어서 효율적인 면을 제시하였다.If the process is in a waiting state, the starting point of the system call that made the waiting state is searched through the process stack, the program counter is pointed to that starting point, and the stack pointer and frame pointer are placed at the beginning of the system call. Adjust to point to the corresponding stack frame. Finally, the input parameters used by the system call are found in the stack frame, reloaded into the parameter transfer register, and the rest is processed when the other state is not in the standby state. This makes it easy to control the execution of a process in debugging the running process by providing a process of suspending only the running process and resuming execution without causing the system to stop running. A series of processes can be shortened to present an efficient aspect.

그러나, 본 선행 특허에서도 위에서 서술한 문제점을 극복하고 있지 아니하다.However, this prior patent does not overcome the problems described above.

본 발명은 상기와 같은 종래기술의 문제점을 해결하기 위하여 안출된 것으로서, 호스트 시스템 사에 여러 도구를 사용하여 원격 개발을 할 수 있는 환경에서 타겟 시스템에 접근하기 위하여 하나의 창구를 통해 모든 개발 행위가 수행될 수 있도록 지원하는 타겟 서버 장치 및 그 제어 방법을 제공하는데 그 목적이 있다.The present invention has been made to solve the above problems of the prior art, all the development activities through a single window to access the target system in an environment that can be remotely developed using a variety of tools in the host system company It is an object of the present invention to provide a target server apparatus and a control method thereof, which can be performed.

도 1은 종래 기술에 따른 내장형 소프트웨어의 원격 개발 도구와 타겟 시스템의 연결 구조도이고,1 is a connection structure diagram of a remote development tool and a target system of embedded software according to the prior art,

도 2는 본 발명에 일 실시예에 따른 내장형 소프트웨어의 원격 개발 도구와 타겟 시스템의 연결 구조도이고,2 is a structural diagram of a connection between a remote development tool and a target system of embedded software according to an embodiment of the present invention;

도 3은 본 발명의 일 실시예에 따른 내장형 소프트웨어의 원격 개발 시스템의 구성도이고,3 is a block diagram of a remote development system of embedded software according to an embodiment of the present invention,

도 4는 본 발명의 일 실시예에 따른 타겟 서버에 대한 구조도이고,4 is a structural diagram of a target server according to an embodiment of the present invention,

도 5는 도 4에 도시된 도구 인터페이스 프로토콜의 기능에 따른 분류 테이블이고,5 is a classification table according to the function of the tool interface protocol shown in FIG. 4;

도 6은 본 발명의 일 실시예에 따른 타겟 서버 장치가 도구에 대한 서비스를 제공하기 위하여 서비스 데몬으로 동작되는 과정을 나타내는 흐름도이고,6 is a flowchart illustrating a process in which a target server device operates as a service daemon to provide a service for a tool according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 타겟 서버 장치가 데몬으로 작동하고 있으면서, 호스트 상의 여러 개발 도구와 타겟 에이젼트의 서비스 요청을 받아들여서비스해주는 과정을 나타낸 흐름도이고,7 is a flowchart illustrating a process of receiving a service request from various development tools and target agents on a host while the target server device operates as a daemon according to an embodiment of the present invention.

도 8은 본 발명의 일 실시예에 따른 호스트 시스템에서 교차 컴파일(Cross Compile)한 내장형 소프트웨어를 타겟 서버 장치를 이용하여 타겟에 로딩하여 실행하는 과정을 나타낸 흐름도이다.8 is a flowchart illustrating a process of loading and executing embedded software cross-compiled in a host system using a target server device according to an embodiment of the present invention.

앞서 설명한 바와 같은 목적을 달성하기 위한 본 발명에 따르면, 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 장치에 있어서, 기 설정한 플래그(Flag)를 반영하여 그 특성에 맞게 상기 타겟 서버를 구동시키고, 상기 호스트 시스템상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 기능을 수행하는 타겟 서버 컨트롤기와; 상기 타겟 서버 컨트롤기에 의하여 호출된 서비스에 따라, 상기 타겟 시스템의 시스템 심볼 테이블과 상기 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리하는 기능을 수행하는 심볼 테이블 관리기와; 상기 호스트 시스템에 있는 실행 파일을 타겟 시스템에 로딩/언로딩하는 기능, 로딩된 모듈 리스트를 상기 호스트 시스템 상에서 관리하는 기능을 수행하는 실행 모듈 관리기와; 타겟 서버 구동시 상기 호스트 시스템 상의 도구들과 상기 타겟 시스템이 통신할 수 있도록 하는 통신 벡엔드 관리기를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 제어 장치가 제공된다.According to the present invention for achieving the above object, to enable the remote development of embedded real-time software running on the target system using a development tool on the host system (Host System) In the target server device, the target server is driven in accordance with the characteristics by reflecting a predetermined flag, and the function requested by the tool on the host system is interpreted to call a service according to the target server device. A target server controller for performing a giving function; A symbol table manager that manages information about a system symbol table of the target system and subroutines, variables, and module ids of all execution modules loaded in the target system according to a service called by the target server controller. Wow; An execution module manager configured to load / unload an executable file in the host system to a target system and to manage the loaded module list on the host system; Provided is a target server control device comprising a communication backend manager for allowing the target system to communicate with the tools on the host system when the target server is running.

또한, 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 제어 방법에 있어서, 기 설정한 플래그(Flag)를 반영하여 그 특성에 맞게 상기 타겟 서버를 구동시키고, 상기 호스트 시스템 상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 제 1 단계와; 상기 제 1 단계에서 호출된 서비스에 따라, 상기 타겟 시스템의 시스템 심볼 테이블과 상기 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리하여 상기 호스트 시스템에 있는 실행 파일을 상기 타겟 시스템에 로딩/언로딩한 후, 로딩된 모듈 리스트를 상기 호스트 시스템 상에서 관리하는 제 2 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 제어 방법이 제공된다.In addition, in a target server control method for remotely developing embedded real-time software operating in a target system using a development tool on a host system, A first step of driving the target server according to a characteristic by reflecting a preset flag, interpreting a function requested by a tool on the host system, and calling a service corresponding thereto; According to the service called in the first step, the information on the system symbol table of the target system and the subroutines, variables, and module ids of all the execution modules loaded on the target system is managed to execute the executable file on the host system. After loading / unloading to the target system, a target server control method is provided, comprising a second step of managing the loaded module list on the host system.

또한, 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 장치가 호스트 시스템 상의 도구에 대한 서비스를 하기 위하여 서비스 데몬(Service Demon)으로 작동하는 방법에 있어서, 상기 타겟 시스템에 대한 여러 가지 설정 정보를 입력하고, 상기 호스트 시스템의 타겟 서버와 통신을 담당하는 기능을 수행하는 타겟 에이전트(Target Agent)의 통신 방식에 따라, 통신 방식을 선택하는 제 1 단계와; 상기 제 1 단계에서 입력된 설정 정보 및 상기 호스트 시스템 상의 개발 도구에서 입력된 정보에 따라 변환하고자 하는 실행 파일 형식(OMF: Object Module Format)을 선택한 후, 상기 타겟 시스템의 운영 체제 파일을 선택하고, 상기 타겟 서버의 작동 시작 요청을 하는 제 2 단계와; 상기 제 2 단계에서의 작동 시작 요청이 있으면, 상기 타겟 서버와 상기 타겟 에이전트와의 연결을 수행하여, 필요한 정보를 상기 타겟 서버에 전송한 후, 상기 타겟 시스템의 운영 체제 실행 파일을 읽어서, 타겟 시스템 심볼 테이블을 작성하고, 상기 타겟 서버를 초기화하여 타겟 서버 데몬을 구동하는 제 3 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치의 서비스 데몬 작동 방법이 제공된다.In addition, a target server device that enables remote development of embedded real-time software operating in a target system using a development tool on a host system is provided on the host system. In the method of operating as a service daemon (Service Daemon) to service the tool, a target agent for inputting various configuration information for the target system, and performs the function of communicating with the target server of the host system A first step of selecting a communication method according to the communication method of the (Target Agent); After selecting the executable file format (OMF: Object Module Format) to be converted according to the configuration information input in the first step and the information input from the development tool on the host system, select an operating system file of the target system, A second step of making an operation start request of the target server; If there is a request to start operation in the second step, the target server and the target agent are connected, and necessary information is transmitted to the target server, and then the operating system executable file of the target system is read and the target system is read. And a third step of creating a symbol table and initializing the target server to drive the target server daemon.

또한, 타겟 서버(Target Server) 장치를 이용하여, 호스트 시스템 상에서 교차 컴파일(Cross Compile)한 내장형 소프트웨어를 타겟 시스템에 로딩하여 원격 개발하는 방법에 있어서, 상기 호스트 시스템 상의 개발 도구들이 서비스를 요청하면, 실행 파일 형식에 따라 해독할 수 있는 정보 및 해당 실행 파일에 관련된심볼(Symbol)들을 추출하는 제 1 단계와; 상기 제 1 단계에서 추출한 정보 및 심볼에 관련된 텍스트 및 데이터 등의 세그먼트(Segment) 정보를 추출하여, 내장형 소프트웨어를 로딩하는 제 2 단계와; 상기 제 2 단계에서 로딩된 내장형 소프트웨어를 실행하여 정확성 검사를 수행하는 제 3 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치를 이용한 내장형 소프트웨어의 원격 개발 방법이 제공된다.In addition, by using a target server device, a method for remote development by loading cross-compiled embedded software on a host system to a target system, when the development tools on the host system request a service, Extracting information decipherable according to an executable file format and symbols related to the executable file; A second step of extracting segment information such as text and data related to the information and symbol extracted in the first step and loading embedded software; There is provided a remote development method of embedded software using a target server device, comprising a third step of performing an accuracy check by executing the embedded software loaded in the second step.

또한, 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server)와 상기 호스트 시스템 상의 개발 도구들과의 통신을 위하여, 상기 호스트 시스템 상의 개발 도구와 상기 타겟 서버와의 연결, 비연결 상태를 나타내거나, 상기 타겟 서버 데몬 및 상기 타겟 시스템을 재시작하거나, 상기 타겟 서버의 리스트를 확인하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 세션 관리 영역과; 상기 타겟 시스템에 로딩한 실행 파일을 수행하거나, 상기 호스트의 타겟 서버와 내장형 소프트웨어의 실시간 커널과의 통신을 담당할 타겟 에이전트에 관한 유형을 세팅하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 타겟 정보 및 타겟 오퍼레이션 영역과; 상기 타겟 시스템 심볼 정보 및 로딩할 실행 파일에 관련된 심볼의 테이블 관리를 위하여 입력, 수정, 조회 및 삭제할 수 있는 심볼 관리 영역과; 상기 타겟 시스템의 메모리의 일부를 필요에 따라 쓰기 및 읽기를 수행하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 메모리 관련 영역과; 컨텍스트(Context)를 유지하면서, 디버깅 기능을 수행하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 컨텍스트 관리 및 디버깅 영역과; 상기 호스트 시스템 상의 개발 도구, 상기 타겟 서버 장치 및 상기 타겟 에이전트간에 주고 받을 수 있는 이벤트 관리를 위하여 입력, 수정, 조회 및 삭제할 수 있는 이벤트 관리 영역을 포함하여 이루어진 것을 특징으로 하는 타겟 서버(Target Server)와 상기 호스트 시스템 상의 개발 도구들과의 통신 데이터를 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.In addition, the target server (Target Server) and the target server to enable the remote development of the embedded real-time software running on the target system using the development tool on the host system (Host System) In order to communicate with the development tools, indicating the connection between the development tool on the host system and the target server, indicating a disconnected state, restarting the target server daemon and the target system, or checking the list of the target server. A session management area for inputting, modifying, viewing, and deleting the data; Target information that can be entered, modified, inquired, and deleted to execute an executable file loaded on the target system or to set a type of a target agent to be in communication with the real-time kernel of the embedded server and the target server of the host; A target operation area; A symbol management area capable of inputting, modifying, retrieving, and deleting the target system symbol information and a table of symbols related to executable files to be loaded; A memory-related area capable of inputting, modifying, viewing, and deleting a part of the memory of the target system as necessary to perform writing and reading; A context management and debugging area capable of inputting, modifying, viewing, and deleting to perform debugging functions while maintaining a context; Target server characterized in that it comprises an event management area that can be input, modified, inquired and deleted for event management that can be exchanged between the development tool on the host system, the target server device and the target agent. And a computer-readable recording medium having recorded thereon communication data with development tools on the host system.

또한, 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 제어 프로그램을 실행시킬 수 있는 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 기 설정한 플래그(Flag)를 반영하여 그 특성에 맞게 상기 타겟 서버를 구동시키고, 상기 호스트 시스템 상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 제 1 단계와; 상기 제 1 단계에서 호출된 서비스에 따라, 상기 타겟 시스템의 시스템 심볼 테이블과 상기 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리하여 상기 호스트 시스템에 있는 실행 파일을 상기 타겟 시스템에 로딩/언로딩한 후, 로딩된 모듈 리스트를 상기 호스트 시스템 상에서 관리하는 제 2 단계를 포함하여 이루어진 것을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.In addition, a target server control program for executing remote development of embedded real-time software running on a target system using a development tool on a host system may be executed. In a computer-readable recording medium, the target server is driven in accordance with a predetermined flag, and a function requested by a tool on the host system is interpreted to invoke a service corresponding thereto. A first step of doing so; According to the service called in the first step, the information on the system symbol table of the target system and the subroutines, variables, and module ids of all the execution modules loaded on the target system is managed to execute the executable file on the host system. After loading / unloading to the target system, a computer-readable recording medium having recorded thereon a program capable of executing what is included is provided, including a second step of managing the loaded module list on the host system.

또한, 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 장치가 호스트 시스템 상의 도구에 대한 서비스를 하기 위하여 서비스 데몬(Service Demon)으로 작동하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 상기 타겟 시스템에 대한 여러 가지 설정 정보를 입력하고, 상기 호스트 시스템의 타겟 서버와 통신을 담당하는 기능을 수행하는 타겟 에이전트(Target Agent)의 통신 방식에 따라, 통신 방식을 선택하는 제 1 단계와; 상기 제 1 단계에서 입력된 설정 정보 및 상기 호스트 시스템 상의 개발 도구에서 입력된 정보에 따라 변환하고자 하는 실행 파일 형식(OMF: Object Module Format)을 선택한 후, 상기 타겟 시스템의 운영 체제 파일을 선택하고, 상기 타겟 서버의 작동 시작 요청을 하는 제 2 단계와; 상기 제 2 단계에서의 작동 시작 요청이 있으면, 상기 타겟 서버와 상기 타겟 에이전트와의 연결을 수행하여, 필요한 정보를 상기 타겟 서버에 전송한 후, 상기 타겟 시스템의 운영 체제 실행 파일을 읽어서, 타겟 시스템 심볼 테이블을 작성하고, 상기 타겟 서버를 초기화하여 타겟 서버 데몬을 구동하는 제 3 단계를 포함하여 이루어진 것을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.In addition, a target server device that enables remote development of embedded real-time software operating in a target system using a development tool on a host system is provided on the host system. A computer-readable recording medium having recorded thereon a program operating as a service daemon for servicing a tool, comprising: inputting various setting information about the target system and communicating with a target server of the host system A first step of selecting a communication method according to a communication method of a target agent that performs a function of managing a; After selecting the executable file format (OMF: Object Module Format) to be converted according to the configuration information input in the first step and the information input from the development tool on the host system, select an operating system file of the target system, A second step of making an operation start request of the target server; If there is a request to start operation in the second step, the target server and the target agent are connected, and necessary information is transmitted to the target server, and then the operating system executable file of the target system is read and the target system is read. There is provided a computer-readable recording medium having recorded thereon a program capable of executing a symbol table, including a third step of initializing the target server to drive a target server daemon.

또한, 타겟 서버(Target Server) 장치를 이용하여, 호스트 시스템 상에서 교차 컴파일(Cross Compile)한 내장형 소프트웨어를 타겟 시스템에 로딩하여 원격 개발하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서, 상기 호스트 시스템 상의 개발 도구들이 서비스를 요청하면, 실행 파일 형식에 따라 해독할 수 있는 정보 및 해당 실행 파일에 관련된 심볼(Symbol)들을 추출하는 제 1 단계와; 상기 제 1 단계에서 추출한 정보 및 심볼에 관련된 텍스트 및 데이터 등의 세그먼트(Segment) 정보를 추출하여, 내장형 소프트웨어를 로딩하는 제 2 단계와; 상기 제 2 단계에서 로딩된 내장형 소프트웨어를 실행하여 정확성 검사를 수행하는 제 3 단계를 포함하여 이루어진 것을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 제공된다.A computer-readable recording medium having recorded thereon a program for remote development by loading embedded software cross-compiled on a host system using a target server device in a target system, the host system comprising: A first step of extracting information decipherable according to an executable file format and symbols related to the executable file when the development tools on the service request a service; A second step of extracting segment information such as text and data related to the information and symbol extracted in the first step and loading embedded software; There is provided a computer-readable recording medium having recorded thereon a program capable of executing the program comprising a third step of executing the embedded software loaded in the second step to perform an accuracy check.

아래에서, 본 발명에 따른 양호한 일 실시예를 첨부한 도면을 참조로 하여 상세히 설명하겠다.In the following, with reference to the accompanying drawings, a preferred embodiment according to the present invention will be described in detail.

도 2는 본 발명에 일 실시예에 따른 내장형 소프트웨어의 원격 개발 도구와 타겟 시스템의 연결 구조도로서, 이를 상세히 설명하면 다음과 같다.2 is a diagram illustrating a connection structure of a remote development tool and a target system of embedded software according to an embodiment of the present invention.

종래의 내장형 소프트웨어의 원격 개발 도구와는 달리 본 발명의 일 실시예에 따르면, 도구가 타겟 시스템에 연결해서 원하는 기능을 수행하기 위해서는 필요한 기능과 데이터 등의 공통 요소를 모아서 도구와 타겟 시스템 사이의 도구 중개자가 수행하도록 하는 구조를 고안하였다. 즉, 타겟 서버 장치는 도 2의 120에서 도구 중개자에 해당한다. 이와 같은 구조를 지원하기 위해 타겟 서버는 호스트 시스템 상의 도구들과 타겟 시스템 사이에서 중개하는 역할을 한다. 이러한 구조를 채택하면서 얻을 수 있는 이익은 하나의 타겟 시스템에 하나의 채널만을 유지함으로써, 타겟 시스템의 제한된 자원을 절약하는 효과를 얻을 수 있고, 도구가 타겟 시스템에 접근할 수 있는 공통 인터페이스 함수를 정의함으로써, 현재의 개발 환경에 새로운 도구를 추가하는 것이 용이해진다.Unlike the remote development tool of the conventional embedded software, according to an embodiment of the present invention, the tool collects common elements such as functions and data necessary for connecting to the target system and performing a desired function. We have devised a structure that allows the intermediary to perform. That is, the target server device corresponds to the tool broker in 120 of FIG. 2. To support this structure, the target server acts as an intermediary between the tools on the host system and the target system. The benefit of adopting this structure is that by keeping only one channel in one target system, it can save the limited resources of the target system and define common interface functions that tools can access the target system. This makes it easier to add new tools to the current development environment.

또한, 타겟 서버 장치가 타겟 시스템 심볼 테이블과 같이 변하지 않는 타겟시스템 정보를 유지하여 굳이 타겟과 통신하지 않고도 도구가 원하는 정보를 호스트 상의 타겟 서버 장치가 서비스해줄 수 있는 장점이 있다.In addition, the target server device maintains the target system information, which does not change like the target system symbol table, so that the target server device on the host can serve the information desired by the tool without having to communicate with the target.

도 3은 본 발명의 일 실시예에 따른 내장형 소프트웨어의 원격 개발 시스템의 구성도로서, 이를 상세히 설명하면 다음과 같다.3 is a block diagram of a remote development system of embedded software according to an embodiment of the present invention.

본 발명이 적용되는 환경은 호스트 시스템(210)과 타겟 시스템(220)이 시리얼(Serial) 혹은 이더넷(Ethernet) 방식으로 연결되어 있는 있는 내장 프로세서의 실시간 운영 체제 위에 탑재할 응용 프로그램을 개발할 수 있는 시스템(200)에서이다. 상기 호스트 시스템(210)은 하드웨어인 호스트 보드(214), 개발 지원 도구가 동작할 수 있는 호스트 운영 체제(213, 본 발명에서는 윈도우 NT로 설계하였다.)와 본 발명과 가장 관련이 깊은 타겟 서버(212)가 있고 그 위에 원격 디버거, 대화형 쉘, 자원 모니터와 같은 여러 개발 도구들(211)이 있다. 상기 타겟 시스템(220)은 디지털 텔레비전 등 가전 제품이나 이동 단말기에 내장될 수 있는데, 내장형 프로세서에 해당하는 타겟 보드(225)가 있고 내장형 실시간 커널(224)과 상기 호스트 시스템(210)의 타겟 서버(212)와 통신을 담당할 타겟 에이전트(223)와 그래픽 라이브러리와 같은 실시간 응용 라이브러리(222)가 있고, 그 위에 개발하고자 하는 응용 프로그램(221)이 탑재될 것이다. 소스 레벨 디버깅 등을 통해 상기 타겟 시스템(220)에 탑재될 응용 개발이 끝나면 상기 타겟 에이전트(223)는 그 역할을 다하게 된다.The environment to which the present invention is applied is a system capable of developing an application program to be mounted on a real-time operating system of an embedded processor in which the host system 210 and the target system 220 are connected in a serial or Ethernet manner. At 200. The host system 210 includes a host board 214, which is hardware, a host operating system 213 on which a development support tool can operate, 213 (designed by Windows NT in the present invention), and a target server most relevant to the present invention ( 212) and various development tools 211, such as a remote debugger, an interactive shell, and a resource monitor. The target system 220 may be embedded in a home appliance or a mobile terminal such as a digital television. The target system 220 includes a target board 225 corresponding to an embedded processor, a built-in real-time kernel 224, and a target server of the host system 210. There is a target agent 223 to communicate with 212 and a real-time application library 222 such as a graphic library, and the application program 221 to be developed thereon will be mounted thereon. After the development of the application to be mounted on the target system 220 through source level debugging, the target agent 223 plays its role.

즉, 호스트 시스템 상의 도구들(211)과 타겟 서버(212)와 타겟 에이전트(223)는 타겟 시스템(220)에 탑재할 응용 개발을 위해 필요하다. 타겟 서버(212)는 본 발명에서 다루게 될 주요 요소로서 호스트 시스템 상의 도구들(211)이 타겟 시스템(220)에 접근하기 위해서는 반드시 상기 타겟 서버(212)를 거쳐야 한다.In other words, the tools 211 on the host system, the target server 212 and the target agent 223 are required for application development to be mounted on the target system 220. The target server 212 is the main element to be addressed in the present invention and the tools 211 on the host system must go through the target server 212 in order to access the target system 220.

도 4는 본 발명의 일 실시예에 따른 타겟 서버에 대한 구조도로서, 상기 타겟 서버(300)는 타겟 서버 컨트롤기(310), 도구 인터페이스 프로토콜(320), 통신 벡앤드 관리기(330), 벡엔드 프로토콜(340), 심볼 테이블 관리기(350), 실행 모듈 관리기(360) 및 타겟 메모리 관리기(370)로 구성되어 있다.4 is a structural diagram of a target server according to an embodiment of the present invention, wherein the target server 300 includes a target server controller 310, a tool interface protocol 320, a communication backend manager 330, and a backend. The protocol 340, the symbol table manager 350, the execution module manager 360, and the target memory manager 370 are configured.

이를 상세히 설명하면 다음과 같다.This will be described in detail as follows.

상기 타겟 서버 컨트롤기(310)는 타겟 서버 내부에서 일어나는 모든 것을 총괄하는 지휘 본부 역할을 한다. 응용 개발자가 설정한 플래그(Flag)를 반영하여 그 특성에 맞게 상기 타겟 서버(300)를 구동시키고, 호스트 시스템 상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 기능을 담당한다. 다시 말해 도구의 사용자가 사용하는 통신 방식, 실행 모듈 형식 등에 따라 적절한 모듈들을 구동시켜 하나의 타겟 서버 서비스 데몬(Demon)을 만들어서 도구의 요구를 기다리는 형태가 되도록 하는 모듈이다.The target server controller 310 serves as a command center that manages everything that occurs inside the target server. The target server 300 is driven in accordance with its characteristics by reflecting a flag set by an application developer, and a function of interpreting a function requested by a tool on a host system and calling a service corresponding thereto is provided. In other words, it is a module that waits for the request of the tool by creating a target server service daemon by running the appropriate modules according to the communication method and execution module type used by the user of the tool.

상기 도구 인터페이스 프로토콜(320)은 호스트 시스템 상의 도구들(211)에게 공통적인 인터페이스를 제공하여 타겟 시스템과 연결 창구를 일원화하기 위함이다. 상기 프로토콜은 타겟 서버 연결 기능, 심볼 처리 기능, 실행 시간 타겟 시스템 정보 제공 기능, 이벤트 관리 기능, 실행 모듈 로딩 기능, 디버깅 지원 기능, 메모리 관련 기능, 타겟 함수 호출 기능 등 도구가 상기 타겟 서버(300)에게 요청할 수있는 모든 기능을 함수별로 정의하여 하나의 API(응용 프로그램 인터페이스 : Application Program Interface), 혹은 여러 개의 APIs로 원하는 기능을 실현할 수 있다. 상기 APIs는 통신을 통해 도구들로부터 요청을 받으면, 상기 타겟 서버 컨트롤기(310)가 해당 API에 대한 서비스 함수를 호출해준다.The tool interface protocol 320 is to provide a common interface to the tools 211 on the host system to unify the target system and the connection window. The protocol includes a target server connection function, symbol processing function, execution time target system information providing function, event management function, execution module loading function, debugging support function, memory related function, target function call function and the like. By defining all the functions that can be requested by each function, one API (Application Program Interface) or several APIs can be used to realize the desired functions. When the APIs receive a request from the tools through communication, the target server controller 310 calls a service function for the corresponding API.

상기 심볼 테이블 관리기(350)는 타겟 시스템의 시스템 심볼 테이블과 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리한다. 원격 디버거와 대화형 쉘과 같은 호스트 시스템 상의 도구들(211)이 서브루틴을 호출하는 것은 상기 심볼 테이블 관리자(350)를 통해서 가능하다. 특히, 로드된 모듈에 대한 심볼릭 디스어셈블리(Symbolic Disassembly) 및 특정 태스크의 서브루틴 호출을 심볼릭하게 추적할 필요가 있는 소스 레벨 원격 디버깅에 유용하다.The symbol table manager 350 manages information about a system symbol table of a target system and subroutines, variables, and module ids of all execution modules loaded in the target system. It is possible through the symbol table manager 350 that the tools 211 on the host system, such as the remote debugger and the interactive shell, call the subroutine. In particular, it is useful for source-level remote debugging where you need to symbolically track the subroutine calls of specific tasks and symbolic disassemblies for loaded modules.

상기 실행 모듈 관리기(360)는 크게 호스트 시스템에 있는 실행 파일을 타겟 시스템에 로딩/언로딩하는 기능, 로딩된 모듈 리스트를 호스트 시스템 상에서 관리하는 기능을 지원한다. 또한, 상기 실행 모듈 관리기(360)는 로더(Loader)를 포함하는데 상기 로더는 여러 가지 파일 형식(예를 들어 COFF, ELF, a.out 등)을 지원하기에 용이한 DLL(Dynamic Linked Library) 구조를 갖고 있다. 상기 타겟 서버(300) 구동 시에 해당 파일 형식을 지원해주는 DLL이 타겟 서버 데몬에 연결된다.The execution module manager 360 largely supports a function of loading / unloading an executable file in a host system to a target system and managing a loaded module list on the host system. In addition, the execution module manager 360 includes a loader, which is a DLL (Dynamic Linked Library) structure that is easy to support a variety of file formats (for example, COFF, ELF, a.out, etc.) Have When the target server 300 is running, a DLL supporting the corresponding file format is connected to the target server daemon.

상기 타겟 메모리 관리기(370)는 도구들이 내장형 응용을 로딩 요구할 때, 타겟 시스템의 메모리의 할당을 요구할 수 있다. 실시간 운영 체제 구동 시에 도구들이 사용할 수 있는 타겟 메모리 크기를 운영 체제 설정 파일에 세팅할 수 있고, 상기 타겟 메모리 관리자(370)는 처음에는 그 크기만 관리하다가 다 쓰게 되면 타겟 시스템에 추가 요청하여 관리해 준다. 특히, 타겟 억세스(Access) 횟수를 줄이기 위해 논리적인 캐쉬(Cache)를 두어 메모리 관리기에서 관리할 수도 있다. 즉, 상기 실행 모듈 관리기(360)의 로더가 재배치를 수행할 때, 이 캐쉬를 일종의 버퍼처럼 사용하여 재배치가 끝났을 때, 한번만 타겟 메모리에 쓰기를 수행하기도 하고, 캐쉬 블록 별로 속성을 부여하여 실행 모듈의 텍스트 섹션 같은 경우는 타겟 시스템과 똑같은 메모리 카피를 호스트 시스템 상의 이 캐쉬에 둠으로써 타겟 시스템 접근 횟수를 감소시킨다.The target memory manager 370 may request allocation of memory of the target system when the tools require loading an embedded application. The target memory size that can be used by the tools when the real-time operating system is running can be set in the operating system configuration file, and the target memory manager 370 manages only the size at first and then additionally requests and manages the target system when it is used up. give. In particular, in order to reduce the number of target accesses, a logical cache may be provided and managed by the memory manager. That is, when the loader of the execution module manager 360 performs the relocation, the cache is used as a kind of buffer, and when the relocation is completed, the write module may only write to the target memory once, or assign an attribute for each cache block to execute the execution module. In the case of a text section, the number of target system accesses is reduced by placing an exact copy of the target system in this cache on the host system.

상기 통신 벡엔드 관리기(330)는 벡엔드 관리기 내 공통 서비스 루틴, 이더넷, 시리얼과 같은 통신을 지원해주는 각각의 벡엔드들로 이루어져 있다. 각각의 벡엔드들은 DLL로 이루어져 있어 타겟 서버 구동 시 설정에 따라 해당 벡엔드가 타겟 서버 데몬에 링크된다.The communication backend manager 330 is composed of respective backends supporting communication such as common service routines, Ethernet, and serial in the backend manager. Each of the backends consists of DLLs so that the backends are linked to the target server daemons depending on the configuration when the target server is running.

상기 벡엔드 프로토콜(340)은 타겟 에이전트와 통신하기 위하여 필요하다. 상기 프로토콜은 이더넷, 시리얼 통신에 공통적으로 적용된다. 상기 벡엔드 프로토콜(340)은 상기 도구 인터페이스용 프로토콜(320) 중 타겟에 접속이 필요한 APIs를 기능에 따라 몇 가지의 프로토콜로 정의하여 호스트 상의 벡엔드와 타겟 에이젼트 사이에 Call/Return이 반복되게 된다.The backend protocol 340 is needed to communicate with a target agent. The protocol is commonly applied to Ethernet and serial communication. The backend protocol 340 defines APIs that need to be connected to the target among the tool interface protocol 320 as several protocols according to their functions, so that call / return is repeated between the backend on the host and the target agent. .

도 5는 도 4에 도시된 도구 인터페이스 프로토콜의 기능에 따른 분류 테이블로서, 이를 상세히 설명하면 다음과 같다.FIG. 5 is a classification table according to the function of the tool interface protocol shown in FIG. 4.

상기 도구 인터페이스 프로토콜은 호스트 시스템 상의 모든 도구들이 사용할 수 있도록 일반화 시킨 것이다. 따라서, 현재의 개발 환경에 새로운 도구를 추가하는 경우에도 타겟 서버 내부에서 처리하는 방식에 상관없이 상기 프로토콜만 사용하면 된다. 또한 상기 프로토콜은 타겟 에이전트와 접속하기 위해 타겟 서버 장치가 필요한 처리를 수행한 뒤, 필요에 따라 벡엔드 프로토콜을 호출하여 그 결과를 도구에 반환한다. 즉, 상기 프로토콜의 일부는 벡엔드 프로토콜에도 존재하게 되는 것이다. 상기 프로토콜에 대하여 자세히 설명하면 다음과 같다.The tool interface protocol is generalized to all tools on the host system. Therefore, even if a new tool is added to the current development environment, only the above protocol needs to be used regardless of the processing method in the target server. In addition, the protocol performs the necessary processing by the target server device in order to connect with the target agent, and then calls the back-end protocol as needed and returns the result to the tool. In other words, part of the protocol is also present in the back-end protocol. The protocol is described in detail as follows.

상기 호스트 시스템 상의 도구와 타겟 서버 장치 간의 인터페이스 프로토콜은 크게 도구가 타겟 서버와 연결/비연결하거나 타겟 서버 데몬 및 타겟 시스템을 재시작, 타겟 서버 리스트를 확인하는 것과 같은 세션 관리 기능 프로토콜과, 타겟 시스템에 로딩한 실행 파일을 수행하거나 타겟 에이전트 타입을 세팅하기 위한 타겟 정보 및 타겟 오퍼레이션 수행 기능 프로토콜과, 타겟 시스템 심볼 정보 및 로딩할 실행 파일에 관련된 심볼을 추가 삭제하기 위한 심볼 테이블 관리를 위한 프로토콜과, 타겟 메모리의 일부를 타겟 서버 장치의 메모리 관리자가 관리하면서 필요에 따라 타겟의 메모리에 쓰기/읽기 등의 수행할 수 있도록 하기 위한 메모리 관련 프로토콜과, 원격 디버깅 등을 수행하기 위해 컨텍스트를 유지하면서 디버깅 기능을 수행할 수 있는 컨텍스트 관리 및 디버깅 관련 프로토콜과, 도구와 타겟 서버 장치와 타겟 에이전트 간에 주고 받을 수 있는 이벤트 관리 기능을 수행하기 위한 프로토콜로 분류되고, 이들 프로토콜은 세부적으로 총 54 개이고 각각의 프로토콜을 메시지 번호로 정의하여 도구의 서비스 호출 시 타겟 서버 컨트롤기가 서비스를호출할 수 있는 서비스 번호로 사용한다.The interface protocol between the tool on the host system and the target server device is largely related to session management function protocols such as the tool connecting / disconnecting to the target server, restarting the target server daemon and target system, and checking the target server list. A target information and target operation function protocol for executing a loaded executable or setting a target agent type, a protocol for managing a symbol table for adding and deleting target system symbol information and symbols related to an executable to be loaded, and a target Memory-related protocols are managed by the memory manager of the target server device to allow writing / reading to and from the target's memory as needed, and debugging functions are maintained while maintaining the context for remote debugging. Performable It is divided into protocols related to context management and debugging, and protocols for performing event management functions that can be exchanged between tools and target server devices and target agents.These protocols are totally 54 in total, and each protocol is defined as a message number. When calling the tool's service, the target server controller uses it as the service number to call the service.

도 6은 본 발명의 일 실시예에 따른 타겟 서버 장치가 도구에 대한 서비스를 제공하기 위하여 서비스 데몬으로 동작되는 과정을 나타내는 흐름도로서, 이를 상세히 설명하면 다음과 같다.6 is a flowchart illustrating a process in which a target server device operates as a service daemon to provide a service for a tool according to an embodiment of the present invention.

먼저, 스텝 S510에서, 타겟 서버 데몬을 구동시키기 전에 사용하려는 타겟 시스템에 대한 여러 가지 설정 정보를 입력해야 한다. 이는 상기 타겟 서버 컨트롤기(310)가 그래픽 사용자 인터페이스로 실현되면 사용자가 사용하기 편리하기 때문이다. 먼저 타겟 서버(212)와 타겟 에이전트(223)의 통신 방식이 어떤 방식으로 연결될 것인지 선택한다. 예를 들어, 이더넷 방식이라면 타겟 IP 주소, 타임 아웃 등의 정보를 주고, 시리얼 방식이라면 전송 속도(bps), 포트 번호, 타임 아웃 등의 정보를 준다.First, in step S510, various configuration information about the target system to be used must be input before starting the target server daemon. This is because when the target server controller 310 is realized as a graphical user interface, it is convenient for the user. First, a method of communication between the target server 212 and the target agent 223 is selected. For example, the Ethernet type gives information such as a target IP address and time out, and the serial type gives information such as transmission speed (bps), port number, and time out.

이어서, 스텝 S520에서, 여러 가지 실행 파일 형식(OMF: Object Module Format)을 선택하는데 이는 타겟 서버 장치가 여러 실행 파일 형식을 지원할 수 있는 구조로 실현될 수 있기 때문이다. 즉, 상기 실행 모듈 관리기(360)에서 타겟 시스템에 로딩하는데 필요한 공통 로딩 기능은 로더에 두고, 각 OMF 리더(Reader)는 각각 DLL로 실현하여 타겟 서버 장치 구동 시 링크될 수 있게 한 것이다.Subsequently, in step S520, various executable file formats (OMFs) are selected because the target server apparatus can be realized in a structure capable of supporting various executable file formats. That is, the common loading function necessary to load the target system in the execution module manager 360 is placed in the loader, and each OMF reader is realized as a DLL so that the link can be executed when the target server device is driven.

이어서, 스텝 S530에서, 타겟 시스템 심볼 테이블을 타겟 서버 장치가 유지하기 위해 타겟 시스템에 탑재된 실시간 운영 체제 실행 파일을 선택한 후, 스텝 S540에서, 하나의 호스트 시스템에는 여러 개의 타겟 시스템을 연결할 수도 있으므로 한 타겟 시스템 당 하나의 타겟 서버 장치 즉, 여러 개의 타겟 서버 장치가 데몬 형식으로 동작할 수 있으므로 이들 간의 구분자로서 타겟 서버 이름을 부여할 수 있도록 실현한다. 이렇게 타겟 서버 장치를 구동하기 위한 설정이 끝나면, 스텝 S550에서, 타겟 서버 시작 요청을 상기 타겟 서버 컨트롤기(310)에게 한다.Subsequently, in step S530, after selecting the real-time operating system executable file mounted in the target system to maintain the target system symbol table in the target server device, in step S540, a plurality of target systems may be connected to one host system. Since one target server device, that is, several target server devices per target system, may operate in a daemon format, the target server name may be given as a separator between them. When the setting for driving the target server device is completed in this way, in step S550, a target server start request is made to the target server controller 310.

이어서, 스텝 S560에서, 같은 이름, 혹은 같은 IP의 타겟 서버가 존재하는지 판단한다.Next, in step S560, it is determined whether a target server of the same name or the same IP exists.

상기 스텝 S560에서의 판단 결과, 타겟 서버가 존재하면, 상기 스텝 S510으로 복귀하고, 존재하지 아니하면, 스텝 S570에서, 설정한 통신 벡엔드.dll을 상기 통신 벡엔드 관리기(330)를 통해 구동한 후, 스텝 S580에서, 타겟 서버 장치의 타겟 시스템에서의 대응 요소인 상기 타겟 에이전트(223)와 연결을 시도하고, 타겟 시스템에 필요한 정보, 예를 들어, 도구가 사용하는 타겟 메모리 시작 주소 및 크기 등을 반환받아 타겟 서버 초기화에 사용한다.As a result of the determination in step S560, if the target server exists, the process returns to step S510. If not, in step S570, the set communication backend.dll is driven through the communication backend manager 330. Then, in step S580, a connection is attempted with the target agent 223, which is a corresponding element in the target system of the target server apparatus, and information necessary for the target system, for example, a target memory start address and size used by the tool, etc. It is returned and used to initialize the target server.

이어서, 스텝 S590에서, 해당 OMF.dll을 구동하고, 스텝 S592에서, 타겟 운영 체제 실행 파일을 읽어서, 운영 체제 파일을 코딩한다.Next, in step S590, the corresponding OMF.dll is driven. In step S592, the target operating system executable file is read to code an operating system file.

마지막으로, 스텝 S594에서, 에러 처리 등 타겟 서버 내부 모듈들을 초기화한 후, 스텝 S596에서, 타겟 서버 데몬이 구동된다.Finally, in step S594, after initializing the target server internal modules such as error processing, in step S596, the target server daemon is driven.

도 7은 본 발명의 일 실시예에 따른 타겟 서버 장치가 데몬으로 작동하고 있으면서, 호스트 상의 여러 개발 도구와 타겟 에이전트(223)의 서비스 요청을 받아들여 서비스해 주는 과정을 나타낸 흐름도로서, 이를 상세히 설명하면 다음과 같다.7 is a flowchart illustrating a process of receiving and servicing a service request from various development tools and a target agent 223 on a host while the target server device operates as a daemon according to an embodiment of the present invention. Is as follows.

먼저, 스텝 S610에서, 타겟 서버 데몬에 대한 종료 요청이 있는지를 판단하여, 종료 요청이 있으면, 데몬이 종료되고, 종료 요청이 없으면, 스텝 S620에서, 호스트 시스템 상의 도구(211)나 타겟 에이전트(223)의 이벤트에 대하여 대기 상태로 설정된다.First, in step S610, it is determined whether there is a termination request for the target server daemon, and if there is a termination request, the daemon is terminated. If there is no termination request, in step S620, the tool 211 or the target agent 223 on the host system are displayed. ) Is set to the standby state for the event.

임의의 도구가 타겟 서버의 서비스를 받기 위해 최초로 사용하는 프로토콜은 도 5의 TOOL_ATTACH인데, 타겟 서버 데몬은 상기 프로토콜을 받으면 도구들을 구별할 수 있는 구분자를 배당하게 되고, 이를 이용하여 이하 다른 프로토콜을 사용할 수 있도록 되어 있으므로, 스텝 S630에서, 타겟 서버는 임의의 도구가 최초로 요청하는 서비스를 판단한다.The first protocol used by any tool to receive the services of the target server is TOOL_ATTACH of FIG. 5, and when the target server daemon receives the protocol, the target server daemon allocates a delimiter for distinguishing tools. In step S630, the target server determines the service requested by any tool first.

상기 스텝 S630에서의 판단 결과, 최초의 요청이면, 스텝 S640에서, 해당 서비스를 찾아서 관련된 프로세스를 수행한 후, 스텝 S642에서, 다른 도구의 서비스 요청과 구분하기 위한 구분자를 부여해 준 후, 상기 스텝 S620의 복귀한다.As a result of the determination in step S630, if it is the first request, in step S640, the service is found and the related process is performed. In step S642, a separator for distinguishing it from the service request of another tool is provided. Will return.

상기 스텝 S630에서의 판단 결과, 최초 요청이 아니면, 스텝 S650에서, 타겟 시스템에서 도착한 이벤트인지, 호스트 시스템 상의 도구(211)가 타겟 서버 데몬과 연결되고 난 이후의 서비스 요청인지를 판단한다,As a result of the determination in step S630, if it is not the first request, in step S650, it is determined whether the event arrives from the target system or the service request after the tool 211 on the host system is connected to the target server daemon.

상기 스텝 S650에서의 판단 결과, 타겟 시스템에서 도착한 이벤트이면, 스텝 S660에서, 해당 도구에게 전달하여 준 후, 상기 스텝 S620으로 복귀하고, 도구의 요청이면, 스텝 S670에서, 해당 서비스를 찾은 후, 스텝 S672에서, 서비스 요청 인자로 받은 도구의 구분자를 확인하여, 스텝 S674에서, 해당 도구에게 원하는 서비스를 제공한 후, 상기 스텝 S620으로 복귀한다.As a result of the determination in step S650, if the event arrives at the target system, the controller returns to step S620 after delivering to the tool in step S660, and if requested by the tool, finds the corresponding service in step S670, and then In step S672, the identifier of the tool received as the service request argument is checked, and in step S674, the desired service is provided to the tool, and the flow returns to step S620.

도 7에서 보는 바와 같이, 타겟 서버 데몬은 도구와 타겟의 이벤트를 받아처리하고 나면 다음 서비스 요청을 위해 항상 대기하고 있다.As shown in Fig. 7, the target server daemon always waits for the next service request after receiving the tool and the target event.

도 8은 본 발명의 일 실시예에 다른 타겟 서버 장치 내의 각 요소 간의 관계를 표현하기 위해 호스트에서 교차 컴파일(Cross Compile)한 내장형 소프트웨어를 타겟 서버 장치를 이용하여 타겟에 로딩하여 실행하는 과정을 나타낸 흐름도로서, 이를 상세히 설명하면 다음과 같다.FIG. 8 illustrates a process of loading and executing embedded software cross-compiled in a host using a target server device to express a relationship between elements in another target server device according to an embodiment of the present invention. As a flow chart, this will be described in detail as follows.

먼저, 교차 컴파일이 끝난 후, 원격 디버거나 대화형 쉘과 같은 도구들은 이 실행 파일을 타겟 시스템에 로딩하여 호스트 시스템 상에서 시험하면서 프로그램의 오류를 찾아가게 된다. 이를 위해서 호스트 개발 도구들(211)은 스텝 S710에서, 실행 파일 로딩에 관련된 프로토콜(OBJ_MODULE_LOAD) 사용 서비스를 요청하게 되고, 타겟 서버 컨트롤기는 해당 API를 호출하게 된다. 타겟 서버 내부에서 이를 해결 해주는 모듈은 도 4에 있는 상기 실행 모듈 관리기(360)의 로더와 실행 파일 형식에 따라 읽어들일 수 있는 리더이다.First, after cross-compilation, tools such as remote debuggers and interactive shells load this executable into the target system and test it on the host system to find the program's error. To this end, in step S710, the host development tools 211 request a service (OBJ_MODULE_LOAD) using service related to the execution file loading, and the target server controller calls the corresponding API. The module that solves this in the target server is a reader that can be read according to the loader and executable file format of the execution module manager 360 in FIG.

이어서, 스텝 S720에서, 로더가 실행 파일 형식에 따라 실행 파일을 해독할 수 있는 리더에게 실행 파일에 대한 정보를 요청하면, 스텝 S730에서, 리더는 헤더를 읽어서 해당 파일에 대한 정보를 로더에게 반환한 후, 스텝 S740에서, 리더는 해당 실행 파일 관련된 심볼들을 추가해줄 것을 심볼 테이블 관리기에게 요청한다.Subsequently, in step S720, when the loader requests information about the executable file from a reader capable of decoding the executable file according to the executable file format, in step S730, the reader reads the header and returns information about the file to the loader. Then, in step S740, the reader requests the symbol table manager to add the relevant executable file related symbols.

이어서, 스텝 S750에서, 상기 심볼 테이블 관리기(350)는 심볼을 추가하는데, 이 때 심볼은 여러 타입으로 분류되고, 다른 실행 파일과 관련된 심볼과 구분하기 위해 ID를 저장하도록 설계하였다. 상기 심볼 테이블 관리기(350)가 해당 심볼들을 저장하고 난 후에, 스텝 S760에서, 로더는 리더에게 텍스트, 데이터 등의세그먼트(Segment) 정보를 요청한다.Subsequently, in step S750, the symbol table manager 350 adds a symbol, where the symbol is classified into various types and designed to store an ID to distinguish it from a symbol associated with another executable file. After the symbol table manager 350 stores the symbols, in step S760, the loader requests segment information such as text and data from the reader.

이어서, 스텝 S770에서, 리더는 세그먼트 정보를 반환하고 상기 타겟 메모리 관리기(370)에게 세그먼트 별로 캐쉬에 저장해 줄 것을 요청하면, 스텝 S780에서, 재배치의 필요 유무를 판단하여, 재배치가 필요하면, 스텝 S790에서, 로더가 재배치를 수행하고, 그러하지 아니하면, 스텝 S792에서, 상기 타겟 메모리 관리기(370)는 세그먼트 주소를 계산하여, 필요한 메모리 크기를 확보하여야 한다. 이 때, 도구가 사용하기 위해 고정적으로 할당 받은 타겟 메모리 크기가 부족하면 메모리를 추가적으로 할당 받아 상기 타겟 메모리 관리기(370)가 관리하는 메모리 풀에 추가해야 한다.Subsequently, in step S770, when the reader returns segment information and requests the target memory manager 370 to store the cache for each segment, in step S780, it is determined whether relocation is necessary, and if relocation is necessary, step S790 In step S792, the loader performs relocation, otherwise, in step S792, the target memory manager 370 should calculate the segment address to secure the required memory size. At this time, if the target memory size fixedly allocated for use by the tool is insufficient, additional memory is allocated and added to the memory pool managed by the target memory manager 370.

이어서, 각 세그먼트를 타겟에 쓰기 위한 메모리가 확보된 후, 스텝 S794에서, 상기 타겟 메모리 관리기(370)는 상기 통신 벡엔드 관리기(330)에게 상기 타겟 메모리 관리기(370)를 통해 계산한 주소에 쓰기 요청을 한 후, 호스트 시스템에서 타겟 시스템으로 하나의 내장형 소프트웨어를 로딩하고 나면, 스텝 S796에서, 호스트 시스템 상의 도구(211)는 실행에 관련된 도구 인터페이스 프로토콜(FUNC_CALL, DIRECT_CALL)을 사용하여 실행 요청을 하며, 로딩된 소프트웨어가 타겟 시스템에서 잘 동작되는 지 확인해 볼 수 있고, 문제가 발견되면, 타겟 서버 장치가 제공하는 해당 프로토콜을 이용하여 해결해 나갈 수 있다.Then, after the memory for writing each segment to the target is secured, in step S794, the target memory manager 370 writes to the communication backend manager 330 at an address calculated by the target memory manager 370. After making the request, after loading the embedded software from the host system to the target system, in step S796, the tool 211 on the host system makes a request for execution using the tool interface protocols (FUNC_CALL, DIRECT_CALL) related to execution. If the loaded software works well on the target system, and if a problem is found, it can be solved using the corresponding protocol provided by the target server device.

상기와 같은 본 발명은 컴퓨터로 읽을 수 있는 기록 매체로 기록되고, 컴퓨터에 의해 처리될 수 있다.The present invention as described above is recorded on a computer-readable recording medium, and can be processed by a computer.

앞서 상세히 설명한 바와 같이 본 발명의 타겟 서버 장치는 도구와 호스트 시스템 사이의 통신, 심볼 테이블 관리, 타겟 메모리 관리, 실행 파일 관리 등을 모두 책임짐으로써, 도구들이 타겟 시스템에 접근하여 원격 개발하기 위해 필요한 기능을 도구 인터페이스 프로토콜을 사용하는 것으로 모두 해결해 주어, 새로운 도구를 추가하기가 매우 용이하다는 효과가 있다.As described in detail above, the target server device of the present invention is responsible for all communication between the tool and the host system, symbol table management, target memory management, and executable file management, so that tools are required for remote development by accessing the target system. This solves all the functions by using the tool interface protocol, which makes it very easy to add new tools.

또한, 도구 - 타겟 시스템 간의 채널을 타겟 서버 장치가 일원화하여 관리해줌으로써, 타겟 시스템의 자원을 절약해 주는 효과가 있고, 타겟 서버 장치의 심볼 테이블 관리기, 타겟 메모리 관리기를 통해 호스트-타겟 통신 횟수를 절감시킬 수 있는 효과가 있다.In addition, since the target server device centralizes and manages the channel between the tool and the target system, the resource of the target system is saved, and the number of host-target communication is reduced through the symbol table manager and the target memory manager of the target server device. It can be effected.

이상에서 본 발명에 대한 기술 사상을 첨부 도면과 함께 서술하였지만 이는 본 발명의 가장 양호한 일 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술 분야의 통상의 지식을 가진 자이면 누구나 본 발명의 기술 사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.The technical spirit of the present invention has been described above with reference to the accompanying drawings, but this is by way of example only and not by way of limitation to the present invention. In addition, it is obvious that any person skilled in the art may make various modifications and imitations without departing from the scope of the technical idea of the present invention.

Claims (16)

타겟 시스템에서 운영되는 내장형 실시간 소프트웨어를 호스트 시스템 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버 제어 장치에 있어서,In the target server control device for remote development of embedded real-time software running on the target system using a development tool on the host system, 기 설정한 플래그를 반영하여 그 특성에 맞게 상기 타겟 서버를 구동시키고, 상기 호스트 시스템 상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 기능을 수행하는 타겟 서버 컨트롤기와;A target server controller configured to reflect the preset flag and to operate the target server according to its characteristics, and to interpret a function requested by a tool on the host system and to call a service corresponding thereto; 상기 도구를 접속하기 위한 인터페이스를 제공하는 도구 인터페이스 프로토콜과;A tool interface protocol providing an interface for connecting the tool; 상기 타겟 서버 컨트롤기에 의하여 호출된 서비스에 따라, 상기 타겟 시스템의 시스템 심볼 테이블과 상기 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리하는 기능을 수행하는 심볼 테이블 관리기와;A symbol table manager that manages information about a system symbol table of the target system and subroutines, variables, and module ids of all execution modules loaded in the target system according to a service called by the target server controller. Wow; 상기 호스트 시스템에 있는 실행 모듈을 타겟 시스템에 로딩/언로딩하는 기능, 상기 로딩된 실행 모듈 파일을 상기 호스트 시스템 상에서 관리하여 실행 가능한 형태로 만드는 기능을 수행하는 실행 모듈 관리기와;An execution module manager configured to load / unload an execution module in the host system to a target system and to manage the loaded execution module file on the host system to make an executable form; 상기 타겟 시스템의 도구가 사용하는 메모리를 관리해주는 타겟 메모리 관리기와;A target memory manager for managing a memory used by the tool of the target system; 타겟 서버 구동시 상기 호스트 시스템 상의 도구들과 상기 타겟 시스템이 통신할 수 있도록 하는 통신 백엔드 관리기를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 제어 장치.And a communication backend manager configured to allow the target system to communicate with the tools on the host system when the target server is running. 제 1 항에 있어서,The method of claim 1, 상기 타겟 메모리 관리기는 상기 타겟 시스템의 억세스(Acess) 횟수를 줄이기 위해 논리적인 캐쉬부를 포함하는 것을 특징으로 하는 타겟 서버 제어 장치.And the target memory manager comprises a logical cache to reduce the number of accesses of the target system. 제 1 항에 있어서,The method of claim 1, 상기 실행 모듈 관리기는,The execution module manager, 상기 타겟 시스템에 로딩된 모듈 리스트가 여러 가지 형식의 파일이면, 상기 타겟 서버 구동시에 해당되는 파일 형식을 지원하여 주는 로더부를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치.If the module list loaded in the target system is a file of various formats, the target server device characterized in that it comprises a loader for supporting a file format corresponding to the driving of the target server. 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 제어 방법에 있어서,In a method of controlling a target server to remotely develop embedded real-time software operating in a target system using a development tool on a host system, 기 설정한 플래그(Flag)를 반영하여 그 특성에 맞게 상기 타겟 서버를 구동시키고, 상기 호스트 시스템 상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 제 1 단계와;A first step of driving the target server according to a characteristic by reflecting a preset flag, interpreting a function requested by a tool on the host system, and calling a service corresponding thereto; 상기 제 1 단계에서 호출된 서비스에 따라, 상기 타겟 시스템의 시스템 심볼 테이블과 상기 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리하여 상기 호스트 시스템에 있는 실행 파일을 상기 타겟 시스템에 로딩/언로딩한 후, 로딩된 모듈 리스트를 상기 호스트 시스템 상에서 관리하는 제 2 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 제어 방법.According to the service called in the first step, the information on the system symbol table of the target system and the subroutines, variables, and module ids of all the execution modules loaded on the target system is managed to execute the executable file on the host system. And loading and unloading the target system, and then managing the loaded module list on the host system. 제 4 항에 있어서,The method of claim 4, wherein 상기 타겟 시스템의 도구가 내장형 응용을 로딩 요구하면, 사용할 메모리를 할당하며, 억세스(Access) 횟수를 줄이기 위하여 논리적인 캐쉬 기능을 수행하는 제 3 단계를 더 포함하여 이루어진 것을 특징으로 하는 타겟 서버 제어 방법.And a third step of allocating a memory to be used when the tool of the target system requests loading of an embedded application and performing a logical cache function to reduce the number of accesses. . 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 장치가 호스트 시스템 상의 도구에 대한 서비스를 하기 위하여 서비스 데몬(Service Demon)으로 작동하는 방법에 있어서,A target server device that enables remote development of embedded real-time software running on a target system using a development tool on a host system is provided in a tool on the host system. In order to act as a service daemon (Service Demon) to service the 상기 타겟 시스템에 대한 여러 가지 설정 정보를 입력하고, 상기 호스트 시스템의 타겟 서버와 통신을 담당하는 기능을 수행하는 타겟 에이전트(Target Agent)의 통신 방식에 따라, 통신 방식을 선택하는 제 1 단계와;A first step of inputting various setting information about the target system and selecting a communication method according to a communication method of a target agent performing a function of communicating with a target server of the host system; 상기 제 1 단계에서 입력된 설정 정보 및 상기 호스트 시스템 상의 개발 도구에서 입력된 정보에 따라 변환하고자 하는 실행 파일 형식(OMF: Object Module Format)을 선택한 후, 상기 타겟 시스템의 운영 체제 파일을 선택하고, 상기 타겟 서버의 작동 시작 요청을 하는 제 2 단계와;After selecting the executable file format (OMF: Object Module Format) to be converted according to the configuration information input in the first step and the information input from the development tool on the host system, select an operating system file of the target system, A second step of making an operation start request of the target server; 상기 제 2 단계에서의 작동 시작 요청이 있으면, 상기 타겟 서버와 상기 타겟 에이전트와의 연결을 수행하여, 필요한 정보를 상기 타겟 서버에 전송한 후, 상기 타겟 시스템의 운영 체제 실행 파일을 읽어서, 타겟 시스템 심볼 테이블을 작성하고, 상기 타겟 서버를 초기화하여 타겟 서버 데몬을 구동하는 제 3 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치의 서비스 데몬 작동 방법.If there is a request to start operation in the second step, the target server and the target agent are connected, and necessary information is transmitted to the target server, and then the operating system executable file of the target system is read and the target system is read. And a third step of creating a symbol table and initializing the target server to drive a target server daemon. 제 6 항에 있어서,The method of claim 6, 상기 제 1 단계는,The first step is, 상기 타겟 서버와 상기 타겟 에이전트의 통신 방식이 이더넷(Ethernet) 방식이면, 타겟 IP 주소 및 타임 아웃등의 정보를 주고, 시리얼(Serial) 방식이면, 전송 속도, 포트 번호 및 타임 아웃등의 정보를 주는 것을 특징으로 하는 타겟 서버 장치의 서비스 데몬 작동 방법.If the communication method between the target server and the target agent is an Ethernet method, information such as a target IP address and a timeout is provided, and if a serial method, information such as a transmission speed, a port number, and a timeout is provided. Service daemon operating method of the target server device, characterized in that. 제 6 항에 있어서,The method of claim 6, 상기 제 2 단계는,The second step, 하나의 호스트 시스템에 여러 개의 타겟 시스템이 연결되어 있으면, 한 타겟 시스템 당 하나의 타겟 서버 장치가 데몬 형식으로 동작할 수 있도록 각각의 타겟 서버 이름을 부여하는 서브 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치의 서비스 데몬 작동 방법.If a plurality of target systems are connected to one host system, a target step comprising the step of assigning each target server name so that one target server device in each target system can operate in the form of daemon How the service daemon works on server devices. 제 6 항 또는 제 8 항에 있어서,The method of claim 6 or 8, 상기 제 3 단계는,The third step, 상기 제 2 단계에서의 작동 시작 요청이 있은 후, 같은 이름 또는 같은 IP의 타겟 서버가 존재하면, 상기 제 1 단계로 복귀하는 것을 특징으로 하는 타겟 서버 장치의 서비스 데몬 작동 방법.And if there is a target server of the same name or the same IP after the operation start request in the second step, returning to the first step. 타겟 서버(Target Server) 장치를 이용하여, 호스트 시스템 상에서 교차 컴파일(Cross Compile)한 내장형 소프트웨어를 타겟 시스템에 로딩하여 원격 개발하는 방법에 있어서,In the target server (Target Server) device, cross-compile (Cross Compile) embedded software on the host system by loading the target system in a remote development method, 상기 호스트 시스템 상의 개발 도구들이 서비스를 요청하면, 실행 파일 형식에 따라 해독할 수 있는 정보 및 해당 실행 파일에 관련된 심볼(Symbol)들을 추출하는 제 1 단계와;A first step of extracting decodable information and symbols related to the executable file when the development tools on the host system request a service; 상기 제 1 단계에서 추출한 정보 및 심볼에 관련된 텍스트 및 데이터 등의 세그먼트(Segment) 정보를 추출하여, 내장형 소프트웨어를 로딩하는 제 2 단계와;A second step of extracting segment information such as text and data related to the information and symbol extracted in the first step and loading embedded software; 상기 제 2 단계에서 로딩된 내장형 소프트웨어를 실행하여 정확성 검사를 수행하는 제 3 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치를 이용한 내장형 소프트웨어의 원격 개발 방법.And a third step of performing an accuracy test by executing the embedded software loaded in the second step. 제 10 항에 있어서,The method of claim 10, 상기 제 1 단계는,The first step is, 추출하고자 하는 심볼과 다른 실행 파일과 관련된 심볼을 구별하기 위하여 각각의 심볼에게 고유의 ID를 부여하는 서브 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치를 이용한 내장형 소프트웨어의 원격 개발 방법.And a sub-step of assigning a unique ID to each symbol in order to distinguish a symbol to be extracted from a symbol associated with another executable file. 제 10 항 또는 제 11 항에 있어서,The method of claim 10 or 11, 상기 제 2 단계는,The second step, 추출된 세그먼트 정보를 캐쉬에 저장한 후, 각각의 세그먼트 별로 재배치가필요한지 여부를 판단하는 제 1 서브 단계와;A first sub step of determining whether relocation is required for each segment after storing the extracted segment information in a cache; 상기 제 1 서브 단계에서의 판단 결과, 재배치가 필요하면, 각각의 세그먼트 별로 재배치를 수행한 후, 각각의 세그먼트 주소를 계산하여 쓰기(Write)를 수행하고, 재배치가 필요하지 아니하면, 바로 내장형 소프트웨어를 로딩하는 제 2 서브 단계를 포함하여 이루어진 것을 특징으로 하는 타겟 서버 장치를 이용한 내장형 소프트웨어의 원격 개발 방법.As a result of the determination in the first sub-step, if relocation is necessary, after relocation is performed for each segment, each segment address is calculated to write, and if relocation is not necessary, the embedded software is immediately Remote development method of embedded software using the target server device, characterized in that it comprises a second sub-step of loading. 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server)와 상기 호스트 시스템 상의 개발 도구들과의 통신을 위하여,Target server and development tool on the host system for remote development of embedded real-time software running on the target system using a development tool on the host system To communicate with the field, 상기 호스트 시스템 상의 개발 도구와 상기 타겟 서버와의 연결, 비연결 상태를 나타내거나, 상기 타겟 서버 데몬 및 상기 타겟 시스템을 재시작하거나, 상기 타겟 서버의 리스트를 확인하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 세션 관리 영역과;It can be input, modified, inquired and deleted to indicate the connection and disconnection status between the development tool on the host system and the target server, restart the target server daemon and the target system, or check the list of the target server. A session management area; 상기 타겟 시스템에 로딩한 실행 파일을 수행하거나, 상기 호스트의 타겟 서버와 내장형 소프트웨어의 실시간 커널과의 통신을 담당할 타겟 에이전트에 관한 유형을 세팅하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 타겟 정보 및 타겟 오퍼레이션 영역과;Target information that can be entered, modified, inquired, and deleted to execute an executable file loaded on the target system or to set a type of a target agent to be in communication with the real-time kernel of the embedded server and the target server of the host; A target operation area; 상기 타겟 시스템 심볼 정보 및 로딩할 실행 파일에 관련된 심볼의 테이블 관리를 위하여 입력, 수정, 조회 및 삭제할 수 있는 심볼 관리 영역과;A symbol management area capable of inputting, modifying, retrieving, and deleting the target system symbol information and a table of symbols related to executable files to be loaded; 상기 타겟 시스템의 메모리의 일부를 필요에 따라 쓰기 및 읽기를 수행하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 메모리 관련 영역과;A memory-related area capable of inputting, modifying, viewing, and deleting a part of the memory of the target system as necessary to perform writing and reading; 컨텍스트(Context)를 유지하면서, 디버깅 기능을 수행하기 위하여 입력, 수정, 조회 및 삭제할 수 있는 컨텍스트 관리 및 디버깅 영역과;A context management and debugging area capable of inputting, modifying, viewing, and deleting to perform debugging functions while maintaining a context; 상기 호스트 시스템 상의 개발 도구, 상기 타겟 서버 장치 및 상기 타겟 에이전트간에 주고 받을 수 있는 이벤트 관리를 위하여 입력, 수정, 조회 및 삭제할 수 있는 이벤트 관리 영역을 포함하여 이루어진 것을 특징으로 하는 타겟 서버(Target Server)와 상기 호스트 시스템 상의 개발 도구들과의 통신 데이터를 기록한 컴퓨터로 읽을 수 있는 기록 매체.Target server characterized in that it comprises an event management area that can be input, modified, inquired and deleted for event management that can be exchanged between the development tool on the host system, the target server device and the target agent. And recording data in which communication data with the development tools on the host system is recorded. 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 제어 프로그램을 실행시킬 수 있는 컴퓨터로 읽을 수 있는 기록 매체에 있어서,A target server control program can be executed to remotely develop embedded real-time software running on a target system using a development tool on a host system. In the computer-readable recording medium, 기 설정한 플래그(Flag)를 반영하여 그 특성에 맞게 상기 타겟 서버를 구동시키고, 상기 호스트 시스템 상의 도구가 요청한 기능을 해석하여 거기에 맞는 서비스를 호출해 주는 제 1 단계와;A first step of driving the target server according to a characteristic by reflecting a preset flag, interpreting a function requested by a tool on the host system, and calling a service corresponding thereto; 상기 제 1 단계에서 호출된 서비스에 따라, 상기 타겟 시스템의 시스템 심볼 테이블과 상기 타겟 시스템에 로딩된 모든 실행 모듈들의 서브루틴, 변수 및 모듈 id에 대한 정보를 관리하여 상기 호스트 시스템에 있는 실행 파일을 상기 타겟 시스템에 로딩/언로딩한 후, 로딩된 모듈 리스트를 상기 호스트 시스템 상에서 관리하는 제 2 단계를 포함하여 이루어진 것을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.According to the service called in the first step, the information on the system symbol table of the target system and the subroutines, variables, and module ids of all the execution modules loaded on the target system is managed to execute the executable file on the host system. And a second step of managing the loaded module list on the host system after loading / unloading the target system. 타겟 시스템(Target System)에서 운영되는 내장형 실시간 소프트웨어(Embedded Real-Time Software)를 호스트 시스템(Host System) 상의 개발 도구를 이용하여 원격 개발할 수 있도록 하는 타겟 서버(Target Server) 장치가 호스트 시스템 상의 도구에 대한 서비스를 하기 위하여 서비스 데몬(Service Demon)으로 작동하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서,A target server device that enables remote development of embedded real-time software running on a target system using a development tool on a host system is provided in a tool on the host system. In a computer-readable recording medium that records a program that operates as a service daemon to service a service, 상기 타겟 시스템에 대한 여러 가지 설정 정보를 입력하고, 상기 호스트 시스템의 타겟 서버와 통신을 담당하는 기능을 수행하는 타겟 에이전트(Target Agent)의 통신 방식에 따라, 통신 방식을 선택하는 제 1 단계와;A first step of inputting various setting information about the target system and selecting a communication method according to a communication method of a target agent performing a function of communicating with a target server of the host system; 상기 제 1 단계에서 입력된 설정 정보 및 상기 호스트 시스템 상의 개발 도구에서 입력된 정보에 따라 변환하고자 하는 실행 파일 형식(OMF: Object Module Format)을 선택한 후, 상기 타겟 시스템의 운영 체제 파일을 선택하고, 상기 타겟서버의 작동 시작 요청을 하는 제 2 단계와;After selecting the executable file format (OMF: Object Module Format) to be converted according to the configuration information input in the first step and the information input from the development tool on the host system, select an operating system file of the target system, A second step of making an operation start request of the target server; 상기 제 2 단계에서의 작동 시작 요청이 있으면, 상기 타겟 서버와 상기 타겟 에이전트와의 연결을 수행하여, 필요한 정보를 상기 타겟 서버에 전송한 후, 상기 타겟 시스템의 운영 체제 실행 파일을 읽어서, 타겟 시스템 심볼 테이블을 작성하고, 상기 타겟 서버를 초기화하여 타겟 서버 데몬을 구동하는 제 3 단계를 포함하여 이루어진 것을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.If there is a request to start operation in the second step, the target server and the target agent are connected, and necessary information is transmitted to the target server, and then the operating system executable file of the target system is read and the target system is read. And a third step of creating a symbol table and initializing the target server to drive a target server daemon. 타겟 서버(Target Server) 장치를 이용하여, 호스트 시스템 상에서 교차 컴파일(Cross Compile)한 내장형 소프트웨어를 타겟 시스템에 로딩하여 원격 개발하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체에 있어서,A computer-readable recording medium having recorded thereon a program for remote development by loading embedded software cross-compiled on a host system by using a target server device in a target system, 상기 호스트 시스템 상의 개발 도구들이 서비스를 요청하면, 실행 파일 형식에 따라 해독할 수 있는 정보 및 해당 실행 파일에 관련된 심볼(Symbol)들을 추출하는 제 1 단계와;A first step of extracting decodable information and symbols related to the executable file when the development tools on the host system request a service; 상기 제 1 단계에서 추출한 정보 및 심볼에 관련된 텍스트 및 데이터 등의 세그먼트(Segment) 정보를 추출하여, 내장형 소프트웨어를 로딩하는 제 2 단계와;A second step of extracting segment information such as text and data related to the information and symbol extracted in the first step and loading embedded software; 상기 제 2 단계에서 로딩된 내장형 소프트웨어를 실행하여 정확성 검사를 수행하는 제 3 단계를 포함하여 이루어진 것을 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.And a third step of performing an accuracy check by executing the embedded software loaded in the second step.
KR1019990046545A 1999-10-26 1999-10-26 Target server apparatus in remote development environments for embedded real - time software and controlling method thereof KR100334903B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990046545A KR100334903B1 (en) 1999-10-26 1999-10-26 Target server apparatus in remote development environments for embedded real - time software and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990046545A KR100334903B1 (en) 1999-10-26 1999-10-26 Target server apparatus in remote development environments for embedded real - time software and controlling method thereof

Publications (2)

Publication Number Publication Date
KR20010038541A KR20010038541A (en) 2001-05-15
KR100334903B1 true KR100334903B1 (en) 2002-05-02

Family

ID=19616913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990046545A KR100334903B1 (en) 1999-10-26 1999-10-26 Target server apparatus in remote development environments for embedded real - time software and controlling method thereof

Country Status (1)

Country Link
KR (1) KR100334903B1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100461535B1 (en) * 2001-11-02 2004-12-14 한국전자통신연구원 Apparatus and Implementation Method of Retargettable Incremental Linking Loarder for Embedded Systems
KR100550477B1 (en) 2003-12-13 2006-02-10 한국전자통신연구원 Driver agent device for support of remote device driver develop environment in the embedded system and operation method thereof
KR100555357B1 (en) * 2004-06-17 2006-02-24 한국과학기술정보연구원 Embodiment method for automating cross compile in different system, and storage media for having program source thereof
KR100656928B1 (en) * 2004-12-03 2006-12-12 한국전자통신연구원 Tool-chain operation method for the embedded system
KR101019209B1 (en) * 2007-04-25 2011-03-04 이화여자대학교 산학협력단 Device of automatically extracting Interface of Embedded Software and Method thereof
EP2541394A4 (en) 2010-02-23 2014-09-03 Inn-Sung Bang Remote application development intermediation system for intermediating program's development contract and development using client's virtual development configuration and method for intermediating remote program development
US8914815B2 (en) 2013-05-18 2014-12-16 Red Hat, Inc. Automated framework for tracking and maintaining kernel symbol list types
US9553764B2 (en) 2013-07-17 2017-01-24 Red Hat Israel, Ltd. Migration of guest bridge
CN113485739A (en) * 2021-07-21 2021-10-08 深圳锦弘霖科技有限公司 Method for carrying out module cutting maintenance on self-developed RTOS

Also Published As

Publication number Publication date
KR20010038541A (en) 2001-05-15

Similar Documents

Publication Publication Date Title
US6928543B2 (en) System for real-time adaptation to changes in display configuration
CA2340969C (en) Method for replacing a device driver during system operation
US6356932B1 (en) Data processing method and device
CN100385386C (en) Display picture during period of leading and turn-off computer
CN112035172B (en) Operating system starting method, device, server and storage medium
US20040268359A1 (en) Computer-readable medium, method and computer system for processing input/output requests
US20040177361A1 (en) Generic application program interface for native drivers
US6584487B1 (en) Method, system, and apparatus for managing tasks
WO2009027474A2 (en) Method, server and system for converging desktop application and web application
CN109684573B (en) Target picture display method and device, storage medium and electronic equipment
KR100334903B1 (en) Target server apparatus in remote development environments for embedded real - time software and controlling method thereof
US7100162B2 (en) System and method for process management
US6366297B1 (en) System and method for displaying modem information on a graphical user interface display
US20090138548A1 (en) Apparatus, method, and computer program product for processing information
US7996524B2 (en) Controlling external communication of embedded device using proxy server
CN113626276B (en) Method, system, terminal and storage medium for identifying type of server HBA card
US6598049B1 (en) Data structure identifying method and recording medium
CN116954824A (en) Runtime system supporting multi-process mixed operation of multiple extended reality (XR) technical specification application programs and 2D application programs, data interaction method, device and medium
JP3993342B2 (en) How to suspend / resume processing in an electronic computer
US6636964B1 (en) Method and apparatus for loading an object-oriented operating system by providing an initial execution environment and migrating to a core execution environment thereafter
JP2000163345A (en) Device control system, information registering method, device utilizing method and storage medium recording computer program
CN111813574A (en) Picture compression method and device, storage medium and electronic equipment
JP2004094800A (en) Program simulation device and its method
KR100406953B1 (en) Run-time debugging method for a real time operating system
CN115543355A (en) Compatible processing method and device of ARM server and computer equipment

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: 20100401

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee