KR100461535B1 - 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법 - Google Patents

내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법 Download PDF

Info

Publication number
KR100461535B1
KR100461535B1 KR10-2001-0068232A KR20010068232A KR100461535B1 KR 100461535 B1 KR100461535 B1 KR 100461535B1 KR 20010068232 A KR20010068232 A KR 20010068232A KR 100461535 B1 KR100461535 B1 KR 100461535B1
Authority
KR
South Korea
Prior art keywords
symbol
target
linking
file
information
Prior art date
Application number
KR10-2001-0068232A
Other languages
English (en)
Other versions
KR20030037125A (ko
Inventor
임채덕
표창우
우덕균
김흥남
김채규
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2001-0068232A priority Critical patent/KR100461535B1/ko
Priority to US10/032,147 priority patent/US20030088865A1/en
Publication of KR20030037125A publication Critical patent/KR20030037125A/ko
Application granted granted Critical
Publication of KR100461535B1 publication Critical patent/KR100461535B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

Abstract

1. 청구 범위에 기재된 발명이 속한 기술 분야
본 발명은 내장형 실시간 소프트웨어를 호스트 상에서 원격 로딩해 주는 로더 장치 및 그 방법과, 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 호스트에서 타겟 모듈들을 링킹하는 원격 링킹과 목적 화일들이 하나씩 로딩되면서 링킹이 이루어지는 점진적 링킹을 수행함으로써 내장형 시스템의 응용 프로그램 개발에서의 링킹, 로딩 시간을 줄이고, 새로운 타겟에 대한 개발 환경의 이식성을 높일 수 있는, 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법과, 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하고자 함.
3. 발명의 해결 방법의 요지.
본 발명은, 내장형 시스템 개발 환경하의 로딩 장치에 있어서, 크로스 컴화일된 목적 화일을 프로그램 개발 도구로부터 전송받아, 상기 목적 화일 형식에 종속되어 상기 목적 화일을 분석하여, 상기 목적 화일로부터 화일 형식에 독립적인 링킹(linking) 정보- 여기서, 링킹 정보는 섹션 정보, 심볼 정보, 재배치 정보를 포함함 -를 추출하기 위한 상기 목적 화일에 종속적인 리더 모듈; 및 상기 리더 모듈로부터 화일 형식에 독립적인 상기 링킹 정보를 전송받아, 상기 링킹 정보를 이용하여 상기 목적 화일을 상기 타겟 시스템으로 다운로딩하여 실제적인 링킹을 담당하며, 기 로딩된 상기 타겟 시스템의 타겟 모듈들에 대해 재배치를 적용하는 '점진적 원격 링킹'- 여기서, '점진적 원격 링킹'은 호스트에서 타겟 모듈들을 링킹하는 원격 링킹과 목적 화일들이 하나씩 로딩되면서 링킹이 이루어지는 점진적 링킹을 의미함 -을 수행하기 위한 상기 목적 화일에 독립적인 링커 모듈을 포함하여, 상기 타겟 시스템의 변경시, 상기 링커 모듈은 변경하지 않고 상기 리더 모듈만 변경하며, 상기 '점진적 원격 링킹'은 상기 목적 화일들의 상기 타겟 시스템으로의 링킹 순서에 상관없이 상기 타겟 시스템으로 링킹된 모듈들이 같은 실행 이미지를 유지하게 하는 것을 특징으로 함.
4. 발명의 중요한 용도
본 발명은 내장형 시스템의 프로그램 개발 환경 등에 이용됨.

Description

내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법{Apparatus and Implementation Method of Retargettable Incremental Linking Loarder for Embedded Systems}
본 발명은 내장형 실시간 소프트웨어를 호스트 상에서 원격 로딩해 주는 로더 장치 및 그 방법과, 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 특히 목적 화일 형식에 종속적인 모듈과 독립적인 모듈로 세분화하여 종속적인 모듈은 목적 화일로부터 화일 형식에 독립적인 링킹(linking) 정보를 추출하도록 하고, 독립적인 모듈은 이 링킹 정보로부터 실제적인 링킹을 담당하도록 하며, 이미 로딩(loading)된 타겟 모듈들에 대해서도 재배치를 적용할 수 있도록 하는 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법에 관한 것이다.본 발명에서 '점진적 원격 링킹'이라 함은, 호스트에서 타겟 모듈들을 링킹하는 원격 링킹과 목적 화일들이 하나씩 로딩되면서 링킹이 이루어지는 점진적 링킹을 의미한다.
정보 가전에 탑재할 내장 시스템은 작은 컴퓨터라고 볼 수 있지만, 우리가 보통 사용하는 개인용 컴퓨터와는 비교가 안될 정도로 작은 규모이다.
그래서, 디버거와 같이 리소스를 많이 필요로 하는 대형 소프트웨어를 내장 시스템에 탑재하여 응용 프로그램을 개발하기는 상당히 어려우며, 내장형 시스템은일반적으로 자체적인 프로그램 개발이 부적절한 시스템 환경을 갖는다고 말할 수 있다.
따라서, 타겟 시스템과 시리얼 혹은 이더넷으로 연결하여 원격 컴퓨터(이하 "호스트"라 칭함)에서 내장 시스템에 탑재할 응용을 개발하려는 시도가 있어 왔으며, 내장형 시스템 응용 프로그램 개발 환경은 호스트 시스템이 내장형 시스템, 즉 타겟 시스템을 지원하도록 구성되었다. 호스트는 우리가 사용하는 일반적인 PC나 워크스테이션으로 타겟을 위해 프로그램 개발에 필요한 여러 작업을 지원해 주는 역할을 한다.
호스트-타겟으로 연결되는 내장형 시스템 개발 환경에서 호스트의 링커는 크로스 컴화일된 목적 화일을 타겟의 모듈들과 링킹(linking)하고 타겟으로 다운로딩한다.
호스트-타겟으로 구성되는 내장형 시스템 개발 환경은 많은 회사에서 실시간 운영체제와 함께 상품으로 제공되고 있다. 이와 같은 내장형 시스템 개발 환경에서는 호스트 시스템에서 크로스 컴화일된 목적 화일들의 타겟으로의 링킹과 로딩을 담당하는 모듈이 존재한다.
종래의 목적 화일들의 링킹과 다운로딩을 담당하는 원격 개발 환경의 링킹 모듈은 목적 화일 형식에 종속적으로 구현되었다. 이것은 새로운 목적 화일 형식에 대해서 모듈 전체가 새롭게 구성되어야 하기 때문에 목적 화일 형식이 변경되는 경우에 개발 시간이 비례하여 증가되는 문제점이 있었다.
또한, 종래의 원격 개발 환경의 링킹 모듈은 목적 화일들을 타겟으로 링킹, 다운로딩할 때, 각 화일들 상호간에 참조 관계가 있을 때 순서에 따라 다운로딩이 되지 않으면 정확한 결과를 얻을 수 없었다. 따라서, 정확한 수행 결과를 얻기 위해서는 사용자가 반드시 목적 화일들의 다운로딩 순서를 지키거나, 호스트에서 목적 화일들을 하나로 통합하여, 통합된 목적 화일을 타겟으로 다운로딩해야 했다. 이때, 사용자가 모듈들의 다운로딩 순서를 고려해야 한다는 것은 사용자에게 불편함을 주고, 여러 목적 화일들을 하나의 화일로 통합하여 다운로딩하는 것은 프로그램 개발 시간을 증가시키게 되는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 호스트에서 타겟 모듈들을 링킹하는 원격 링킹과 목적 화일들이 하나씩 로딩되면서 링킹이 이루어지는 점진적 링킹을 수행함으로써 내장형 시스템의 응용 프로그램 개발에서의 링킹, 로딩 시간을 줄이고, 새로운 타겟에 대한 개발 환경의 이식성을 높일 수 있는, 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법과, 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 일반적인 내장형 시스템 개발 환경을 보여주는 개념도.
도 2 는 본 발명에 따른 점진적 원격 로딩 장치를 포함하는 타겟 관리자의 일실시예 구성도.
도 3 은 본 발명에 따른 상기 도 2의 링커의 일실시예 구성도.
도 4 는 본 발명에 이용되는 링킹 정보의 구성 예시도.
도 5 는 본 발명의 일실시예에 따른 두 C 프로그램의 링킹을 보여주는 예시도.
도 6 은 본 발명의 일실시예에 따른 내장형 시스템을 위한 점진적 원격 로딩 방법을 설명하기 위한 개념도.
도 7 은 본 발명의 일실시예에 따른 add.o 목적 화일의 점진적 원격 링킹 과정을 보여주는 설명도.
도 8 은 본 발명의 일실시예에 따른 내장형 시스템을 위한 점진적 원격 로딩 방법에 대한 흐름도.
* 도면의 주요 부분에 대한 부호의 설명
210 : 전단부 220 : 로더
230 : 링커 240 : 심볼 테이블 관리자
250 : 타겟 메모리 관리자 260 : 후단부
상기와 같은 목적을 달성하기 위한 본 발명은, 내장형 시스템 개발 환경하의 로딩 장치에 있어서, 크로스 컴화일된 목적 화일을 프로그램 개발 도구로부터 전송받아, 상기 목적 화일 형식에 종속되어 상기 목적 화일을 분석하여, 상기 목적 화일로부터 화일 형식에 독립적인 링킹(linking) 정보- 여기서, 링킹 정보는 섹션 정보, 심볼 정보, 재배치 정보를 포함함 -를 추출하기 위한 상기 목적 화일에 종속적인 리더 모듈; 및 상기 리더 모듈로부터 화일 형식에 독립적인 상기 링킹 정보를 전송받아, 상기 링킹 정보를 이용하여 상기 목적 화일을 상기 타겟 시스템으로 다운로딩하여 실제적인 링킹을 담당하며, 기 로딩된 상기 타겟 시스템의 타겟 모듈들에 대해 재배치를 적용하는 '점진적 원격 링킹'- 여기서, '점진적 원격 링킹'은 호스트에서 타겟 모듈들을 링킹하는 원격 링킹과 목적 화일들이 하나씩 로딩되면서 링킹이 이루어지는 점진적 링킹을 의미함 -을 수행하기 위한 상기 목적 화일에 독립적인 링커 모듈을 포함하여, 상기 타겟 시스템의 변경시, 상기 링커 모듈은 변경하지 않고 상기 리더 모듈만 변경하며, 상기 '점진적 원격 링킹'은 상기 목적 화일들의 상기 타겟 시스템으로의 링킹 순서에 상관없이 상기 타겟 시스템으로 링킹된 모듈들이 같은 실행 이미지를 유지하게 하는 것을 특징으로 한다.
그리고, 본 발명은 내장형 시스템의 응용 프로그램 개발 환경하의 로딩 방법에 있어서, 목적 화일을 링킹하기 위하여 리더 모듈이 링킹에 필요한 링킹 정보를 분석하는 링킹 정보 분석단계; 링커가 섹션 정보를 이용하여 섹션들이 저장될 타겟 메모리 공간을 할당하고, 섹션들의 타겟 메모리 주소를 구하는 메모리 할당 및 주소 추출 단계; 심볼 정보의 각 엔트리들에 대하여 엔트리가 정의 심볼이고 심볼 테이블에 존재하는지를 판단하는 제1 판단단계; 상기 제1 판단단계의 판단 결과에 따라, 심볼이 상기 심볼 테이블에 존재하는 경우에 상기 심볼 테이블에 정의 심볼로 존재하는지를 판단하고, 존재하지 않는 경우에 상기 심볼 테이블에 새로운 심볼을 추가한 후에 정의 심볼인지를 판단하는 제2 판단단계; 상기 제2 판단단계의 판단 결과에 따라, 정의 심볼인 경우에 상기 목적 화일의 재배치를 수행하고, 미정의 심볼인 경우에 정의 심볼로 전환한 후에 상기 목적 화일의 재배치를 수행하는 목적화일 재배치단계; 및 상기 목적화일 재배치단계에서 재배치된 목적 화일을 타겟 메모리로 전송하는 전송단계를 포함하여 이루어진 것을 특징으로 한다.
한편, 본 발명은 프로세서를 구비한 점진적 원격 로딩 장치에, 목적 화일을 링킹하기 위하여 리더 모듈이 링킹에 필요한 링킹 정보를 분석하는 링킹 정보 분석기능; 링커가 섹션 정보를 이용하여 섹션들이 저장될 타겟 메모리 공간을 할당하고, 섹션들의 타겟 메모리 주소를 구하는 메모리 할당 및 주소 추출 기능; 심볼 정보의 각 엔트리들에 대하여 엔트리가 정의 심볼이고 심볼 테이블에 존재하는지를 판단하는 제1 판단기능; 상기 제1 판단기능의 판단 결과에 따라, 심볼이 상기 심볼 테이블에 존재하는 경우에 상기 심볼 테이블에 정의 심볼로 존재하는지를 판단하고, 존재하지 않는 경우에 상기 심볼 테이블에 새로운 심볼을 추가한 후에 정의 심볼인지를 판단하는 제2 판단기능; 상기 제2 판단기능의 판단 결과에 따라, 정의 심볼인 경우에 상기 목적 화일의 재배치를 수행하고, 미정의 심볼인 경우에 정의 심볼로 전환한 후에 상기 목적 화일의 재배치를 수행하는 목적화일 재배치기능; 및 상기 목적화일 재배치기능에서 재배치된 목적 화일을 타겟 메모리로 전송하는 전송기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 내장형 실시간 소프트웨어를 호스트 상에서 원격 로딩해 주는 로더에 관한 것으로서, 다양한 목적 화일 형식을 동적으로 지원해 주고 관련된 모듈들을 부분적으로 로딩/언로딩함으로써, 타겟 시스템과의 통신 횟수를 줄여 내장형 응용 개발 기간을 단축시키고자 한다. 즉, 본 발명은 호스트상에서 컴파일이 끝난 오브젝트 모듈이 네트워크를 통하여 타겟 보드에 로딩하는 기능을 수행함에 있어서, 오브젝트 모듈 형식에 독립적이며, 여러 오브젝트 모듈이 링크되는 응용의 일부 모듈의 로딩/언로딩을 지원하여 내장형 응용 개발 시간을 단축시키고자 한다.
이를 위해, 본 발명에서는 로더를 목적 화일 형식에 종속적인 모듈과 독립적인 모듈로 세분화하였다. 이때, 종속적인 모듈은 목적 화일로부터 화일 형식에 독립적인 링킹 정보를 추출하고, 독립적인 모듈은 이 링킹 정보로부터 실제적인 링킹을 담당한다. 이와 같은 세분화는 내장형 시스템 개발 환경에서 타겟 시스템에 대한 이식성을 높일 수 있다.
또한, 본 발명의 링커는 로딩되는 목적 화일 뿐만 아니라, 이미 로딩된 타겟 모듈에 대해서도 재배치를 적용하는 점진적 원격 링킹을 수행한다. 링커의 점진적 원격 링킹은 사용자가 목적 화일들의 링킹 순서를 고려하지 않고 임의의 순서로 링킹할 수 있는 편의성을 제공할 수 있다.이와 같이 본 발명은 호스트-타겟으로 연결되는 내장형 시스템의 응용 프로그램 개발 환경에서 모듈들의 타겟으로의 링킹, 로딩 시간을 단축하고, 개발 환경의 새로운 타겟에 대한 이식을 높이기 위하여, 모듈들의 링킹을 호스트에서 점진적으로 원격 링킹(즉, 호스트에서 원격지에 있는 모듈들을 점진적으로 링킹)할 수 있도록 하고, 링커를 타겟에 종속적인 부분과 독립적인 부분으로 분리 설계함으로써, 내장형 시스템의 응용 프로그램 개발에서의 링킹, 로딩 시간을 줄이고, 새로운 타겟에 대한 개발 환경의 이식성을 높일 수 있다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 일반적인 내장형 시스템 개발 환경을 보여주는 개념도이다.
도 1에 도시된 바와 같이, 내장형 시스템 개발 환경은 호스트 시스템과 타켓 시스템으로 구성되며, 내장형 시스템의 응용 프로그램 개발은 내장형 시스템 보다 성능이 우수한 호스트 시스템에서 수행된다.
호스트 시스템이 목표로 하는 내장형 시스템을 "타겟 시스템"이라 부른다. 호스트 시스템(host system)과 타겟 시스템(target system)은 네트워크(network)를 통하여 연결되며, 호스트 시스템은 타겟 시스템을 관리하는 타겟 관리자(Target Manager)(110)와 프로그램 개발에 필요한 크로스 컴화일러(100), 디버거(104), 쉘(102), 자원 모니터 등의 개발 도구들을 포함한다.
개발 도구들은 타겟 관리자(110)를 통하여 타겟 시스템과 연결된다.
타겟 시스템은 호스트 시스템의 타겟 관리자(110)와 연결되는 타겟 에이전트(120), 실시간 운영체제(122), 응용 프로그램 모듈들로 구성된다.
타겟 시스템의 독립 응용 프로그램인 타겟 에이전트(120)는 호스트 시스템의 타겟 관리자(110)와 연결하여, 호스트 시스템의 개발 도구들 또는 타겟 관리자(110)에게 프로그램 개발에 필요한 타겟 서비스를 제공한다.
도 2 는 본 발명에 따른 점진적 원격 로딩 장치를 포함하는 타겟 관리자의 일실시예 구성도이다.
도 2를 참조하면, 상기 도 1의 타겟 관리자(110)의 모듈은 프로그램 개발에 필요한 컴화일러, 쉘, 디버거 등의 도구들과 연결되는 전단부(210), 타겟 시스템과 연결되는 후단부(260), 그리고 내부 모듈들(220~250)로 구성된다. 내부 모듈들(220~250)은 타겟 메모리를 관리하는 타겟 메모리 관리자(target memory manager)(250), 타겟 시스템에서 정의된 심볼들을 관리하는 타겟 심볼 테이블 관리자(target symbol table manager)(240), 호스트 시스템에서 크로스 컴화일된 목적 화일을 타겟 시스템으로 다운로딩 또는 타겟 시스템에 다운로딩된 모듈들을 언로딩하는 로더(loader)(220)로 구성된다.
타겟 관리자의 로더(220)는 링커(230)를 포함하며, 링커(230)는 호스트 시스템에서 크로스 컴화일된 목적 화일을 분석하여 타겟 시스템에 다운로딩된 모듈들과의 링킹을 수행한 후 타겟 시스템에 다운로딩하는 역할을 담당한다. 여기서, 링킹(linking)은 다음과 같은 단계로 진행된다.
호스트-타겟으로 연결되는 내장형 시스템 개발 환경에 포함되는 링커(230)는 호스트 시스템에서 크로스 컴화일된 목적 화일을 타겟 시스템의 모듈들과 링킹, 다운로딩하는 기능을 담당한다.
내장형 시스템 개발 환경에서의 링커(230)는 목적 화일 형식에 종속되므로, 타겟 시스템 또는 크로스 컴화일러가 변경되면 그에 따라 링커(230)도 변경되어야한다.
이와 같은 링커(230)의 변경을 최소화하기 위하여, 본 발명에서는 링커(230)를 목적 화일 형식에 종속적인 부분과 독립적인 부분으로 구분하였다. 이를 구체적으로 살펴보면 다음과 같다.
도 3 은 본 발명에 따른 상기 도 2의 링커의 일실시예 구성도이다.
도 3을 참조하면, 상기 도 2의 링커(230)는 COFF 및 ELF 목적 화일 형식에 종속적인 리더(reader) 모듈(COFF 리더, ELF 리더)(310,320)과 독립적인 링커 모듈(330)를 구비하고 있다.
그리고, 종속적인 리더 모듈(310,320)은 COFF 리더(310)와 ELF 리더(320)로 구성되며, COFF 리더(310)는 COFF 목적 화일 형식에 종속적인 리더 모듈을 나타내고, ELF 리더(320)는 ELF 목적 화일 형식에 종속적인 리더 모듈을 말한다.
리더 모듈(310,320)은 목적 화일 형식에 종속되어 목적 화일을 분석하여 목적 화일 형식에 독립적인 링킹 정보를 링커 모듈(330)에게 제공한다.
링킹 정보를 바탕으로 링커 모듈(330)은 목적 화일 형식에 독립적으로 링킹, 다운로딩을 수행한다.상기 링킹 정보는 도 4와 같이 섹션 정보(410), 심볼 정보(420), 재배치 정보(430)로 구성된다.
섹션 정보(410)는 타겟 메모리 영역을 차지하는 텍스트, 데이터, bss 섹션들의 정보를 나타낸다.섹션 정보(410)를 살펴보면, 섹션 타입은 텍스트, 데이터, bss 섹션들을 구분해주고, 섹션 위치는 목적 화일 내에서 해당 섹션의 옵셋 값을 말하고, 섹션 크기는 섹션의 크기 정보를 말한다.목적 화일의 텍스트, 데이터 섹션은 섹션 위치와 크기를 바탕으로 호스트에서 타겟으로 다운로딩되고, 초기화되지 않은 데이터 값을 갖는 bss 섹션은 크기 정보를 바탕으로 타겟 메모리 영역만 할당된다.
심볼 정보(420)는 목적 화일에서 정의되는 정의 심볼과 외부에서 정의되고 목적 화일내에서 참조되는 미정의 심볼에 대한 정보를 유지한다.
심볼 정보(420)를 살펴보면, 심볼 타입은 정의 심볼, 미정의 심볼을 구분하여 주고, 정의 섹션은 그 심볼이 정의되는 섹션을 가리키며, 섹션 정보의 인덱스 값을 갖는다.미정의 심볼의 경우는 0 값을 갖는다. 심볼 위치는 심볼이 정의되는 섹션내 옵셋 값을 말한다.
재배치 정보(430)는 텍스트, 데이터 섹션에 대하여 재배치를 적용할 때 사용되는 정보를 유지한다.
재배치 정보(430)를 살펴보면, 재배치 타입은 재배치가 적용되는 규칙, 예를 들면 재배치 계산 규칙, 재배치 적용 비트 수 등의 정보를 내포하는 정수 값을 갖는다. 또한, 재배치 적용 섹션은 재배치가 적용되는 섹션을 가리키며, 섹션 정보의 인덱스 값을 갖는다. 또한, 재배치 위치는 재배치가 적용되는 부분의 섹션내 옵셋 값을 말한다. 또한, 재배치 심볼은 재배치와 관련된 심볼을 가리키며, 심볼 정보의 인덱스 값을 갖는다.이와 같이 본 발명의 로더는 목적 화일 형식에 종속적인 부분(리더 모듈(310,320))과 비종속적인 부분(링커 모듈(330))으로 분리되어 있어, 종속적인 부분에서 목적 화일로부터 화일 형식에 독립적인 링킹 정보를 추출하고, 독립적인 부분에서 이 링킹 정보로부터 실제적인 링킹을 담당한다. 이와 같은 세분화는 내장형 시스템 개발 환경에서 타겟 시스템에 대한 이식성을 높일 수 있는데, 만약 새로운 목적 화일 형식을 지원하는 로더를 만드는 경우에, 비종속적인 모듈인 링커 모듈(330)은 그대로 유지하고, 종속적인 모듈인 리더 모듈(310,320)만 만들면 되므로, 전체적인 로더에 대한 구현 시간을 단축시킬 수 있다.또한, 링커 모듈(330)은 로딩되는 목적 화일 뿐만 아니라, 기 로딩된 타겟 모듈들에 대해서도 재배치를 적용되는 점진적 원격 링킹을 수행하는데, 이 점진적 원격 링킹은 목적 화일들의 타겟으로의 링킹 순서에 상관없이 타겟으로 링킹된 모듈들이 같은 실행 이미지를 유지하게 하므로, 사용자가 목적 화일들의 링킹 순서를 고려하지 않고 임의의 순서로 링킹할 수 있도록 하는 편의성을 제공할 수 있다.
도 5 는 본 발명의 일실시예에 따른 두 C 프로그램의 링킹을 보여주는 예시도이다.
도 5를 참조하면, add.c 화일에는 두 수를 더하는 add 함수와 그 결과 값이 저장되는 전역 변수 sum이 정의된다.
또한, calc.c 화일에는 add 함수와 sum 변수를 참조하여 10과 20의 합을 구하는 calc 함수가 정의된다.
또한, add.c로부터 크로스 컴화일된 add.o 목적 화일은 add 함수로 구성되는 텍스트 섹션과 sum 변수로 구성되는 데이터 섹션을 포함한다.
또한, calc.c로부터 크로스 컴화일된 calc.o 목적 화일은 calc 함수로 구성되는 텍스트 섹션을 포함한다.add 함수는 add.o 목적 화일에서 정의되는 sum 변수를 참조하며, calc 함수는 add.o 화일에서 정의되는 add 함수와 sum 변수를 참조한다.
두 목적 화일의 텍스트, 데이터 섹션들은 타겟 메모리로 다운로딩되고, add 함수, sum 변수의 참조에 대한 재배치가 이루어진다.
링커는 두 목적 화일 add.o, calc.o를 링킹하기 위하여 리더 모듈은 링킹에 필요한 링킹 정보를 분석한다.
목적 화일이 COFF 형식인 경우에는 COFF 리더가 연결되어 링킹 정보가 분석되고, ELF 형식인 경우에는 ELF 리더가 연결되어 링킹 정보가 분석된다.
분석된 링킹 정보는 COFF, ELF 형식에 관계없이 단일한 형식의 정보를 포함한다. 이와 같이 분석된 링킹 정보는 도 4에서 제시된다. 각 표들의 두 번째 행은 각 링킹 정보들의 인덱스를 나타낸다.
섹션 정보에서 섹션 타입은 텍스트, 데이터, bss 로 구분되고, 심볼 정보에서 심볼 타입은 정의, 미정의로 구분된다. 재배치 정보에서 재배치 타입 ABS32와 PC24는 ARM 프로세서를 목표로하는 ELF 목적 화일 형식에서 사용되는 재배치 타입의 한 예이다.
재배치 타입 ABS32는 재배치 적용될 부분의 32비트를 심볼 주소 값으로 대체하는 것을 말하며, PC24는 재배치 적용될 부분 명령의 32비트 부분에서 24비트 부분을 심볼 주소를 PC 주소의 상대값으로 계산하여 대체하는 것을 의미한다.
여기에서 링커는 호스트에서 크로스 컴화일된 목적 화일들을 각각 하나씩 호스트에서 타겟으로 점진적으로 링킹, 다운로딩한다. 예를 들면, 도 5에서와 같이, 두 목적 화일 add.o, calc.o는 호스트에서 하나의 목적 화일로 합쳐져 타겟으로 링킹되지 않고, 각각 독립적으로 타겟으로 링킹된다. 또한, 목적 화일들의 링킹은 임의의 순서로 진행될 수 있다.
이와 같이 링킹은 원격지에 있는 모듈들과 점진적으로 진행되므로, 이와 같은 링킹 방식을 점진적 원격 링킹(incremental remote linking)이라 부른다. 이 점진적 원격 링킹은 사용자가 목적 화일들의 링킹 순서를 고려하지 않고 임의의 순서로 링킹할 수 있는 편의성을 제공할 수 있다.
도 6 은 본 발명의 일실시예에 따른 내장형 시스템을 위한 점진적 원격 로딩 방법을 설명하기 위한 개념도이다.
도 6에서, Ti는 이미 타겟으로 다운로딩된 i번째 모듈, 또는 타겟으로 링킹될 호스트의 i번째 목적 화일의 텍스트 섹션을 타나낸다. 그리고, Di는 i번째 데이터 섹션을 말하고, Bi는 i번째 bss 섹션을 말한다.
도 6에서, 좌측 원(610)은 호스트에서 크로스 컴화일되어 타겟으로 링킹되는 n번째 목적 화일을 나타낸다.
그리고, 상단 직사각형(630)은 그 목적 화일로부터 분석된 링킹 정보를 말한다. 또한, 하단 직사각형(620)은 이미 다운로딩된 모듈들에서 정의 또는 참조되는 심볼들이 유지되는 타겟 심볼 테이블을 나타낸다. 타겟 심볼 테이블(620)의 두 원은 임의의 심볼을 나타내고, Dsym은 정의 심볼을 말하고, Usym은 미정의 심볼을 말한다. 우측 직사각형(640)은 타겟 메모리를 나타내며, 현재 n-1개의 모듈들이 타겟 메모리에 위치하고, 점선으로 표시된 직사각형은 n번째 모듈이 저장될 공간을 나타낸다.도 6에서, 각 원들과 직사각형들 사이의 화살표는 링킹이 진행되는 방향을 나타내고, 그 위의 숫자는 링킹이 진행되는 순서를 나타낸다.
n번째 목적 화일에 대한 타겟으로의 링킹, 다운로딩 과정은 다음과 같다.
1. 목적 화일로부터 섹션 정보, 심볼 정보, 재배치 정보등의 링킹 정보를 분석한다(도 6의 (1)).
2. 섹션 정보의 섹션 타입과 섹션 크기를 바탕으로 텍스트 섹션 Tn, 데이터 섹션 Dn, bss 섹션 Bn들이 저장될 타겟 메모리 공간을 할당하며, 섹션들의 타겟 메모리 주소를 구한다(도 6의 (2)).
3. 심볼 정보의 각 엔트리들에 대하여,
[1] 엔트리가 정의 심볼이고 심볼 테이블에 존재하지 않으면(도 6의 (3)),
a. 새로운 심볼을 생성한다.
b. 생성된 심볼에 심볼 이름, 타겟 메모리 주소 등을 더한다.
c. 심볼을 심볼 테이블에 등록한다.
[2] 엔트리가 정의 심볼이고 심볼 테이블에 미정의 심볼로 존재하면(도 6의 (4), (5)),
a. 미정의 심볼을 정의 심볼로 변환한다.
b. 심볼에 타겟 메모리 주소를 더한다.
c. 미정의 심볼이 유지하는 재배치 정보를 이용하여, 타겟의 모듈들에 대하여 재배치를 적용한다.
4. 재배치 정보의 각 엔트리들에 대하여,
[1] 재배치와 관련된 심볼을 타겟 심볼 테이블에서 가져온다.
[2] 그 심볼이 정의 심볼이면 심볼의 타겟 메모리 주소와
[3] 엔트리의 재배치 정보를 바탕으로 호스트에서 목적 화일의 텍스트, 데이터 섹션들에 대해서 재배치를 수행한다(도 6의 (6)).
[4] 미정의 심볼이면 재배치 정보를 심볼에 더한다.
5. 재배치된 목적 화일의 텍스트, 데이터 섹션을 타겟으로 보낸다(도 6의 (7)).
도 7 은 본 발명의 일실시예에 따른 add.o 목적 화일의 점진적 원격 링킹 과정을 보여주는 설명도이다.
1. add.o 목적 화일로부터 링킹 정보를 구한다(도 7의 (1)). 링킹 정보는 도 6에서 제시된다.
2. add.o 목적 화일의 섹션 정보로부터, 텍스트 섹션 56바이트와 데이터 섹션 4바이트에 대한 타겟 메모리 공간을 할당한다. 이때, 각 섹션들의 타겟 메모리 주소 200, 256을 구한다(도 7 (2)).
3. 심볼 정보의 각 엔트리 add, sum들에 대하여
[1] add 심볼에 대하여,
a. 심볼 테이블의 미정의 심볼 add를 정의 심볼로 변환한다(도 7의 (3)).
b. add 심볼의 타겟 메모리 주소 200과 add 심볼의 재배치 정보로부터 124번지의 add 심볼 참조 부분에 대하여 재배치를 적용한다(도 7의 (4)).
[2] sum 심볼에 대하여,
a. 심볼 테이블의 미정의 심볼 sum을 정의 심볼로 변환한다(도 7의 (5)).
b. sum 심볼의 타겟 메모리 주소 256과 add 심볼의 재배치 정보로부터 136번지의 sum 심볼 참조 부분에 대하여 재배치를 적용한다(도 7의 (6)).
4. 링킹 정보의 재배치 정보와 sum 심볼의 타겟 메모리 주소로부터 add.o 목적 화일의 sum 참조 부분에 대하여 재배치를 적용한다(도 7의 (7)).
5. 재배치된 add.o 목적 화일의 텍스트 섹션과 데이터 섹션을 타겟 메모리에 저장한다.
도 8 은 본 발명의 일실시예에 따른 내장형 시스템을 위한 점진적 원격 로딩 방법의 흐름도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 내장형 시스템을 위한 점진적 원격 로딩 방법은, 먼저 목적 화일을 링킹하기 위하여 리더 모듈은 링킹에 필요한 링킹 정보를 분석한다(S110). 이때, 목적 화일이 COFF 형식인 경우에는 COFF 리더가 연결되어 링킹 정보가 분석되고, ELF 형식인 경우에는 ELF 리더가 연결되어 링킹 정보가 분석된다. 이때, 분석된 링킹 정보는 COFF, ELF 형식에 관계없이 단일한 형식의 정보를 포함하며, 섹션 정보, 심볼 정보, 재배치 정보로 구성된다.
이후, 링커는 섹션 정보의 섹션 타입과 섹션 크기를 바탕으로 섹션들이 저장될 타겟 메모리 공간을 할당하고(S112), 섹션들의 타겟 메모리 주소를 구한다(S114).
이어서, 심볼 정보의 각 엔트리들에 대하여 엔트리가 정의 심볼이고, 심볼 테이블에 존재하는지를 판단한다(S116).
판단 결과, 심볼이 심볼 테이블에 존재하면, 심볼 테이블에 정의 심볼로 존재하는지를 판단하고(S124), 존재하지 않으면 심볼 테이블에 새로운 심볼을 생성하고(S118) 심볼이름, 타겟 메모리 주소 등의 심볼 정보를 추가하며(S120), 심볼을 심볼 테이블에 등록한 후(S122), 심볼 테이블에 새로운 심볼을 추가한 후에 심볼 테이블에 정의 심볼로 존재하는지를 판단한다(S124).
심볼이 심볼 테이블에 정의 심볼로 존재하는지의 판단 결과, 정의 심볼로 존재하면 목적 화일의 재배치를 적용하며(S132), 정의 심볼로 존재하지 않으면 미정의 심볼을 정의 심볼로 변환하고(S126), 심볼에 타겟 메모리 주소를 더하며(S128), 미정의 심볼이 유지하는 재배치 정보를 이용하여 타겟의 모듈들에 대하여 재배치를 적용한 후에(S130), 목적 화일의 재배치를 적용한다(S132). 여기에서 목적 화일의 재배치는 재배치와 관련된 심볼을 타겟 심볼 테이블에서 가져온 후에, 그 심볼이 정의 심볼이면 심볼의 타겟 메모리 주소와 엔트리의 재배치 정보를 바탕으로 호스트에서 목적 화일의 텍스트, 데이터 섹션들에 대해셔 재배치를 수행하며, 미정의 심볼이면 재배치 정보를 심볼에 더한다.
한편, 재배치된 목적 화일의 텍스트, 데이터 섹션을 타겟으로 전송함으로써(S134) 내장형 시스템을 위한 점진적 원격 로딩 과정은 종료된다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기와 같은 본 발명에 따르면, 목적 화일들의 타겟으로의 링킹 순서에 상관 없이 타겟으로 링킹된 모듈들은 같은 실행 이미지를 유지하게 되어 응용 프로그램 개발자는 프로그램 개발 과정에서 프로그램을 구성하는 여러 목적 화일들을 타겟으로 링킹할 때, 목적 화일들의 링킹 순서를 고려하지 않아도 되므로 응용 프로그램 개발자에게 프로그램 개발에 대한 편의성을 제공할 수 있는 효과가 있다.
특히, 본 발명에 따르면, 타겟 시스템이 변경되면 링커의 독립적인 부분은 변경되지 않고, 종속적인 부분만 변경되므로 링커의 개발 시간을 단축시킬 수 있으며, 궁극적으로 전체 개발 환경의 타겟 시스템에 대한 이식성을 높일 수 있는 효과가 있다. 또한, 다양한 목적 화일 형식을 동적으로 지원해주고 관련된 모듈들을 부분적으로 로딩/언로딩할 수 있어서 타겟 시스템과의 통신 횟수를 줄여주게 되어 내장형 응용 개발 기간를 단축시킬 수 있는 효과가 있다.

Claims (10)

  1. 내장형 시스템 개발 환경하의 로딩 장치에 있어서,
    크로스 컴화일된 목적 화일을 프로그램 개발 도구로부터 전송받아, 상기 목적 화일 형식에 종속되어 상기 목적 화일을 분석하여, 상기 목적 화일로부터 화일 형식에 독립적인 링킹(linking) 정보- 여기서, 링킹 정보는 섹션 정보, 심볼 정보, 재배치 정보를 포함함 -를 추출하기 위한 상기 목적 화일에 종속적인 리더 모듈; 및
    상기 리더 모듈로부터 화일 형식에 독립적인 상기 링킹 정보를 전송받아, 상기 링킹 정보를 이용하여 상기 목적 화일을 상기 타겟 시스템으로 다운로딩하여 실제적인 링킹을 담당하며, 기 로딩된 상기 타겟 시스템의 타겟 모듈들에 대해 재배치를 적용하는 '점진적 원격 링킹'- 여기서, '점진적 원격 링킹'은 호스트에서 타겟 모듈들을 링킹하는 원격 링킹과 목적 화일들이 하나씩 로딩되면서 링킹이 이루어지는 점진적 링킹을 의미함 -을 수행하기 위한 상기 목적 화일에 독립적인 링커 모듈을 포함하여,
    상기 타겟 시스템의 변경시, 상기 링커 모듈은 변경하지 않고 상기 리더 모듈만 변경하며,
    상기 '점진적 원격 링킹'은 상기 목적 화일들의 상기 타겟 시스템으로의 링킹 순서에 상관없이 상기 타겟 시스템으로 링킹된 모듈들이 같은 실행 이미지를 유지하게 하는 것을 특징으로 하는 내장형 시스템을 위한 점진적 원격 로딩 장치.
  2. 제 1 항에 있어서,
    상기 리더 모듈은,
    크로스 컴화일된 COFF 목적 화일을 상기 프로그램 개발 도구로부터 전송받아, COFF 목적 화일 형식에 종속되어 상기 목적 화일을 분석하여, 목적 화일 형식에 독립적인 링킹 정보를 추출하는 COFF 리더 모듈; 및
    크로스 컴화일된 ELF 목적 화일을 상기 프로그램 개발 도구로부터 전송받아, ELF 목적 화일 형식에 종속되어 상기 목적 화일을 분석하여, 목적 화일 형식에 독립적인 링킹 정보를 추출하는 ELF 리더 모듈
    을 포함하는 내장형 시스템을 위한 점진적 원격 로딩 장치.
  3. 삭제
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 링커 모듈은,
    로딩되는 상기 목적 화일 뿐만 아니라, 기 로딩된 타겟 모듈들에 대해서도 재배치를 적용되는 상기 '점진적 원격 링킹'을 수행하되, 상기 '점진적 원격 링킹'은 사용자가 상기 목적 화일들의 링킹 순서를 고려하지 않고 임의의 순서로 링킹할 수 있는 편의성을 제공하는 것을 특징으로 하는 내장형 시스템을 위한 점진적 원격 로딩 장치.
  5. 내장형 시스템의 응용 프로그램 개발 환경하의 로딩 방법에 있어서,
    목적 화일을 링킹하기 위하여 리더 모듈이 링킹에 필요한 링킹 정보를 분석하는 링킹 정보 분석단계;
    링커가 섹션 정보를 이용하여 섹션들이 저장될 타겟 메모리 공간을 할당하고, 섹션들의 타겟 메모리 주소를 구하는 메모리 할당 및 주소 추출 단계;
    심볼 정보의 각 엔트리들에 대하여 엔트리가 정의 심볼이고 심볼 테이블에 존재하는지를 판단하는 제1 판단단계;
    상기 제1 판단단계의 판단 결과에 따라, 심볼이 상기 심볼 테이블에 존재하는 경우에 상기 심볼 테이블에 정의 심볼로 존재하는지를 판단하고, 존재하지 않는 경우에 상기 심볼 테이블에 새로운 심볼을 추가한 후에 정의 심볼인지를 판단하는 제2 판단단계;
    상기 제2 판단단계의 판단 결과에 따라, 정의 심볼인 경우에 상기 목적 화일의 재배치를 수행하고, 미정의 심볼인 경우에 정의 심볼로 전환한 후에 상기 목적 화일의 재배치를 수행하는 목적화일 재배치단계; 및
    상기 목적화일 재배치단계에서 재배치된 목적 화일을 타겟 메모리로 전송하는 전송단계
    를 포함하는 내장형 시스템을 위한 점진적 원격 로딩 방법.
  6. 제 5 항에 있어서,
    상기 링킹 정보 분석단계는,
    크로스 컴화일러된 목적 화일의 화일 형식을 판단하는 제3 판단단계;
    상기 제3 판단단계의 판단 결과, 목적 화일이 COFF 형식인 경우에, COFF 리더가 연결되어 링킹 정보를 분석하는 단계; 및
    상기 제3 판단단계의 판단 결과, 목적 화일이 ELF 형식인 경우에, ELF 리더가 연결되어 링킹 정보를 분석하는 단계
    를 포함하는 내장형 시스템을 위한 점진적 원격 로딩 방법.
  7. 제 5 항 또는 제 6 항에 있어서,
    상기 제2 판단단계에서 새로운 심볼을 추가하는 과정은,
    엔트리가 정의심볼로 상기 심볼 테이블에 존재하지 않으면 새로운 심볼을 생성하는 단계;
    심볼이름, 타겟 메모리 주소를 포함한 심볼 정보를 생성된 심볼에 추가하는 단계; 및
    심볼 정보가 추가된 생성된 심볼을 상기 심볼 테이블에 등록하여 상기 심볼 테이블에 새로운 심볼을 추가하는 단계
    를 포함하는 내장형 시스템을 위한 점진적 원격 로딩 방법.
  8. 제 5 항 또는 제 6 항에 있어서,
    상기 목적화일 재배치단계에서 미정의 심볼을 정의 심볼로 전환하는 과정은,
    심볼이 상기 심볼 테이블에 정의 심볼로 존재하는지의 판단 결과, 미정의 심볼로 존재하면, 미정의 심볼을 정의 심볼로 변환하는 단계; 및
    심볼에 타겟 메모리 주소를 더하고, 미정의 심볼이 유지하는 재배치 정보를 이용하여 타겟의 모듈들에 대해 재배치를 적용하는 단계
    를 포함하는 내장형 시스템을 위한 점진적 원격 로딩 방법.
  9. 제 5 항 또는 제 6 항에 있어서,
    상기 목적화일 재배치단계에서 상기 목적 화일을 재배치하는 과정은,
    재배치와 관련된 심볼을 상기 심볼 테이블에서 가져오는 단계;
    상기 가져온 심볼이 정의 심볼이면, 심볼의 타겟 메모리 주소와 엔트리의 재배치 정보를 바탕으로 호스트에서 목적 화일의 텍스트, 데이터 섹션들에 대해서 재배치를 수행하는 단계; 및
    상기 가져온 심볼이 미정의 심볼이면, 재배치 정보를 심볼에 더하는 단계
    를 포함하는 내장형 시스템을 위한 점진적 원격 로딩 방법.
  10. 프로세서를 구비한 점진적 원격 로딩 장치에,
    목적 화일을 링킹하기 위하여 리더 모듈이 링킹에 필요한 링킹 정보를 분석하는 링킹 정보 분석기능;
    링커가 섹션 정보를 이용하여 섹션들이 저장될 타겟 메모리 공간을 할당하고, 섹션들의 타겟 메모리 주소를 구하는 메모리 할당 및 주소 추출 기능;
    심볼 정보의 각 엔트리들에 대하여 엔트리가 정의 심볼이고 심볼 테이블에 존재하는지를 판단하는 제1 판단기능;
    상기 제1 판단기능의 판단 결과에 따라, 심볼이 상기 심볼 테이블에 존재하는 경우에 상기 심볼 테이블에 정의 심볼로 존재하는지를 판단하고, 존재하지 않는 경우에 상기 심볼 테이블에 새로운 심볼을 추가한 후에 정의 심볼인지를 판단하는 제2 판단기능;
    상기 제2 판단기능의 판단 결과에 따라, 정의 심볼인 경우에 상기 목적 화일의 재배치를 수행하고, 미정의 심볼인 경우에 정의 심볼로 전환한 후에 상기 목적 화일의 재배치를 수행하는 목적화일 재배치기능; 및
    상기 목적화일 재배치기능에서 재배치된 목적 화일을 타겟 메모리로 전송하는 전송기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR10-2001-0068232A 2001-11-02 2001-11-02 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법 KR100461535B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0068232A KR100461535B1 (ko) 2001-11-02 2001-11-02 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법
US10/032,147 US20030088865A1 (en) 2001-11-02 2001-12-31 Apparatus and method for incrementally performing remote loading

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0068232A KR100461535B1 (ko) 2001-11-02 2001-11-02 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20030037125A KR20030037125A (ko) 2003-05-12
KR100461535B1 true KR100461535B1 (ko) 2004-12-14

Family

ID=19715657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0068232A KR100461535B1 (ko) 2001-11-02 2001-11-02 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20030088865A1 (ko)
KR (1) KR100461535B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769517B2 (en) * 2002-03-15 2014-07-01 International Business Machines Corporation Generating a common symbol table for symbols of independent applications
GB2416876B (en) * 2004-08-03 2007-01-10 Nec Technologies Export file processing within a mobile radio communications device
KR100669242B1 (ko) * 2004-12-15 2007-01-15 한국전자통신연구원 크로스 개발 환경에서의 임베디드 소프트웨어 최적화 및분석을 위한 장치 및 방법
KR101281954B1 (ko) * 2006-08-08 2013-07-03 삼성전자주식회사 임베디드 시스템을 위한 점진적 링킹 방법
US9235458B2 (en) 2011-01-06 2016-01-12 International Business Machines Corporation Methods and systems for delegating work objects across a mixed computer environment
US9052968B2 (en) * 2011-01-17 2015-06-09 International Business Machines Corporation Methods and systems for linking objects across a mixed computer environment
US20150128117A1 (en) * 2013-11-07 2015-05-07 Netronome Systems, Inc. Linker that statically allocates non-memory resources at link time
US9910685B2 (en) 2015-08-13 2018-03-06 Samsung Electronics Co., Ltd. System and method for identifying, indexing, and navigating to deep states of mobile applications
US9983892B2 (en) * 2015-11-06 2018-05-29 Samsung Electronics Co., Ltd. Deep linking to mobile application states through programmatic replay of user interface events
US9858094B2 (en) 2015-11-10 2018-01-02 Samsung Electronics Co., Ltd. Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628215A (ja) * 1992-03-24 1994-02-04 Nec Corp データ転送方式
JPH08137684A (ja) * 1994-11-14 1996-05-31 Sharp Corp プログラム転送方法、プログラム開発システムならびにプログラム開発装置およびプログラム実行装置
JPH1139186A (ja) * 1997-07-17 1999-02-12 Matsushita Electric Ind Co Ltd デバッグ支援装置およびダウンロード方法
JPH11119981A (ja) * 1997-10-17 1999-04-30 Sony Corp プログラム生成装置
KR20010038541A (ko) * 1999-10-26 2001-05-15 정선종 내장형 실시간 소프트웨어의 원격 개발을 위한 타겟 서버 장치 및 그 제어 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193191A (en) * 1989-06-30 1993-03-09 Digital Equipment Corporation Incremental linking in source-code development system
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system
US5204960A (en) * 1990-01-08 1993-04-20 Microsoft Corporation Incremental compiler
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5491821A (en) * 1993-02-24 1996-02-13 International Business Machines Corporation Method and system for incremental processing of computer objects
US5561800A (en) * 1993-05-19 1996-10-01 Hewlett-Packard Company Method and apparatus for incrementally linking modified routines into software
US5519866A (en) * 1993-06-28 1996-05-21 Taligent, Inc. Method and apparatus of incrementally linking components of a modeled computer program
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
US5933642A (en) * 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
US5848274A (en) * 1996-02-29 1998-12-08 Supercede, Inc. Incremental byte code compilation system
GB9920911D0 (en) * 1999-09-03 1999-11-10 Sgs Thomson Microelectronics A relocation format for linking
GB0031750D0 (en) * 2000-12-28 2001-02-07 Sgs Thomson Microelectronics Retrieval of symbol attributes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628215A (ja) * 1992-03-24 1994-02-04 Nec Corp データ転送方式
JPH08137684A (ja) * 1994-11-14 1996-05-31 Sharp Corp プログラム転送方法、プログラム開発システムならびにプログラム開発装置およびプログラム実行装置
JPH1139186A (ja) * 1997-07-17 1999-02-12 Matsushita Electric Ind Co Ltd デバッグ支援装置およびダウンロード方法
JPH11119981A (ja) * 1997-10-17 1999-04-30 Sony Corp プログラム生成装置
KR20010038541A (ko) * 1999-10-26 2001-05-15 정선종 내장형 실시간 소프트웨어의 원격 개발을 위한 타겟 서버 장치 및 그 제어 방법

Also Published As

Publication number Publication date
US20030088865A1 (en) 2003-05-08
KR20030037125A (ko) 2003-05-12

Similar Documents

Publication Publication Date Title
US6286134B1 (en) Instruction selection in a multi-platform environment
US6535903B2 (en) Method and apparatus for maintaining translated routine stack in a binary translation environment
US6526570B1 (en) File portability techniques
US6199095B1 (en) System and method for achieving object method transparency in a multi-code execution environment
US8214849B2 (en) System for loading device-specific code and method thereof
US7917901B2 (en) Maintainable dynamic instrumentation technique for changing versions of software
US8006237B2 (en) Program code conversion
US7203941B2 (en) Associating a native resource with an application
US6226789B1 (en) Method and apparatus for data flow analysis
US6502237B1 (en) Method and apparatus for performing binary translation method and apparatus for performing binary translation
US6631515B1 (en) Method and apparatus to reduce code size and runtime in a Java environment
CN111831287B (zh) 用于确定执行代码段所需的资源的方法、设备和程序产品
US6637025B1 (en) Dynamic selection/definition of which class/methods should or should not be jit'ed using information stored in a jar file
US6158047A (en) Client/server system for fast, user transparent and memory efficient computer language translation
US7305665B2 (en) Compiler register allocation and compilation
KR20080047444A (ko) 확장 가능한 메타 데이터
JPH10320214A (ja) コンパイルシステム及びコンピュータプログラム製品
EP1301854B1 (en) Method and apparatus for creating efficient native methods that extend a bytecode interpreter
JP2000035893A (ja) デ―タ処理システムの配列の静的初期化方法、デ―タ処理方法、並びにデ―タ処理システム及びその制御手順をコンピュ―タに実行させるプログラムを記憶したコンピュ―タ読み取り可能な記憶媒体
KR100461535B1 (ko) 내장형 시스템을 위한 점진적 원격 로딩 장치 및 그 방법
US8464226B2 (en) System and method for interoperating with foreign objects from a host computing environment
CN112905472A (zh) 内核调试系统及方法
CN113849183A (zh) 使用虚拟工件的字节码转换
US7730473B2 (en) Relieving data marshalling overhead
EP4350507A1 (en) Data processing system, method and apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091228

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee