Name
CYGPKG_DEVS_FRAMEBUF_ARM_CSB337900
— eCos framebuffer support for a CSB337/900
Description
This package provides an eCos framebuffer device driver for a Cogent
CSB337 board with a CSB900 add-on to provide the LCD panel. It has
dependencies on both pieces of hardware so cannot be used with any
other combination. The driver is a hardware package and is loaded
automatically when configuring eCos for a csb337900 target, but not
when configuring for a vanilla csb337 target. By default it is
inactive and does not add any code size or data overheads. To activate
the driver the generic framebuffer package
CYGPKG_IO_FRAMEBUF
should be added to the
configuration. The driver's functionality is only accessible via the
API defined by the generic package.
There are a number of design issues with this hardware combination. The framebuffer memory cannot be accessed in the conventional linear way, Instead the driver contains custom drawing code which will be significantly slower than the equivalent linear framebuffer routines. There are also problems with the colour handling: only three bits of control are available for each of red, green and blue intensity,
The driver supports four cyg_fb structures:
cyg_csb337900_fb_240x320x8
,
cyg_csb337900_fb_320x240x8r90
,
cyg_csb337900_fb_240x320x8r180
, and
cyg_csb337900_fb_320x240x8r270
. These all run the
hardware in the same resolution but in the four different
orientations, using hardware to perform the rotation. The
corresponding identifiers for the macro API are
240x320x8
, 320x240x8r90
,
240x320x8r180
and 320x240x8r270
.
Obviously only one of these framebuffer devices can be used at a time.
All the devices implement 8bpp non-linear displays with a writeable
palette. The supported ioctl
operations are
CYG_FB_IOCTL_BLANK_GET
,
CYG_FB_IOCTL_BLANK_SET
,
CYG_FB_IOCTL_BACKLIGHT_GET
and
CYG_FB_IOCTL_BACKLIGHT_SET
. The backlight can only
be switched on or off, there is no support for different levels of
intensity.
2024-03-18 | eCosPro Non-Commercial Public License |