초록
호스트-타겟으로 연결되는 내장형 시스템 개발 환경에서 호스트의 링커는 크로스 컴파일된 목적 화일을 타겟의 모듈들과 링킹하고 타겟을 다운로딩한다. 본 연구에서는 이와 같은 링커를 목적 화일 형식에 종속적인 모듈과 독립적인 모듈로 세분화하였다. 종속적인 모듈은 목적 화일로부터 화일 형식에 독립적인 링킹 정보를 추출하고, 독립적인 모듈은 이 링킹 정보로부터 실제적인 링킹을 담당한다. 이와 같은 세분화는 내장형 시스템 개발 환경에서 타겟 시스템에 대한 이식성을 높일 수 있다. 또한, 본 연구의 링커는 로딩되는 목적 화일 뿐만 아니라 이미 로딩된 타겟 모듈들에 대해서도 재배치를 적용하는 점진적 원격 링킹을 수행한다. 링커의 점진적 원격 링킹은 모듈 단위로 타겟으로 링킹할 수 있기 때문에 모듈들을 통합하여 타겟으로 링킹하는 방식 보다 링킹 시간을 단축할 수 있다. SPEC95 정수형 벤치마크 프로그램들에 대한 실험 결과 평균 64.90%의 감소율을 보였다. 또한, 링커의 점진적 원격 링킹은 사용자가 목적 화일들의 링킹 순서를 고려하지 않고 임의의 순서로 링킹할 수 있는 편의성을 제공할 수 있다. 현재, 본 연구의 링커는 상용화 준비 중인 내장형 응용 개발 환경 ESTO의 [1] 내부 모듈로 개발되었다.
In a development environment for embedded system with a connection between host and target system, the linker of host system links the cross-compiled object file and modules of target system and downloads the linked object file to the target system. In this research, we separate this linker into the module dependent on object file format and the module independent on object file format. The dependent module gets the linking information independent on file format from the object file, and the independent module actually does the linking process with this linking information_ This separation can improve the portability of development environment for a target system_ Also, our linker does the incremental remote linking that applies relocation not only to the obj ect file to be loaded but also to target's modules to have been loaded_ This incremental remote linking can reduce a linking time than linking by the united modules because of linking by module. The result of measuring linking time for SPEC95 integer benchmarks shows an average of reduction rates of 64.90%. Also, incremental remote linking can improve the comfortability of users who develop programs because users do not consider a downloading order of linking object files. Currently, we developed this linker in the embedded application development environment ESTO [1] to be prepared for a commercial product.