Express Logic Embedded RTOS Solutions Express Logic RTOS Embedded Solutions Partners ThreadX RTOS Real-Time Preemption Threshold TCP/IP White Papers
The Real Time Operating Systems Solutions Company - RTOS
Express Logic RTOS Embedded Solutions
ThreadX
FileX
NetX
PegX
USBX
ThreadX and Embedded RTOS Training
Files to Download
Files to Download

 

 

PegX

PegX Video Output

Overview

PegX is designed work with and take full advantage a broad range of video output devices and display screens. PegX can be configured for monochrome, 4 grays, 16 grays, 16 colors, 256 colors, 65535 colors, and true 24-bit RGB color output. Further, the output color depth may be defined at compile time (producing the smallest code) or at run time (allowing the video output device to be determined during system initialization).

A full range of VGA and LCD display devices are supported, including LCD devices of unique x-y resolutions or orientations. The design of the PegX display drivers enables common resolutions such as 640x480 VGA or 320x240 LCD screens to be handled in an identical manner as very unique or very small x-y pixel resolutions.

All PegX screen interface operations are performed by a library class named PegScreen. This class defines the drawing primitives and other operations that are available in every PegX system, regardless of display type or video controller in use. Specific derived versions of PegScreen are then provided for each color depth, resolution, and video controller.

Hardware Acceleration

PegX takes full advantage of video controllers which support hardware acceleration capabilities such as hardware cursor or hardware bit-blit. These capabilities are always provided in the display driver software, via software emulation when the target controller does not provide a specific feature directly in hardware. When hardware acceleration is available, a small set of functions in the display driver are reduced to take advantage of the video hardware acceleration.

Double-Buffering

Double-buffered video output is optionally supported in every PegX configuration. This configuration allows all intermediate drawing operations to be performed to an off-screen or local memory buffer. At the conclusion of a drawing operation, the invalidated region of the local memory buffer is transferred to the visible video memory, using hardware bit-blitting if provided. This mode of operation provides flicker-free animation and scrolling. Double-buffered output, while always supported, is not required. PegX can also be configured to do all drawing directly to visible video memory.

Screen Driver Templates

A full set of screen driver templates are provided for 1-bpp (monochrome) through 24-bpp (TrueColor RGB) video output. These template drivers are designed to work with any CPU architecture that supports direct, linear access to the video memory buffer Examples of such architectures include:

The screen driver templates are capable of supporting any screen resolution from 1 x 1 to 65535 x 65535 pixels.

The PegX screen driver templates require that the software developer provide only three functions to build a complete working GUI:

  1. GetVideoAddress()- This function must return the base address of the video frame buffer. The implementation varies depending on architecture and operating mode.
     
  2. SetupPalette()- This function must program the controller palette registers when operating in a palletized mode. For low-end video output devices and for 16 and 24 bit color output no palette programming is necessary and this function is not required.
     
  3. ConfigureController()- This function must configure the video controller registers to synchronize the controller output signals with the timing specifications of your display device. Many example configurations for the most common controllers and display devices are provided with the PegX library.

Accelerated Screen Drivers

Many embedded controllers such as the Elan, ARM, and PowerPC CPUs provide integrated video control functionality with limited acceleration features. These controllers work best using one of the template drivers listed above.

On the other hand, several popular external video controllers are also applied to embedded applications where higher performance is required. PegScreen driver classes tuned to take advantage of the hardware acceleration features of many of these external video controllers are also available. Customized driver classes are currently available for the following video controllers:

EPSON SPC8106 VGA LCD/CRT Controller
EPSON SED1330 LCD Controller
EPSON SED1353 LCD Controller
EPSON SED1354 LCD/CRT Controller
EPSON SED1355 LCD/CRT Controller
EPSON SED1356 LCD/CRT/TV Controller
EPSON SED1374 LCD Controller
EPSON SED1375 LCD Controller
EPSON SED1376 LCD Controller
EPSON SED1386 LCD/CRT Controller
Cirrus Logic GD5430 PCI
Chips & Technology 65535
Chips & Technology 65545
Chips & Technology 65550
Chips & Technology 69000/69030
3Dlabs Permedia2 Graphics Controller

Custom PegScreen drivers for additional video controllers are available on request.

Development Environment Screen Drivers

As stated above, it is often useful to run PEG in a PC development environment regardless of your final target architecture. This allows software and hardware development to proceed in parallel, shortening time to market for a new design. The PEG development package always ships with the following PegScreen driver classes to facilitate this type of concurrent development:

  • Generic VGA- Runs on any PC-compatible in any processor mode.
  • VESA SuperVGA- Runs on any PC-compatible in real mode
  • Win32- Runs on any PC-compatible running MS Windows 95, 98, or NT.
  • X11 – Runs on any PC-compatible running X11 R6 including XFree86 3.3.x
     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ThreadX Embedded RTOS Home Page ThreadX Embedded RTOS Inquiry ThreadX RTOS Embedded News