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%의 증가를 보였다. 생성된 디바이스 드라이버는 응용프로그램 레벨에서 하드웨어를 제어할 때 발생하는 지연시간을 고려하면 실제 성능의 차이가 없음을 보인다. 본 논문에서 제안한 시스템을 사용하여 시스템 개발기간을 단축할 수 있다.