Design of an Automatic Generation System of Device Drivers Using Templates

템플릿을 이용한 디바이스 드라이버 자동생성 시스템 설계

  • 김현철 (서강대학교 전자공학과 CAD & ES. 연구실) ;
  • 이서훈 (서강대학교 전자공학과 CAD & ES. 연구실) ;
  • 황선영 (서강대학교 전자공학과 CAD & ES. 연구실)
  • Published : 2008.09.30

Abstract

Applications running under embedded systems require various device drivers designed for different types and versions of the OS to manage resources effectively. In this paper, an automated device driver generator system which can generate the device drivers to be used in newer versions the target OS is proposed. In the proposed system, the structures of device drivers of specific OS are designed in the templates and stored in a library, and the target device drivers are generated by adding codes to the stored templates. Once device drivers are generated, they are registered into the kernel. The experimental results show that data transfer time has been slightly increased when compared against manually created drivers for TFT-LCD driver, USB interface keyboard/mouse driver, and AC'97 controller drivers. The code size for the generated drivers after compilation has also been increased slightly when compared with manually designed device drivers.

어플리케이션에 맞춤화 된 다양한 임베디드 시스템은 리소스의 효율적인 관리를 위해 임베디드 OS의 종류와 버전에 맞는 디바이스 드라이버가 요구된다. 본 논문에서는 동일한 OS의 새로운 버전에 대해 확장성이 용이한 디바이스 드라이버 자동생성 시스템을 제시한다. 제안한 시스템에서는 특정 OS 고유의 디바이스 드라이버 구조를 템플릿으로 작성한 후 라이브러리화하며, 라이브러리에 저장된 템플릿을 기본골격으로 하여 시스템의 특성에 따른 코드를 추가하는 방법으로 디바이스 드라이버를 생성한다. 생성된 디바이스 드라이버를 커널에 등록하여 데이터 전송 시간을 비교한 결과 매뉴얼로 설계한 디바이스 드라이버에 비해 자동생성된 TFT-LCD 드라이버, USB 인터페이스 키보드 마우스 드라이버, 그리고 AC'97 컨트롤러 드라이버가 각각 경미한 증가를 보였다. 생성된 드라이버를 커널 컴파일 한 후의 코드 사이즈도 각각 경미한 증가를 보였다.

Keywords

References

  1. 김선자, 김홍남, 김채규, "정보가전용 임베디드 운영체제 기술" 한국통신학회지(정보와 통신), 제 18권, 제12호, pp.72-81, 2001년 12월
  2. A. Rubini, J. Corbet, and G. Kroah- Hartman, Linux Device Drivers, 3rd Edition, O'Reilly Pub., 2005
  3. T. Katayama, K. Saisho, and A. Fukuda, "Proposal of a Support System for Device Driver Generation", in Proc. Software Engineering Conf., pp.494-497, Dec. 1999
  4. 황선영, 김현철, 이서훈, "인터페이스 회로와 디바이스 드라이버 통합 자동생성 시스템 설계", 한국통신학회 논문지, 제 32권, 제6호, pp.325-333, 2007년 6월
  5. Y. Ma and C. Lim, "Test System for Device Drivers of Embedded Systems", in Proc. ICACT2006, Vol.1, pp.550-552, Feb. 2006.
  6. Jungo, Windriver, http://www.jungo.com/support/support_windriver.html
  7. Compuware, DriverStudio,http://www.compuware.com/products/driverstudio/default.htm
  8. 마이크로 소프트, Windows Driver Development kit, http://www.microsoft.com/whdc/ devtools/ddk/default.mspx
  9. Krueger, "Software reuse", ACM Computing Surveys(CSUR), Vol.24, Issue 2, pp.131-184, Jun. 1992 https://doi.org/10.1145/130844.130856
  10. C. McClure, The Three Rs of Software Automation: Re-engineering, Repository, Reusability, Prentice-Hall Pub., 1992
  11. E. Tuggle, "Introduction to Device Driver Design", in Proc. 5th Annual Embedded Sys. Conf., Vol.2, pp.455-468, 1993
  12. D. Jensen, J. Madsen, and S. Pedersen, "The Importance of Interfaces: A HW/SW Codesign Case Study", in Proc. 5th Int. Workshop on Hw/Sw Codesign CODES'97, pp.87-91, March 1997
  13. Y. Choi, W. Kwon, and H. Kim, "Code Generation for Linux Device Driver", in Proc. ICACT2006, Vol.1, pp.734-737, Feb. 2006
  14. M. Zhu, L. Luo, and G. Xiong, "High-Availability in $\sigma$-CORE: A Formal Derivation", Dedicated Systems Magazine, Vol.3, pp.38-46, July 2001
  15. M. Zhu, L. Luo, and G. Xiong, "The Minimal Model of Operating Systems", ACM SIGOPS Operating Systems Review, Vol.35, Issue 3, pp.22-29, July 2001 https://doi.org/10.1145/383237.383240
  16. Q. Zhang, M. Zhu, and S. Chen, "Automatic Generation of Device Drivers", ACM SIGPLAN Not., Vol.38, Issue 6, pp.60-69, June 2003
  17. T. Katayama, K. Saisho, and A. Fukuda, "Prototype of the Device Driver Generation System for UNIX-like Operating Systems", in Proc. Int. Symp. Principles of Software Evolution, pp.302-310, Nov. 2000