디바이스 드라이버는 소프트웨어 모듈이다.
물리적(하드웨어)나 가장 디바이스를 추상화하고 운영체제가 시스템의 주변부에 접근할 수 있도록 단일화 된 인터페이스를 제공한다.
프레임버퍼는 비디오 출력 디바이스이다.
완전한 데이터의 프레임을 보유하고 있는 메모리 버퍼에서 비디오 디스플레이를 드라이브한다.
버퍼의 정보는 일반적으로 화면의 모든 픽셀(표시할 수 있는 지점)에 대한 색상 값으로 구성됩니다.
색상 값은 일반적으로 1비트 단색, 4비트 팔레트, 8비트 팔레트, 16비트 하이컬러 및 24비트 트루컬러 형식으로 저장됩니다. [http://en.wikipedia.org/wiki/ 프레임버퍼]
아래에서는 단색 프레임 버퍼와 싱글을 시뮬레이션합니다.
별표 ' * ' 문자로 표시되는 픽셀입니다.
버퍼에 적합한 크기(예: 256자 X 256자)를 가정합니다.
표시 창(16 X16)을 예로 들어 별표나 다른 문자를 사용하여 이니셜을 그려 보십시오.
당신의 프로젝트에서 이 프레임 버퍼는 더욱 향상될 것입니다.
프로젝트를 두 단계로 구현합니다.
1단계 : 간단한 사용자 레벨 프레임 버퍼를 셸 명령어로 설계 및 구현하여 프레임 버퍼의 기능을 이해한다. (20%)
2단계: tty 드라이버와 유사한 장치 드라이버로 xinu 운영 체제를 향상시키는 프레임 버퍼 장치 드라이버를 설계 및 구현합니다. (80%)
프로젝트 할당과 함께 제공된 XINU 버전에 대한 임베디드 XINU 문서. 이 설명서는 관련 코드 파일을 탐색할 수 있도록 내부적으로 잘 연결되어 있습니다. 디렉토리 구조를 검사하고 다양한 디렉토리의 목적을 이해합니다. 특히 디렉토리에서 다음 파일을 연구합니다.
• include(헤더 파일): shell.h, device.h, interrupt.h, tty.h, uart.h
• shell(셸 명령 파일): shell.c, xsh_led.c, xsh_help.c
• system(시스템 작동들): devtable.c, getc.c, putc.c, read.c, write.c, initial.c, kprintf.c, open.c, close.c, startup, startup.s
• tty 및 uart 디렉토리에 있는 모든 파일.
프레임 버퍼는 시스템별 라이브러리나 윈도우 디스플레이 시스템의 무거운 오버헤드에 의존하지 않고 콘솔에 그래픽을 표시하기 위한 그래픽 하드웨어 독립적인 추상화 계층이다.
프레임 버퍼 드라이버는 uart 디바이스 드라이버 위에 가상 디바이스로 구현됩니다.
tty 드라이버는 실제로 uart 드라이버 위에 구현되는 가상 드라이버입니다.
접근 방식에 대한 아이디어를 얻기 위해 tty 드라이버를 연구합니다.
프레임 버퍼 장치 드라이버의 권장 단계는 다음과 같습니다.
이 드라이버를 사용할 셸 명령을 사용하여 테스트합니다.
즉, 셸 명령에 프레임 버퍼를 통해 화면에 "write"하도록 요청합니다.
제출할 것:
1단계 파일을 FBPhase1.zip으로 압축합니다.
2단게 파일을 FBPhase2.zip으로 압축합니다.
Terminal ESC Sequence Examples
A. putchar(‘\033’); putchar(‘[’); putchar(‘0m’); // Reset All Attributes
B. putchar(‘\033’); putchar(‘[’); putchar(‘2’); putchar(‘J’); // Erase Screen
C. putchar(‘\033’); putchar(‘[’); putchar(‘;’) putchar(H); // Cursor Home