annotate packages/devs/framebuf/synth/current/doc/synth_framebuf.sgml @ 2729:74dbf4c3f2e1 after-copyright-change-20090129

Update all copyright banners to reflect FSF ownership; fix and improve licence text.
author jlarmour
date Thu, 29 Jan 2009 17:47:46 +0000
parents 2063ee669faf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2566
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
1 <!-- DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
2
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
3 <!-- =============================================================== -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
4 <!-- -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
5 <!-- synth_framebuf.sgml -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
6 <!-- -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
7 <!-- Synthetic target frame buffer device -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
8 <!-- -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
9 <!-- =============================================================== -->
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2566
diff changeset
10 <!-- ####ECOSDOCCOPYRIGHTBEGIN#### -->
2566
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
11 <!-- =============================================================== -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
12 <!-- Copyright (C) 2008 Free Software Foundation, Inc. -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
13 <!-- This material may be distributed only subject to the terms -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
14 <!-- and conditions set forth in the Open Publication License, v1.0 -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
15 <!-- or later (the latest version is presently available at -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
16 <!-- http://www.opencontent.org/openpub/) -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
17 <!-- Distribution of the work or derivative of the work in any -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
18 <!-- standard (paper) book form is prohibited unless prior -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
19 <!-- permission obtained from the copyright holder -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
20 <!-- =============================================================== -->
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2566
diff changeset
21 <!-- ####ECOSDOCCOPYRIGHTEND#### -->
2566
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
22 <!-- =============================================================== -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
23 <!-- #####DESCRIPTIONBEGIN#### -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
24 <!-- -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
25 <!-- Author(s): bartv -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
26 <!-- Contact(s): bartv -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
27 <!-- Date: 2008/10/07 -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
28 <!-- Version: 0.01 -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
29 <!-- -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
30 <!-- ####DESCRIPTIONEND#### -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
31 <!-- =============================================================== -->
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
32
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
33 <part id="devs-framebuf-synth-ref">
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
34 <title>Synthetic Target Framebuffer Device</title>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
35
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
36 <refentry id="devs-framebuf-synth">
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
37 <refmeta>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
38 <refentrytitle>Synthetic Target Framebuffer Device</refentrytitle>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
39 </refmeta>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
40 <refnamediv>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
41 <refname>Synthetic Target Framebuffer Device</refname>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
42 <refpurpose>Emulate framebuffer hardware in the synthetic target</refpurpose>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
43 </refnamediv>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
44
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
45 <refsect1 id="devs-framebuf-synth-overview"><title>Overview</title>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
46 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
47 This package <varname>CYGPKG_DEVS_FRAMEBUF_SYNTH</varname> provides a
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
48 framebuffer device driver for the eCos synthetic target.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
49 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
50 <informalfigure PgWide=1>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
51 <mediaobject>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
52 <imageobject>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
53 <imagedata fileref="synthfb.png" Scalefit=1 Align="Center">
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
54 </imageobject>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
55 </mediaobject>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
56 </informalfigure>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
57 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
58 The driver supports up to four framebuffer devices
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
59 <varname>fb0</varname>, <varname>fb1</varname>, <varname>fb2</varname>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
60 and <varname>fb3</varname>. The width, height, depth, and display
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
61 format of each framebuffer can be controlled via configuration
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
62 options. It is also possible to set a viewport for each device and to
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
63 enable page flipping.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
64 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
65 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
66 To use the framebuffer support the eCos application must run inside an
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
67 X session, not from the console, and it must be started with
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
68 <parameter>--io</parameter> to enable the I/O auxiliary. The I/O
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
69 auxiliary will start a separate instance of a host-side utility
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
70 <application>framebuf</application> for each target-side framebuffer
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
71 device. The <application>framebuf</application> utility can access the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
72 eCos framebuffer data via a shared memory region and draw it to the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
73 screen using X library calls. It needs the X server to run with a
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
74 TrueColor visual and a display of depth of 24 or 32 bits per pixel.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
75 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
76 </refsect1>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
77
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
78 <refsect1 id="devs-framebuf-synth-install"><title>Installation</title>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
79 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
80 The synthetic target framebuffer driver depends on host-side support
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
81 which must be built and installed. The relevant code resides in the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
82 <filename class="directory">host</filename> subdirectory of the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
83 synthetic target framebuffer package, and building it involves the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
84 standard <command>configure</command>, <command>make</command> and
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
85 <command>make install</command> steps. This will build and install a
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
86 utility program <application>framebuf</application> that does the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
87 actual drawing of the eCos framebuffer contents to the host-side X
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
88 display. It will also install a Tcl script and some support files.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
89 <application>framebuf</application> is an X11 application so can only
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
90 be built on Linux systems with the appropriate X11 development package
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
91 or packages.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
92 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
93 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
94 There are two main ways of building the host-side software. It is
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
95 possible to build both the generic host-side software and all
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
96 package-specific host-side software, including the framebuffer
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
97 support, in a single build tree. This involves using the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
98 <command>configure</command> script at the toplevel of the eCos
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
99 repository. For more information on this, see the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
100 <filename>README.host</filename> file at the top of the repository.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
101 Note that if you have an existing build tree which does not include
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
102 the synthetic target framebuffer support then it will be necessary to
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
103 rerun the toplevel configure script: the search for appropriate
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
104 packages happens at configure time.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
105 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
106 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
107 The alternative is to build just the host-side for this package.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
108 This requires a separate build directory, building directly in the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
109 source tree is disallowed. The <command>configure</command> options
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
110 are much the same as for a build from the toplevel, and the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
111 <filename>README.host</filename> file can be consulted for more
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
112 details. It is essential that the framebuffer support be configured with
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
113 the same <option>--prefix</option> option as other eCos host-side
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
114 software, especially the I/O auxiliary provided by the architectural
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
115 synthetic target HAL package, otherwise the I/O auxiliary will be
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
116 unable to locate the framebuffer support.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
117 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
118 </refsect1>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
119
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
120 <refsect1 id="devs-framebuf-synth-config"><title>Configuration</title>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
121 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
122 The package is loaded automatically when creating a configuration for
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
123 the synthetic target. However it is inactive unless the generic
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
124 framebuffer support <varname>CYGPKG_IO_FRAMEBUF</varname> is also
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
125 added to the configuration, for example by <computeroutput>ecosconfig
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
126 add framebuf</computeroutput>.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
127 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
128 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
129 By default the package enables a single framebuffer device
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
130 <varname>fb0</varname> with a corresponding
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
131 <structname>cyg_fb</structname> data structure
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
132 <varname>cyg_synth_fb0</varname>. The default settings for this device
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
133 are 320 by 240 pixels, a depth of 8 bits per pixel, a paletted
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
134 display, no viewport support, and no page flipping. All of these
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
135 settings can be changed by configuration options inside the CDL
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
136 component <varname>CYGPKG_DEVS_FRAMEBUF_SYNTH_FB0</varname>. The
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
137 supported display formats are: 8 bpp paletted; 8bpp true colour 332;
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
138 16bpp true 565; 16bpp true 555; and 32bpp 0888. This allows the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
139 synthetic target to match the actual display capabilities of the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
140 hardware that is being emulated. If the actual hardware has more than
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
141 one framebuffer device then this can be emulated by enabling
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
142 additional components
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
143 <varname>CYGPKG_DEVS_FRAMEBUF_SYNTH_FB1</varname> &hellip;, and
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
144 setting the appropriate options.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
145 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
146 </refsect1>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
147
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
148 <refsect1 id="devs-framebuf-synth-customization"><title>Customization</title>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
149 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
150 In addition to the target-side configurability it is possible to
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
151 customize the host-side behaviour. For example, the default behaviour
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
152 is for <varname>fb0</varname> to be drawn inside the I/O auxiliary's
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
153 main window, if it is not too large. <varname>fb1</varname>,
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
154 <varname>fb2</varname> and <varname>fb3</varname> will be drawn inside
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
155 separate toplevel windows, as will <varname>fb0</varname> if that has
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
156 been configured too large for embedding in the main window. This
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
157 behaviour can be changed by providing a custom Tcl/Tk procedure that
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
158 creates the containing frame for the framebuffer device.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
159 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
160 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
161 Customization involves adding a <structname>synth_device</structname>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
162 <varname>framebuf</varname> section to the <filename>.tdf</filename>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
163 target definition file, usually <filename>default.tdf</filename> or
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
164 <filename>~/.ecos/synth/default.tdf</filename>.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
165 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
166 <programlisting width=72>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
167 proc my_framebuf_create_frame { &hellip } {
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
168 &hellip;
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
169 }
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
170
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
171 synth_device framebuf {
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
172 fb2_magnification 2
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
173 create_frame_proc my_framebuf_create_frame
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
174 }
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
175 </programlisting>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
176 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
177 The pixel size on the host display may be rather smaller than on the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
178 final hardware, causing a serious mismatch between the application's
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
179 appearance when using synthetic target emulation and when using real
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
180 hardware. To reduce this problem the host-side can magnify the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
181 target-side framebuffer devices. In the example above each target-side
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
182 pixel in device <varname>fb2</varname> will be drawn using 2*2 pixels
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
183 on the host side. Valid magnifications are 1, 2, 3 and 4. With a
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
184 magnification of 4 an eCos framebuffer device of 320*240 pixels will
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
185 be drawn in an X window of 1280*960 pixels.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
186 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
187 <para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
188 The <parameter>create_frame_proc</parameter> entry can be used to
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
189 specify a custom Tcl/Tk procedure that will create the containing Tk
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
190 frames for the host-side displays. This procedure can be written for a
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
191 specific configuration, but it is supplied with all the parameters
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
192 associated with the framebuffer device so can be more generic. An
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
193 example is supplied in the package's <filename
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
194 class="directory">misc</filename> subdirectory:
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
195 </para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
196 <orderedlist>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
197 <listitem><para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
198 Create a configuration for the synthetic target with the default
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
199 template.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
200 </para></listitem>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
201 <listitem><para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
202 Import the <filename>example.ecm</filename> configuration fragment
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
203 from the <filename class="directory">misc</filename> subdirectory.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
204 This will add the generic framebuffer support package, enable all four
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
205 framebuffer devices, and configure each device. Build the resulting
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
206 configuration.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
207 </para></listitem>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
208 <listitem><para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
209 Compile the <filename>example.c</filename> program and link it against
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
210 the eCos configuration.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
211 </para></listitem>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
212 <listitem><para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
213 Incorporate the <filename>example.tdf</filename> fragment into the
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
214 appropriate target definition file, typically
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
215 <filename>default.tdf</filename> or
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
216 <filename>~/.ecos/synth/default.tdf</filename>.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
217 </para></listitem>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
218 <listitem><para>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
219 Run the example executable. The four framebuffer devices should get
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
220 instantiated in a separate window in a single column.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
221 <varname>FB0</varname> just contains a static display.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
222 <varname>FB1</varname> supports two pages, one with vertical stripes
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
223 and one with horizontal stripes, and the two pages are flipped at
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
224 regular intervals. <varname>FB2</varname> has a static display similar
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
225 to <varname>FB0</varname>, but is drawn in a viewport of only 160x120
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
226 pixels. However <filename>example.tdf</filename> magnifies this by 2
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
227 so it appears the same size as the other devices. The application
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
228 moves the viewport around the underlying framebuffer device.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
229 <varname>FB3</varname> is also a static display, a simple set of
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
230 vertical stripes. However this framebuffer is paletted and the palette
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
231 is changed at regular intervals, causing apparent movement.
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
232 </para></listitem>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
233 </orderedlist>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
234 </refsect1>
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
235
2063ee669faf Contribute eCosCentric's synthetic target framebuffer device driver.
bartv
parents:
diff changeset
236 </refentry>
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2566
diff changeset
237 </part>