Drivers and Libraries Enabling RTEMS OS GUI on Current PC Graphics Cards
Ovladače a knihovny pro OS RTEMS podporující grafické karty současných PC počítačů
Authors
Supervisors
Reviewers
Editors
Other contributors
Journal Title
Journal ISSN
Volume Title
Publisher
České vysoké učení technické v Praze
Czech Technical University in Prague
Czech Technical University in Prague
Date
Files
Abstract
Hlavním cílem práce je implementace obecného ovladače kompatibilního s většinou grafických karet počítačů třídy PC (i386) pro operační systém RTEMS. Dosud byl pro tuto platformu dostupný ovladač pro standard VGA, který podporuje pouze nízká rozlišení a ovladač pro grafickou kartu Cirrus Logic, který vyžaduje zmíněný již zastaralý hardware, nicméně může být použit v rámci emulátoru QEMU. Nově implementovaný obecný ovladač překonává zmíněná omezení využitím rozhraní VESA BIOS Extensions. Toto rozhraní umožňuje volání kódu výrobce standardizovaným způsobem a je výrobci v grafických kartách ve velké míře podporováno. Seznam použitelných grafických režimů karty je dostupný voláním VBE rozhraní. Implementace ovladače volí pouze mezi módy s podporou přímého frame bufferu a získává adresu frame bufferu, aby mohla aplikace vykreslovat grafický obsah na výstupní zařízení. Ovladač byl testován s aplikacemi využívajícími Nano-X Window System, knihovnu FLTK nebo knihovnu SuiTk. Kód byl zahrnut do hlavní vývojové větve systému RTEMS.
The main goal of this work is the implementation of generic driver compatible with most graphic cards on every PC compatible computer for RTEMS operating system. Two other PC graphic drivers are already included in RTEMS system, but the first one is the driver conforming to the VGA standard which supports only low resolutions and the second one is the driver for Cirrus Logic card that requires already obsolete hardware or can be used within QEMU emulator. Newly implemented generic driver overcomes limitations by usage of VESA BIOS Extensions interface. This interface allows to call vendor code in a standardized way and it is well supported across vendor cards. A list of graphic modes available on the graphic card can be obtained at the VBE interface. The driver implementation is designed to select solely modes with linear flat frame buffer and acquires the address of the frame buffer so that the application can draw its graphic content directly to the output device. The driver has been tested with applications utilizing Nano-X Window System, FLTK library or SuiTk library. The code of the generic driver was included in the RTEMS mainline.
The main goal of this work is the implementation of generic driver compatible with most graphic cards on every PC compatible computer for RTEMS operating system. Two other PC graphic drivers are already included in RTEMS system, but the first one is the driver conforming to the VGA standard which supports only low resolutions and the second one is the driver for Cirrus Logic card that requires already obsolete hardware or can be used within QEMU emulator. Newly implemented generic driver overcomes limitations by usage of VESA BIOS Extensions interface. This interface allows to call vendor code in a standardized way and it is well supported across vendor cards. A list of graphic modes available on the graphic card can be obtained at the VBE interface. The driver implementation is designed to select solely modes with linear flat frame buffer and acquires the address of the frame buffer so that the application can draw its graphic content directly to the output device. The driver has been tested with applications utilizing Nano-X Window System, FLTK library or SuiTk library. The code of the generic driver was included in the RTEMS mainline.