디바이스 드라이버를 이용한 간단한 텀 프로젝트 ( ...라기엔 좀 거창하고. ) 용으로 임베디드 시스템 장비로 CF카드를 읽어 그 속의 엘범을 보여주는 것을 만들었다.
장비는 Hanback 社에서 만든 EMPOS II로, CF card device driver나 LCD, button, Text LCD등이 포함된 임베디드 장비이다. 작업 환경은 레드헷 리눅스(Vm-ware) 9.2에 arm-linux-gcc 최신 버전의 컴파일러 등을 이용하였다. ( Vmware 같은 경우 network card를 bridge로 사용해야 독립적인 IP를 할당할 수 있다. )
CF Card 드라이버는 임베디드 리눅스에서 Plug and play 형태로 지원이 되며, 이는 /etc/inittab ( 구동시 읽어들이는 파일 ) 마지막 줄에 mount -t /dev/hda1 /mnt/cf 등으로 마운트만 하면 기존의 파일 시스템 처럼 읽을 수 있다.
TextLCD와 PushButton은 케릭터 디바이스 등록용 오브젝트 파일을 만들고 ioctl 등을 통해 어플리케이션에서 직접 시스템 콜을 할 수 있도록 한다. TFT-LCD는 프레임 버퍼를 이용하여 간단하게 화면에 출력할수 있다.
dentry와 inode를 이용하여 디렉토리들을 트레버스 ( 트리 처럼 정해진 디렉토리를 루트로 하여 세부 디렉토리까지 모두 검사 ) 하게 작성하였으며, 그 중 최대 20개 ( 설정 )의 BMP파일에 대한 디렉토리명과 파일명을 리스트 형으로 저장한다.
최초 리스트의 0번 인덱스 파일을 TFT-LCD화면에 뿌려주고 TextLCD로는 파일명을 보여준다. 버튼을 누르면 리스트를 오가며 해당 파일을 화면에 뿌려준다.
쉽게 하려고 BMP를 이용하였는데, 인코더/디코더를 이용하여 JPEG나 GIF도 가능할 것으로 보인다. 또한 이를 이용하여 동영상을 화면에 뿌려주는 것도 가능한데 이는 Qt를 이용하는 것이 적절할 것으로 보인다.
전자엘범 구현
텀으로 간단한 전자엘범을 구현하였다
