Incremental and Retargetable Linker for Embedded System

내장형 시스템을 위한 점진적이고 목표 재설정 가능한 링커

  • 우덕균 (한국전자통신연구원 인터넷정보가전연구부) ;
  • 한경숙 (홍익대학교 전자계산학과) ;
  • 표창우 (홍익대학교 컴퓨터공학과) ;
  • 김흥남 (한국전자통신연구원 인터넷정보가전연구부)
  • Published : 2001.04.01

Abstract

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.

호스트-타겟으로 연결되는 내장형 시스템 개발 환경에서 호스트의 링커는 크로스 컴파일된 목적 화일을 타겟의 모듈들과 링킹하고 타겟을 다운로딩한다. 본 연구에서는 이와 같은 링커를 목적 화일 형식에 종속적인 모듈과 독립적인 모듈로 세분화하였다. 종속적인 모듈은 목적 화일로부터 화일 형식에 독립적인 링킹 정보를 추출하고, 독립적인 모듈은 이 링킹 정보로부터 실제적인 링킹을 담당한다. 이와 같은 세분화는 내장형 시스템 개발 환경에서 타겟 시스템에 대한 이식성을 높일 수 있다. 또한, 본 연구의 링커는 로딩되는 목적 화일 뿐만 아니라 이미 로딩된 타겟 모듈들에 대해서도 재배치를 적용하는 점진적 원격 링킹을 수행한다. 링커의 점진적 원격 링킹은 모듈 단위로 타겟으로 링킹할 수 있기 때문에 모듈들을 통합하여 타겟으로 링킹하는 방식 보다 링킹 시간을 단축할 수 있다. SPEC95 정수형 벤치마크 프로그램들에 대한 실험 결과 평균 64.90%의 감소율을 보였다. 또한, 링커의 점진적 원격 링킹은 사용자가 목적 화일들의 링킹 순서를 고려하지 않고 임의의 순서로 링킹할 수 있는 편의성을 제공할 수 있다. 현재, 본 연구의 링커는 상용화 준비 중인 내장형 응용 개발 환경 ESTO의 [1] 내부 모듈로 개발되었다.

Keywords

References

  1. 김흥남, '사용자 개발 도구', 정보가전용 실시간 OS 컨퍼런스 자료집, pp. 178-196, 1999년 11월
  2. WindRiver Systems. 'Tornado user's guide,' http://www.wrs.com
  3. D. Jaggar, 'ARM Architectural Reference Manual,' Prentice Hall, 1996
  4. 김태근, '실시간 OS 커널 개발 연구', 정보가전용 실시간 OS 컨퍼런스 자료집, pp.70-94, 1999년 11월
  5. G. R. Gircys., 'Understanding and Using COFF,' O'Reilly Associates, 1988
  6. Tool Interlace Standards(TIS) Committee, 'Executable and linking format (ELF) specification (version 1.2),' Available by ftp://ftp.x86.org/manuals/tools/elf.pdf
  7. WindRiver Systems, 'Tornado,' http://www.wrs.com
  8. D. E. Simon, 'An Embedded Software Primer,' pp. 261-281, Addison-Wesley, 1999
  9. R. W. Quong and M. A. Linton, 'Linking programs incrementally,' ACM Transactions on Programming Languages and Systems, Vol.13, No.1, pp. 1-20, January 1991 https://doi.org/10.1145/114005.102804
  10. J. Arceneaux, M. Tiemann, and D. V. Henkel -Wallace, 'The portability of GNU software,' Proceedings of the Spring 1992 EurOpen USENIX Workshop, pp 89-103, 1992
  11. S. Chamberlain, 'Iibbfd-the binary file descriptor library,' April 1991
  12. D. Ung and C. Cifuentes, 'SRL-a simple retargetable loader,' Proceedings of the Australian Software Engineering Conference, pp.60-69, October 1997 https://doi.org/10.1109/ASWEC.1997.623755
  13. 공기석, 손승우, 임채덕, 김흥남, '내장형 실시간 소프트웨어의 원격디버깅을 위한 디버그에이전트의 설계 및 구현', 1999년 가을 정보과학회 학술발표논문집(III), pp. 407-409, 1999년 10월
  14. Development Systems Business Unit Engineering Software Group, 'ARM ELF,' 1999
  15. SPEC(Standard Performance Evaluation Corporation), 'SPEC95 Documentation,' 1995