Design of an Integrated Interface Circuit and Device Driver Generation System

인터페이스 회로와 디바이스 드라이버 통합 자동생성 시스템 설계

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

Abstract

An OS requires the device driver to control hardware IPs at application level. Development of a device driver requires specific acknowledge for target hardware and OS. In this paper, we present a system which generates a device driver together with an interface circuit. In the proposed system, an efficient device driver is generated by selecting a basic device driver skeleton, a function module code, and a header file table from the pre-constructed library and an interface circuit is constructed such that the generated device driver operates correctly. The proposed system is evaluated by generating a TFT-LCD device driver on the ARM922T core with 3.5 inch Samsung TFT-LCD in ARM-Linux environment. Experiment result shows that the writing time on the LCD is decreased by 1.12% and the compiled code size is increased by 0.17% compared to the manually generated one. The automatically generated device driver has no performance degradation in the latency of hardware control at the application program level. The system development time can be reduced using the proposed device driver generation system.

설계된 HW IP를 응용수준에서 제어하기 위해 OS상에서의 디바이스 드라이버가 요구된다. 디바이스 드라이버의 개발은 하드웨어와 OS에 대해 시스템 개발자의 정확한 이해가 필요하며 하드웨어 개발 기간과 비용의 많은 부분을 차지한다. 본 논문에서는 OS정보, 하드웨어 특징정보를 이용하여 OS에 따른 디바이스 드라이버를 인터페이스 회로와 함께 자동 생성하는 시스템의 구축에 대해 제시한다. 제안한 시스템에서는 효율적인 디바이스 드라이버 자동생성을 위해 디바이스 드라이버의 기본골격과 함수 모듈 코드, 헤더파일 테이블 등을 라이브러리로 구축하여 입력 데이터에 따라 선택되어 디바이스 드라이버가 자동생성 되도록 하였다. 제안된 방법으로 ARM922T 코어에 삼성 3.5인치 TFT-LCD를 장착하여 커널버전 ARM-Linux 2.4.19를 탑재한 후 디바이스 드라이버를 자동 생성하여 커널에 등록한 뒤 하드웨어에 write 연산을 실행하는데 걸린 시간을 비교한 결과 매뉴얼로 설계한 디바이스 드라이버에 비해 1.12%의 감소를 보였다. 커널 컴파일 후의 코드 사이즈는 0.17%의 증가를 보였다. 생성된 디바이스 드라이버는 응용프로그램 레벨에서 하드웨어를 제어할 때 발생하는 지연시간을 고려하면 실제 성능의 차이가 없음을 보인다. 본 논문에서 제안한 시스템을 사용하여 시스템 개발기간을 단축할 수 있다.

Keywords

References

  1. P. Rashinkar, P. Paterson, and L. Singh, System-on-a-chip Verification : Methodology and Techniques, Kluwer Academic Pub., 2001
  2. R. Ortega, L. Lavagno, and G. Borriello, 'Models and Methods for HW/SW Intellectual Property Interfacing', in Proc. int. Symp. System- level Synthesis, Hsinchu, Taiwan, pp. 397-432, July 1998
  3. A. Wenban, J. O'Leary, and G. Brown, 'Codesign of Communication Protocols', Computer, IEEE, Vol. 26 No. 12, pp. 46-52, Dec. 1993 https://doi.org/10.1109/2.247651
  4. P. Chou, B. Ortega, and G. Borriello, 'Interface Co-Synthesis Techniques for Embedded System', in Proc. ICCAD, San Jose, CA, pp. 280-287, Nov. 1995
  5. 이서훈, 강경구, 황선영, 'Protocol Mapping을 이용한 인터페이스 자동생성 기법 연구' 한국통신학회 논문지, 제 31권, 8A호, pp. 820-829, 2006년 7월
  6. 이서훈, 문종욱, 황선영, 'FSM을 이용한 표준화된 버스와 IP간의 인터페이스 회로 자동생성에 관한 연구' 한국통신학회 논문지, 제 30권, 2A호, pp. 137-146, 2005년 2월
  7. A. Rubini, J. Corbet, and G. Kroah-Hartman, Linux Device Drivers, 3rd Edition, O'Reilly Pub, 2005
  8. 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
  9. Y. Ma and C. Lim, 'Test System for Device Drivers of Embedded Systems' in Proc. ICACT, Phoenix park, Gangwon-Do, Korea, Vol. 1, pp. 550-552, Feb. 2006
  10. Jungo, Windriver, http://www.jungo.com/support/support_windriver.html
  11. Compuware, DriverStudio, http://www.compuware.com/products/driverstudio/default.htm
  12. Microsoft, Windows Driver Development kit, http://www.microsoft.com/whdc/devtools/ddk/default.mspx
  13. Y. Choi, W. Kwon, and H. Kim, 'Code Generation for Linux Device Driver' in Proc. ICACT, Phoenix park, Gangwon-Do, Korea, Vol. 1, pp. 734-737, Feb. 2006
  14. 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, Kanazawa, Japan, pp. 302-310, Nov. 2000